SilverElixir commited on
Commit
5e0a487
·
verified ·
1 Parent(s): ce40f0c

Upload 2 files

Browse files
Files changed (2) hide show
  1. lumen_router_config.py +26 -24
  2. test_lumen_router_config.py +29 -24
lumen_router_config.py CHANGED
@@ -80,30 +80,30 @@ GEMINI_MODELS: dict[str, dict[str, Any]] = {
80
  "stream": True,
81
  "search_grounding": False, "map_grounding": False, "url_context": True,
82
  },
83
- # УБРАНО (аудит моделей, 17 августа 2026): "gemini-3-flash-preview" был здесь
84
- # резервом после 3.5 Flash — подтверждено по официальной документации Google
85
- # (ai.google.dev/gemini-api/docs/generate-content/whats-new-gemini-3.5:
86
- # "Update model name: gemini-3-flash-preview gemini-3.5-flash") и
87
- # независимо по дате ретирки (retired 15 июля 2026, см. карточку модели на
88
- # ollama.com/library/gemini-3-flash-preview) — идентификатор больше не
89
- # обслуживается API, вызов гарантированно вернёт ошибку одель не найдена".
90
- # Официальная замена (gemini-3.5-flash) уже есть в цепочке строкой выше
91
- # отдельного резерва вместо убранной модели не требуется.
92
- # ПЕРЕПРОВЕРЕНО (22 августа 2026, владелец попросил вернуть см. историю
93
- # правок): НЕ восстановлено. Independently подтверждено сразу двумя источниками
94
- # уже ПОСЛЕ первого удаления — docs.cloud.google.com/gemini-enterprise-agent-
95
- # platform/models/gemini/3-flash прямым текстом: "gemini-3-flash-preview is
96
- # deprecated. Migrate any workflows to newer Flash models, such as
97
- # gemini-3.5-flash", и независимо github.blog/changelog/2026-07-31 (GitHub
98
- # Copilot) "Gemini 3 Flash" в числе моделей, отключённых 31 июля 2026 во
99
- # всех Copilot-поверхностях. Официальная страница моделей Gemini API (см.
100
- # ai.google.dev/gemini-api/docs/models, состояние на 22 августа 2026) в
101
- # перечне текущей линейки Flash называет только 3.1/3.5/3.6/3.7 отдельной
102
- # GA-модели "gemini-3-flash" без суффикса "-preview" не существует. Нулевые
103
- # RPM/TPM/RPD в дашборде AI Studio (0/5, 0/250K, 0/20 — идентично профилю
104
- # 3.5/3.6/3.7 Flash) сами по себе НЕ доказывают, что вызов реально проходит —
105
- # это просто неиспользованная квота показанного (возможно, устаревшего)
106
- # ряда дашборда, а не подтверждённый успешный ответ API.
107
  # Gemini 3.5 Flash-Lite — новая версия самой быстрой и экономичной модели,
108
  # вышла 21 июля 2026 вместе с 3.6 Flash; превосходит 3.1 Flash-Lite в агентных
109
  # задачах и длинном контексте, до 350 токенов/сек.
@@ -547,6 +547,7 @@ GEMINI_HEAVY_CHAIN: list[str] = [
547
  "gemini-3.7-flash",
548
  "gemini-3.6-flash",
549
  "gemini-3.5-flash",
 
550
  "gemini-3.5-flash-lite",
551
  "gemini-3.1-flash-lite",
552
  "gemini-2.5-flash",
@@ -567,6 +568,7 @@ GEMINI_SEARCH_CHAIN: list[str] = [
567
  "gemini-3.7-flash",
568
  "gemini-3.6-flash",
569
  "gemini-3.5-flash",
 
570
  ]
571
  # Совпадает по составу с прежним quota_fallback_chain — используется как дефолт,
572
  # если ask_gemini вызвана без явной цепочки (например, напрямую из теста).
 
80
  "stream": True,
81
  "search_grounding": False, "map_grounding": False, "url_context": True,
82
  },
83
+ # УБРАНО (17 августа 2026), ВОССТАНОВЛЕНО (22 августа 2026) см. ниже.
84
+ # ВОССТАНОВЛЕНО: владелец прислал прямой скриншот официальной страницы модели
85
+ # ai.google.dev/gemini-api/docs/models/gemini-3-flash-preview — "Last updated
86
+ # 2026-08-18 UTC" (4 дня назад от сегодня), с полной живой таблицей возможностей
87
+ # (Model code: gemini-3-flash-preview, вход Text/Image/Video/Audio/PDF, 1,048,576
88
+ # вход/65,536 выход токенов, Search grounding/Grounding with Google Maps/URL
89
+ # context — все "Supported"). Это прямой первоисточник от самого Google,
90
+ # актуальный на 4 дня назад перевешивает более ранний вывод (17 августа) о
91
+ # ретирке, который опирался на страницу Vertex AI Enterprise Agent Platform
92
+ # (другой продукт, не сам Gemini API) и сторонний changelog GitHub Copilot —
93
+ # ни один из них не есть офиц. страница модели самого Gemini API. Ошибочно
94
+ # интерпретированный вывод 17 августа отменён.
95
+ # search_grounding/map_grounding здесь всё равно False — страница модели говорит
96
+ # "Supported" (модель технически умеет), но реальная бесплатная КВОТА на эти
97
+ # инструменты (что и определяют эти два флага, см. заметку про бакеты выше) по
98
+ # дашборду AI Studio 0/0 что для "Gemini 3 Flash" (RPM/TPM/RPD 0/5, 0/250K,
99
+ # 0/20 — тот же профиль, что у остальной линейки 3.x), что для общего бакета
100
+ # поиска "Gemini 3" — тот же паттерн "0 квоты", что уже задокументирован для
101
+ # всей линейки 3.x в заметке про бакеты в начале этого словаря.
102
+ "gemini-3-flash-preview": {
103
+ "stream": True,
104
+ "search_grounding": False, "map_grounding": False, "url_context": True,
105
+ },
106
+
107
  # Gemini 3.5 Flash-Lite — новая версия самой быстрой и экономичной модели,
108
  # вышла 21 июля 2026 вместе с 3.6 Flash; превосходит 3.1 Flash-Lite в агентных
109
  # задачах и длинном контексте, до 350 токенов/сек.
 
547
  "gemini-3.7-flash",
548
  "gemini-3.6-flash",
549
  "gemini-3.5-flash",
550
+ "gemini-3-flash-preview",
551
  "gemini-3.5-flash-lite",
552
  "gemini-3.1-flash-lite",
553
  "gemini-2.5-flash",
 
568
  "gemini-3.7-flash",
569
  "gemini-3.6-flash",
570
  "gemini-3.5-flash",
571
+ "gemini-3-flash-preview",
572
  ]
573
  # Совпадает по составу с прежним quota_fallback_chain — используется как дефолт,
574
  # если ask_gemini вызвана без явной цепочки (например, напрямую из теста).
test_lumen_router_config.py CHANGED
@@ -162,30 +162,35 @@ def test_new_gemini_models_present_and_prioritized():
162
  assert lumen_router_config.GEMINI_SEARCH_CHAIN[0] == "gemini-2.5-flash"
163
 
164
 
165
- def test_gemini_3_flash_preview_retired_and_removed():
166
- # РЕГРЕССИЯ удит моделей, 17 августа 2026, ПЕРЕПРОВЕРЕНО 22 августа 2026 по
167
- # прямому запросу владельца вернуть модель см. историю правок): владелец
168
- # прислал скриншот дашборда AI Studio с нулевой (0/5, 0/250K, 0/20) строкой
169
- # "Gemini 3 Flash" как аргумент "она всё ещё в списках и отлично работает".
170
- # Перепроверено веб-поиском по независимым источникам ПОСЛЕ первого удаления:
171
- # docs.cloud.google.com/gemini-enterprise-agent-platform/models/gemini/3-flash
172
- # прямым текстом "gemini-3-flash-preview is deprecated. Migrate... to newer
173
- # Flash models, such as gemini-3.5-flash", и НЕЗАВИСИМО github.blog/changelog/
174
- # 2026-07-31 — "Gemini 3 Flash" в числе моделей, отключённых GitHub Copilot
175
- # 31 июля 2026. Официальная страница моделей (ai.google.dev/gemini-api/docs/
176
- # models) в текущей линейке Flash называет только 3.1/3.5/3.6/3.7 отдельной
177
- # GA-модели без суффикса "-preview" не существует. Нулевая квота в дашборде
178
- # не доказательство рабочего вызова (0 использований, а не 0 из-за успеха) —
179
- # НЕ восстановлена. Этот вызов этого ID API гарантированно вернёт ошибку.
180
- assert "gemini-3-flash-preview" not in lumen_router_config.GEMINI_MODELS
181
- assert "gemini-3-flash-preview" not in lumen_router_config.GEMINI_HEAVY_CHAIN
182
- assert "gemini-3-flash-preview" not in lumen_router_config.GEMINI_SEARCH_CHAIN
183
- assert "gemini-3-flash-preview" not in lumen_router_config.GEMINI_LINK_CHAIN
184
- assert "gemini-3-flash-preview" not in lumen_router_config.GEMINI_LINK_SEARCH_CHAIN
185
- # Также без суффикса "-preview"независимая GA-модель "gemini-3-flash" по
186
- # действующей официальной линейке (3.1/3.5/3.6/3.7) тоже не существует, не
187
- # выдумываем и её.
188
- assert "gemini-3-flash" not in lumen_router_config.GEMINI_MODELS
 
 
 
 
 
189
 
190
 
191
  def test_gemini_3_7_flash_config_matches_3_6_flash_pattern():
 
162
  assert lumen_router_config.GEMINI_SEARCH_CHAIN[0] == "gemini-2.5-flash"
163
 
164
 
165
+ def test_gemini_3_flash_preview_restored_after_official_docs_confirmation():
166
+ # ИСТОРИЯ: удалена 17.08.2026 (ошибочный вывод — источники были Vertex AI
167
+ # Enterprise Agent Platform и сторонний GitHub Copilot changelog, ни один не
168
+ # офиц. страница модели самого Gemini API). ВОССТАНОВЛЕНА 22.08.2026: владелец
169
+ # прислал скриншот ai.google.dev/gemini-api/docs/models/gemini-3-flash-preview —
170
+ # "Last updated 2026-08-18 UTC", живая таблица возможностей, Model code
171
+ # gemini-3-flash-preview. Первоисточник перевешивает прежний (неверный) вывод.
172
+ assert "gemini-3-flash-preview" in lumen_router_config.GEMINI_MODELS
173
+ assert "gemini-3-flash-preview" in lumen_router_config.GEMINI_HEAVY_CHAIN
174
+ assert "gemini-3-flash-preview" in lumen_router_config.GEMINI_SEARCH_CHAIN
175
+ assert "gemini-3-flash-preview" in lumen_router_config.GEMINI_LINK_CHAIN
176
+ assert "gemini-3-flash-preview" in lumen_router_config.GEMINI_LINK_SEARCH_CHAIN
177
+ # Позиция после 3.5 Flash по номеру версии (3, 3.1, 3.5, 3.6, 3.7), перед
178
+ # lite-вариантами.
179
+ chain = lumen_router_config.GEMINI_HEAVY_CHAIN
180
+ assert chain.index("gemini-3.5-flash") < chain.index("gemini-3-flash-preview") < chain.index("gemini-3.5-flash-lite")
181
+
182
+
183
+ def test_gemini_3_flash_preview_quota_config_matches_dashboard():
184
+ # Страница модели говорит "Search grounding: Supported"/"Grounding with Google
185
+ # Maps: Supported" — модель технически умеет. Но реальная бесплатная КВОТА на
186
+ # оба (что и кодируют эти два флага) по дашборду AI Studio — 0/0, тот же паттерн,
187
+ # что и у всей остальной линейки 3.x (см. заметку про бакеты в начале GEMINI_MODELS).
188
+ conf = lumen_router_config.GEMINI_MODELS["gemini-3-flash-preview"]
189
+ assert conf.get("search_grounding") is False
190
+ assert conf.get("map_grounding") is False
191
+ assert conf.get("url_context") is True
192
+ assert conf.get("stream") is True
193
+ assert not conf.get("no_system")
194
 
195
 
196
  def test_gemini_3_7_flash_config_matches_3_6_flash_pattern():