Integrate task-model assignment routing via cf-orch /api/inference/task #115
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#115
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
cf-orch #60 shipped a three-layer task-model assignment system:
assignments.yaml):product.task → model_idmodel_registry.yaml):model_id → {service_type, vram_mb, alias, ...}This exposes a new endpoint:
POST /api/inference/taskwhich accepts{product, task, prompt, ...}and resolves the right model+node automatically — no hardcoded model IDs in product code.Spec:
circuitforge-plans/circuitforge-orch/superpowers/specs/2026-05-13-task-model-assignments-design.mdWhat needs to change in Peregrine
1. Register tasks in
assignments.yaml(Entries managed via Avocet Assignments UI or direct YAML edit + cf-orch reload.)
2. Migration path for call sites
The following files currently call cf-orch directly with explicit model selection. Update them to call
POST /api/inference/taskwith{"product": "peregrine", "task": "<task_name>", ...}instead:app/wizard/step_inference.py— inference stepdev_api.py/dev-api.py— development API endpointsresume_matcher/apps/backend/app/llm.py— LLM routing3. Backwards compatibility
This is opt-in — existing
POST /api/inferencecalls continue to work. Migrate call sites incrementally.Acceptance Criteria
assignments.yamlhas entries for all four peregrine tasks/api/inference/taskRelated
circuitforge-plans/circuitforge-orch/superpowers/specs/2026-05-13-task-model-assignments-design.md