feat: Cost-aware Pro model selection — free Pro beats Flash, paid Pro loses to Flash

This commit is contained in:
2026-02-22 10:38:57 -05:00
parent 74cc66eed3
commit c3724a6761
3 changed files with 32 additions and 20 deletions

View File

@@ -378,14 +378,15 @@ def write_chapter(chap, bp, folder, prev_sum, tracking=None, prev_content=None,
"""
try:
ai_models.model_logic.update("models/gemini-1.5-pro")
_pro = getattr(ai_models, 'pro_model_name', 'models/gemini-2.0-pro-exp')
ai_models.model_logic.update(_pro)
resp_rewrite = ai_models.model_logic.generate_content(full_rewrite_prompt)
utils.log_usage(folder, ai_models.model_logic.name, resp_rewrite.usage_metadata)
current_text = resp_rewrite.text
ai_models.model_logic.update("models/gemini-1.5-flash")
ai_models.model_logic.update(ai_models.logic_model_name)
continue
except Exception as e:
ai_models.model_logic.update("models/gemini-1.5-flash")
ai_models.model_logic.update(ai_models.logic_model_name)
utils.log("WRITER", f"Full rewrite failed: {e}. Falling back to refinement.")
utils.log("WRITER", f" -> Refining Ch {chap['chapter_number']} based on feedback...")