Switch default Gemini model to 3.1 Flash-Lite preview (#6625)

3.1 Flash-Lite is faster (throughput + TTFT), meaningfully smarter, and
still among the cheapest Gemini options, making it a strict upgrade
over 2.5 Flash-Lite for narrative text generation.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-09 19:00:51 -07:00
committed by GitHub
co-authored by Claude Opus 4.6
parent ae65205d34
commit fae53369bf
5 changed files with 11 additions and 10 deletions
+7 -6
View File
@@ -42,16 +42,17 @@ Time-to-first-token (TTFT) was measured from request initiation to the first tex
### For Narrative Text Generation (Default)
**Gemini 2.5 Flash-Lite** is recommended as the default:
- Fastest TTFT (~0.6s) - nearly 3x faster than alternatives
- Cheapest pricing ($0.10/$0.40 per 1M tokens)
- Quality is acceptable for short narrative snippets
**Gemini 3.1 Flash-Lite** is recommended as the default:
- Priced at $0.25/$1.50 per 1M input/output tokens
- Significantly faster than 2.5 Flash-Lite on throughput and TTFT
- Meaningfully smarter than 2.5 Flash-Lite, while remaining one of the cheapest options
- Quality is more than sufficient for short narrative snippets
### Alternative Options
| Priority | Model | When to Use |
|----------|-------|-------------|
| Speed + Cost | Gemini 2.5 Flash-Lite | Default for most use cases |
| Speed + Cost | Gemini 3.1 Flash-Lite | Default for most use cases |
| Speed + Quality | gpt-4.1-mini | When you need OpenAI quality with good speed |
| Instruction Following | claude-3-5-haiku | Complex multi-step prompts, consistent tone |
| Maximum Quality | claude-sonnet-4 or gpt-5.2 | When output quality is paramount |
@@ -70,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-2.5-flash-lite)
- `GeminiModelName` (default: gemini-3.1-flash-lite-preview)
- `OpenAiModelName` (default: gpt-4.1-mini)
- `ClaudeModelName` (default: claude-3-5-haiku-20241022)
@@ -1566,7 +1566,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-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-preview", "gemini-2.5-flash-lite", "gemini-2.5-flash", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-3-pro-preview"}
type SettingsPageData struct {
Title string
@@ -12,7 +12,7 @@ import org.json4s.jvalue2monadic
import org.json4s.native.{Json, Serialization}
object GeminiServiceImpl {
val defaultModel: String = "gemini-2.5-flash-lite"
val defaultModel: String = "gemini-3.1-flash-lite-preview"
private val apiKey = ApiKeys.gemini
private val baseURL = "https://generativelanguage.googleapis.com/v1beta/models"
@@ -3607,7 +3607,7 @@ scala_setting_library(
name = "gemini_model_name",
setting_name = "GeminiModelName",
setting_type = "String",
setting_value = "gemini-2.5-flash-lite",
setting_value = "gemini-3.1-flash-lite-preview",
visibility = [
"//src/main/scala/net/eagle0/eagle:__subpackages__",
"//src/main/scala/net/eagle0/util:__subpackages__",
@@ -370,7 +370,7 @@ class GameAdminServiceImpl(
case "gemini" =>
settingsMap.getOrElse(
"GeminiModelName",
currentSettings.getOrElse("GeminiModelName", "gemini-2.5-flash-lite")
currentSettings.getOrElse("GeminiModelName", "gemini-3.1-flash-lite-preview")
)
case _ => ""
}