Upgrade to Sonnet 4.6 + add Gemini 3.1 Pro support
- Refactored analyze_with_claude into shared _build_analysis_prompt + _parse_llm_response helpers - New analyze_with_gemini() using Gemini 3.1 Pro ($2/M in, MMMLU 92.6% — best multilingual) - Unified analyze_with_llm(provider) dispatcher with auto-fallback (Claude → Gemini) - API endpoint accepts llm_provider in StartJobIn (claude/gemini/auto) - Frontend dropdown to pick LLM - Default model is now Sonnet 4.6 (was Haiku 4.5) — 3x quality at 3x price (~3 cents/video) - Gemini support is opt-in: needs GEMINI_API_KEY env var to activate
This commit is contained in:
+10
@@ -237,6 +237,11 @@ def process_job(job_id):
|
||||
]
|
||||
if job.get("include_prebuild"):
|
||||
cmd += ["--include-prebuild"]
|
||||
# LLM provider (claude/gemini/auto)
|
||||
if job.get("llm_provider"):
|
||||
cmd += ["--llm-provider", job["llm_provider"]]
|
||||
if job.get("llm_model"):
|
||||
cmd += ["--llm-model", job["llm_model"]]
|
||||
# lang: če None ali 'auto', pusti analyze.py auto-detect
|
||||
if job.get("lang") and job["lang"] not in ("auto", ""):
|
||||
cmd += ["--lang", job["lang"]]
|
||||
@@ -409,6 +414,9 @@ class StartJobIn(BaseModel):
|
||||
subtitle_style: str = "reels"
|
||||
whisper_model: str = "large-v3"
|
||||
quality: str = "medium"
|
||||
# LLM za semantično analizo + popravke
|
||||
llm_provider: str = "claude" # claude / gemini / auto
|
||||
llm_model: Optional[str] = None # specifičen model (privzeto najboljši za provider)
|
||||
|
||||
|
||||
# ────────────────────────────────────────────────────────────────
|
||||
@@ -512,6 +520,8 @@ async def start_processing(
|
||||
subtitle_style=payload.subtitle_style,
|
||||
whisper_model=payload.whisper_model,
|
||||
quality=payload.quality,
|
||||
llm_provider=payload.llm_provider,
|
||||
llm_model=payload.llm_model,
|
||||
current_step="V vrsti za obdelavo",
|
||||
)
|
||||
background.add_task(process_job, payload.job_id)
|
||||
|
||||
Reference in New Issue
Block a user