Remove retired Gemini fallback models (#8199)

* Remove retired Gemini fallback models

* Prefer cheaper Gemini fallbacks first
This commit is contained in:
2026-06-26 07:46:55 -07:00
committed by GitHub
parent b1263ec4df
commit 1215b5044c
7 changed files with 22 additions and 13 deletions
+1 -1
View File
@@ -71,7 +71,7 @@ LLM settings can be changed at runtime via the admin console:
1. Navigate to Admin Console → Settings
2. Change `LlmProvider` to select vendor (gemini, openai, claude)
3. Change the corresponding model name setting:
- `GeminiModelName` (default: gemini-3.1-flash-lite-preview)
- `GeminiModelName` (default: gemini-3.1-flash-lite)
- `OpenAiModelName` (default: gpt-4.1-mini)
- `ClaudeModelName` (default: claude-3-5-haiku-20241022)
@@ -1616,7 +1616,7 @@ type SettingInfo struct {
var llmProviderOptions = []string{"gemini", "openai", "claude"}
var openAiModelOptions = []string{"gpt-4.1-mini", "gpt-5-mini", "gpt-5.1", "gpt-5.2", "gpt-4.1", "gpt-4o", "gpt-4o-mini", "o1", "o1-mini", "o3-mini"}
var claudeModelOptions = []string{"claude-3-5-haiku-20241022", "claude-sonnet-4-20250514", "claude-opus-4-20250514", "claude-3-7-sonnet-20250219", "claude-3-5-sonnet-20241022"}
var geminiModelOptions = []string{"gemini-3.1-flash-lite-preview", "gemini-2.5-flash-lite", "gemini-2.5-flash", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-3-pro-preview"}
var geminiModelOptions = []string{"gemini-3.1-flash-lite", "gemini-3.5-flash", "gemini-2.5-flash-lite", "gemini-2.5-flash", "gemini-2.5-pro"}
var historyBackendOptions = []string{"env", "sqlite", "postgres"}
type SettingsPageData struct {
@@ -12,20 +12,21 @@ import org.json4s.jvalue2monadic
import org.json4s.native.{Json, Serialization}
object GeminiServiceImpl {
val defaultModel: String = "gemini-3.1-flash-lite-preview"
val defaultModel: String = "gemini-3.1-flash-lite"
private val fallbackModels: Vector[String] = Vector(
"gemini-2.5-flash",
defaultModel,
"gemini-2.5-flash-lite",
"gemini-2.0-flash",
"gemini-2.0-flash-lite"
"gemini-2.5-flash",
"gemini-2.5-pro",
"gemini-3.5-flash"
)
private lazy val apiKey = ApiKeys.gemini
private val baseURL = "https://generativelanguage.googleapis.com/v1beta/models"
def fallbackModelNames(configuredModelName: String): Vector[String] =
(configuredModelName +: (fallbackModels :+ defaultModel)).distinct
(configuredModelName +: fallbackModels).distinct
private def requestUrl(modelName: String): String =
s"$baseURL/$modelName:streamGenerateContent?alt=sse&key=$apiKey"
@@ -3659,7 +3659,7 @@ scala_setting_library(
name = "gemini_model_name",
setting_name = "GeminiModelName",
setting_type = "String",
setting_value = "gemini-3.1-flash-lite-preview",
setting_value = "gemini-3.1-flash-lite",
visibility = [
"//src/main/scala/net/eagle0/eagle:__subpackages__",
"//src/main/scala/net/eagle0/util:__subpackages__",
@@ -379,7 +379,7 @@ class GameAdminServiceImpl(
case "gemini" =>
settingsMap.getOrElse(
"GeminiModelName",
currentSettings.getOrElse("GeminiModelName", "gemini-3.1-flash-lite-preview")
currentSettings.getOrElse("GeminiModelName", GeminiServiceImpl.defaultModel)
)
case _ => ""
}
@@ -8,13 +8,21 @@ class GeminiServiceImplTest extends AnyFlatSpec with Matchers {
"fallbackModelNames" should "try the configured model before fallback Gemini models" in {
GeminiServiceImpl.fallbackModelNames("gemini-2.5-flash-lite") shouldBe Vector(
"gemini-2.5-flash-lite",
GeminiServiceImpl.defaultModel,
"gemini-2.5-flash",
"gemini-2.0-flash",
"gemini-2.0-flash-lite",
GeminiServiceImpl.defaultModel
"gemini-2.5-pro",
"gemini-3.5-flash"
)
}
it should "not include shut down Gemini model names" in {
val modelNames = GeminiServiceImpl.fallbackModelNames("gemini-2.5-flash-lite")
modelNames should not contain "gemini-2.0-flash"
modelNames should not contain "gemini-2.0-flash-lite"
modelNames should not contain "gemini-3.1-flash-lite-preview"
}
it should "not duplicate the configured model when it is already a fallback" in {
GeminiServiceImpl
.fallbackModelNames(GeminiServiceImpl.defaultModel)
@@ -76,7 +76,7 @@ class LlmResolverTest extends AnyFlatSpec with MockFactory {
it should "expand Gemini provider keys by fallback model" in {
LlmResolver.providerKeysFor("gemini", "gemini-2.5-flash-lite").take(2) shouldBe Vector(
"gemini/gemini-2.5-flash-lite",
"gemini/gemini-2.5-flash"
"gemini/gemini-3.1-flash-lite"
)
}