Skip to content

fix(models): 圖片入門階對齊 Nano Banana 2 Lite + 統一兩個登錄表#98

Merged
dofliu merged 1 commit into
mainfrom
claude/code-review-improvements-spdfw2
Jul 10, 2026
Merged

fix(models): 圖片入門階對齊 Nano Banana 2 Lite + 統一兩個登錄表#98
dofliu merged 1 commit into
mainfrom
claude/code-review-improvements-spdfw2

Conversation

@dofliu

@dofliu dofliu commented Jul 10, 2026

Copy link
Copy Markdown
Owner

做什麼 / What

把圖片模型的入門(便宜)階由舊世代 gemini-2.5-flash-image 對齊為
gemini-3.1-flash-lite-image(Nano Banana 2 Lite),讓三階與 Gemini 官方一致
(Lite / 2 / Pro),並消除兩個登錄表的重複與漂移

階層 官方名 model id(對齊後)
便宜 Nano Banana 2 Lite gemini-3.1-flash-lite-image ← 本次改
中等(預設) Nano Banana 2 gemini-3.1-flash-image
Nano Banana Pro gemini-3-pro-image

改動:

  • core/infocards/models.py(圖片模型單一目錄):入門階 id 更新;內部 key legacylite;三階 label 對齊官方命名;MODEL_PRICING 補 lite 定價(0.002 估算),並保留 gemini-2.5-flash-image 定價。
  • core/models.py(角色登錄表):image.fast / image.pro 的 id 改為直接引用上面的目錄(單一來源),兩表不再各寫一份 literal → 不可能再漂移。
  • 測試:新增漂移守衛(image 角色 == 目錄兩階)+ 入門階對齊/定價保留斷言。

為什麼 / Why

先前盤點(見 docs/CODE_REVIEW_2026-07.md T0-4 / T3-2)發現 image model id 多處分歧:
core/infocards/models.py(3 階)與 core/models.py(2 階)各寫一份、入門階還停在上一代
2.5。本 PR 對齊入門階並讓兩表共用單一來源。

⚠️ gemini-3.1-flash-lite-image 尚未在本環境 live 驗證(無 API key、避免燒額度)。
合併前請於 live API 實測確認可用,沿用「先實測再上」紀律(檔內註解已標)。
diagram_image_gen / song_images 仍直接用 gemini-2.5-flash-image(刻意保留、定價未動),
是否一併遷移到 lite 可另議。

怎麼測 / How tested

  • pytest tests/test_models_registry.py tests/test_infocards_data.py37 passed
  • pytest tests/test_usage.py tests/test_check_models.py tests/test_settings.py tests/test_providers.py70 passed, 4 skipped(skip 為 fastapi TestClient,環境未裝,CI 會跑)
  • import 健檢:兩模組載入無循環、core.models image 角色正確衍生自目錄、ROLES 未變
  • 未動前端(前端走後端 image_model_options(),內部 key 改名不影響)

自我檢查 / Checklist

  • 沒有繞過 AI 產出的人工 review 關卡(純模型 id/定價設定,不碰 review gate)
  • offline-first(純設定改動;新 id 的 live 驗證留給維護者,未在此燒額度)
  • 沒有寫死字型路徑 / 另立路徑常數
  • 沒有 commit 機密 / 本機檔
  • 無 schema 型別改動(僅資料表 + 對應測試)

🤖 Generated with Claude Code

https://claude.ai/code/session_017YfSHitPvSuuzVdVkhspWR


Generated by Claude Code

入門(便宜)階由舊世代 gemini-2.5-flash-image 對齊為 gemini-3.1-flash-lite-image
(Nano Banana 2 Lite),與 Gemini 官方三階(Lite / 2 / Pro)一致。

- core/infocards/models.py(圖片模型單一目錄):
  - 入門階 id → gemini-3.1-flash-lite-image,內部 key legacy→lite
  - 三階 label 對齊官方命名 Nano Banana 2 Lite / Nano Banana 2 / Nano Banana Pro
  - MODEL_PRICING 補 lite 定價(0.002 估算,待官方校正);保留舊 2.5-flash-image
    定價(diagram_image_gen / song_images 仍直接用,避免計帳記 $0)
- core/models.py(角色登錄表):image.fast / image.pro 的 id 改為直接引用 infocards
  目錄的中等/貴兩階(單一來源,不再各寫一份 literal),兩個登錄表不再可能漂移
- 測試:新增漂移守衛(image 角色 == 目錄兩階)+ 入門階對齊/定價保留斷言

注:gemini-3.1-flash-lite-image 請於 live API 實測確認可用(沿用「先實測再上」紀律)。
frontend 走後端 image_model_options() 取選項,不受內部 key 改名影響。

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_017YfSHitPvSuuzVdVkhspWR
@dofliu
dofliu marked this pull request as ready for review July 10, 2026 06:23
@dofliu
dofliu merged commit d8331d4 into main Jul 10, 2026
7 checks passed
dofliu pushed a commit that referenced this pull request Jul 14, 2026
反映 2026-07 兩項工作(PR #97 全庫審查、PR #98 圖片入門階對齊),並把後續接續工作
記錄進既有規劃文件:

- README.md(中英雙語):圖片模型改為三階層 Nano Banana 2 Lite / 2 / Pro
  (gemini-3.1-flash-lite-image / -flash-image / gemini-3-pro-image)
- ROADMAP.md:更新 v4.5 圖片三階層(PR #98);新增「程式碼健檢與後續改善」段
  (體質結論 + 兩條主軸,指向 CODE_REVIEW_2026-07.md 與 TODO)
- TODO.md:新增「程式碼審查後續改善」勾選清單(Sprint 1~4+,Tier 0 產品正確性 →
  T1 穩定性 → T2 安全 → T3 架構),routine 可依序認領;圖片對齊標為已完成
- docs/CHANGELOG.md:新增 2026-07 條目(REVIEW #97 / IMG-LITE #98)
- HANDOFF.md:更新圖片模型 id 清單為新入門階 + 單一目錄說明

所有變更皆標註 gemini-3.1-flash-lite-image 待 live 實測。

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_017YfSHitPvSuuzVdVkhspWR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants