Merge pull request #378 from j-sperling/chore/gemini-3.1-flash-lite-ga

chore: migrate to gemini-3.1-flash-lite GA model
This commit is contained in:
Trevin Chow
2026-05-16 22:12:20 -07:00
committed by GitHub
7 changed files with 22 additions and 21 deletions
@@ -20,6 +20,7 @@ sys.path.insert(0, str(Path(__file__).parent))
from lib import env as envlib from lib import env as envlib
from lib import schema from lib import schema
from lib.providers import GEMINI_FLASH_LITE
SKILL_ROOT = Path(__file__).resolve().parents[1] SKILL_ROOT = Path(__file__).resolve().parents[1]
@@ -43,7 +44,7 @@ def _load_default_topics() -> list[tuple[str, str]]:
DEFAULT_TOPICS = _load_default_topics() DEFAULT_TOPICS = _load_default_topics()
DEFAULT_SEARCH = "" DEFAULT_SEARCH = ""
DEFAULT_JUDGE_MODEL = "gemini-3.1-flash-lite-preview" DEFAULT_JUDGE_MODEL = GEMINI_FLASH_LITE
GEMINI_API_URL = "https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={api_key}" GEMINI_API_URL = "https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={api_key}"
+6 -6
View File
@@ -9,7 +9,7 @@ from typing import Any
from . import env, http, schema from . import env, http, schema
GEMINI_FLASH_LITE = "gemini-3.1-flash-lite-preview" GEMINI_FLASH_LITE = "gemini-3.1-flash-lite"
GEMINI_PRO = "gemini-3.1-pro-preview" GEMINI_PRO = "gemini-3.1-pro-preview"
OPENAI_DEFAULT = "gpt-5.4-nano" OPENAI_DEFAULT = "gpt-5.4-nano"
XAI_DEFAULT = "grok-4-1-fast" XAI_DEFAULT = "grok-4-1-fast"
@@ -232,8 +232,8 @@ def _resolve_model_pins(config: dict[str, Any], depth: str, provider_name: str)
rerank_model = config.get("LAST30DAYS_RERANK_MODEL") or default_rerank rerank_model = config.get("LAST30DAYS_RERANK_MODEL") or default_rerank
if provider_name == "gemini": if provider_name == "gemini":
_require_gemini_31_preview(planner_model, role="planner") _require_gemini_31(planner_model, role="planner")
_require_gemini_31_preview(rerank_model, role="rerank") _require_gemini_31(rerank_model, role="rerank")
return planner_model, rerank_model return planner_model, rerank_model
@@ -344,11 +344,11 @@ def _resolve_x_backend(config: dict[str, Any]) -> str | None:
return env.get_x_source(config) return env.get_x_source(config)
def _require_gemini_31_preview(model: str, *, role: str) -> None: def _require_gemini_31(model: str, *, role: str) -> None:
if model.startswith("gemini-3.1-") and model.endswith("-preview"): if model.startswith("gemini-3.1-"):
return return
raise RuntimeError( raise RuntimeError(
f"{role} must use a Gemini 3.1 preview model. Got: {model}" f"{role} must use a Gemini 3.1 model. Got: {model}"
) )
+2 -2
View File
@@ -27,8 +27,8 @@ class CliV3Tests(unittest.TestCase):
generated_at="2026-03-16T00:00:00+00:00", generated_at="2026-03-16T00:00:00+00:00",
provider_runtime=schema.ProviderRuntime( provider_runtime=schema.ProviderRuntime(
reasoning_provider="gemini", reasoning_provider="gemini",
planner_model="gemini-3.1-flash-lite-preview", planner_model="gemini-3.1-flash-lite",
rerank_model="gemini-3.1-flash-lite-preview", rerank_model="gemini-3.1-flash-lite",
), ),
query_plan=schema.QueryPlan( query_plan=schema.QueryPlan(
intent="comparison", intent="comparison",
+2 -2
View File
@@ -125,7 +125,7 @@ class EvaluatorV3Tests(unittest.TestCase):
topic="test topic", topic="test topic",
query_type="general", query_type="general",
items=[{"key": "a"}], items=[{"key": "a"}],
judge_model="gemini-3.1-flash-lite-preview", judge_model="gemini-3.1-flash-lite",
gemini_api_key="key", gemini_api_key="key",
) )
self.assertEqual({"a": 3}, cached) self.assertEqual({"a": 3}, cached)
@@ -136,7 +136,7 @@ class EvaluatorV3Tests(unittest.TestCase):
topic="test topic", topic="test topic",
query_type="general", query_type="general",
items=[], items=[],
judge_model="gemini-3.1-flash-lite-preview", judge_model="gemini-3.1-flash-lite",
gemini_api_key=None, gemini_api_key=None,
) )
self.assertEqual({}, skipped) self.assertEqual({}, skipped)
+6 -6
View File
@@ -70,8 +70,8 @@ def sample_report() -> schema.Report:
generated_at="2026-03-16T00:00:00+00:00", generated_at="2026-03-16T00:00:00+00:00",
provider_runtime=schema.ProviderRuntime( provider_runtime=schema.ProviderRuntime(
reasoning_provider="gemini", reasoning_provider="gemini",
planner_model="gemini-3.1-flash-lite-preview", planner_model="gemini-3.1-flash-lite",
rerank_model="gemini-3.1-flash-lite-preview", rerank_model="gemini-3.1-flash-lite",
), ),
query_plan=schema.QueryPlan( query_plan=schema.QueryPlan(
intent="breaking_news", intent="breaking_news",
@@ -239,8 +239,8 @@ class RenderTopCommentsTests(unittest.TestCase):
generated_at="2026-03-16T00:00:00+00:00", generated_at="2026-03-16T00:00:00+00:00",
provider_runtime=schema.ProviderRuntime( provider_runtime=schema.ProviderRuntime(
reasoning_provider="gemini", reasoning_provider="gemini",
planner_model="gemini-3.1-flash-lite-preview", planner_model="gemini-3.1-flash-lite",
rerank_model="gemini-3.1-flash-lite-preview", rerank_model="gemini-3.1-flash-lite",
), ),
query_plan=schema.QueryPlan( query_plan=schema.QueryPlan(
intent="breaking_news", intent="breaking_news",
@@ -424,8 +424,8 @@ class RenderBestTakesCompactTests(unittest.TestCase):
generated_at="2026-03-16T00:00:00+00:00", generated_at="2026-03-16T00:00:00+00:00",
provider_runtime=schema.ProviderRuntime( provider_runtime=schema.ProviderRuntime(
reasoning_provider="gemini", reasoning_provider="gemini",
planner_model="gemini-3.1-flash-lite-preview", planner_model="gemini-3.1-flash-lite",
rerank_model="gemini-3.1-flash-lite-preview", rerank_model="gemini-3.1-flash-lite",
), ),
query_plan=schema.QueryPlan( query_plan=schema.QueryPlan(
intent="breaking_news", intent="breaking_news",
+2 -2
View File
@@ -172,10 +172,10 @@ class RerankV3Tests(unittest.TestCase):
plan=make_plan(), plan=make_plan(),
candidates=[first, second], candidates=[first, second],
provider=provider, provider=provider,
model="gemini-3.1-flash-lite-preview", model="gemini-3.1-flash-lite",
shortlist_size=1, shortlist_size=1,
) )
self.assertEqual("gemini-3.1-flash-lite-preview", provider.model) self.assertEqual("gemini-3.1-flash-lite", provider.model)
self.assertEqual(95.0, first.rerank_score) self.assertEqual(95.0, first.rerank_score)
self.assertEqual("high fit", first.explanation) self.assertEqual("high fit", first.explanation)
# Tail is scored via the fallback (may or may not carry the entity-miss # Tail is scored via the fallback (may or may not carry the entity-miss
+2 -2
View File
@@ -16,8 +16,8 @@ class SchemaV3Tests(unittest.TestCase):
generated_at="2026-03-16T00:00:00+00:00", generated_at="2026-03-16T00:00:00+00:00",
provider_runtime=schema.ProviderRuntime( provider_runtime=schema.ProviderRuntime(
reasoning_provider="gemini", reasoning_provider="gemini",
planner_model="gemini-3.1-flash-lite-preview", planner_model="gemini-3.1-flash-lite",
rerank_model="gemini-3.1-flash-lite-preview", rerank_model="gemini-3.1-flash-lite",
), ),
query_plan=schema.QueryPlan( query_plan=schema.QueryPlan(
intent="breaking_news", intent="breaking_news",