Per-user LLM config: expose in Settings UI + cloud admin tooling #49
Labels
No labels
a11y
backlog
beta-feedback
bug
enhancement
feature-request
frontend
needs-triage
question
vue
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/peregrine#49
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
Per-user
llm.yamloverrides are now wired into the cover letter generation path (task_runner.py→generate()picks up<user_data>/peregrine/config/llm.yamlwhen it exists, falling back to the global cloud config).Meghan's file was written manually at
/devl/menagerie-data/5b99ca9f-b0ef-46fb-aa21-ee8d5a0ebc21/peregrine/config/llm.yamlwithmeghan-cover-writer:latestas her ollama cover letter model.Problem
This is a manual operation right now. There is no:
company_research.pyor other LLM callers (onlygenerate_cover_letteris wired)Tasks
company_research.py(also calls LLMRouter)llm.yaml/api/tagscall so the UI shows available models?llm.yamloverride pattern in CLAUDE.mdRelated
meghan-cover-writer:latestis the fine-tuned Llama 3.2 3B model for Meghan's cover lettersllama3.1:8b(no fine-tunes for anonymous users)Implemented. Three parts:
company_research.py now accepts config_path and uses the per-user llm.yaml when present (same pattern as cover_letter). Key gotcha: must call scripts/llm_router.py shim (LLMRouter() with no args when no user config) — importing CONFIG_PATH from circuitforge_core directly bypasses the tri-level repo/user/env config resolution and breaks cloud.
Three new API endpoints: GET/PUT /api/settings/llm/cover-letter-model, GET /api/settings/llm/ollama-models. PUT writes to per-user config/llm.yaml, injecting a cover_letter backend at the front of the fallback order.
Settings → System now shows a Custom Cover Letter Model section for cloud + paid users, populated from live Ollama /api/tags call.