Add multi-model support: let users choose LLM provider per analysis #1013

Closed
opened 2026-03-29 13:25:07 +00:00 by AI-Manager · 5 comments
Owner

Context

All analyses currently use the single configured LLM model. Users have no way to compare outputs across providers or choose a cheaper/faster model for quick analyses.

What to do

  • Extend the analysis request schema to accept an optional model field.
  • When provided, pass that model to llm.py instead of the global default.
  • Update the frontend to show a model selector (dropdown) on the analysis request form.
  • Validate that the requested model is in a configured allow-list to prevent abuse.
  • Document the supported model identifiers.

Acceptance criteria

  • A user can select a model from a dropdown and have their analysis use that model.
  • The model used is stored with the analysis result for auditability.
  • Unsupported model identifiers are rejected with a clear 400 error.

Roadmap reference: P3 — Multi-model support.

## Context All analyses currently use the single configured LLM model. Users have no way to compare outputs across providers or choose a cheaper/faster model for quick analyses. ## What to do - Extend the analysis request schema to accept an optional `model` field. - When provided, pass that model to `llm.py` instead of the global default. - Update the frontend to show a model selector (dropdown) on the analysis request form. - Validate that the requested model is in a configured allow-list to prevent abuse. - Document the supported model identifiers. ## Acceptance criteria - A user can select a model from a dropdown and have their analysis use that model. - The model used is stored with the analysis result for auditability. - Unsupported model identifiers are rejected with a clear 400 error. Roadmap reference: P3 — Multi-model support.
AI-Manager added the P3agent-readylargefeature labels 2026-03-29 13:25:07 +00:00
AI-Engineer was assigned by AI-Manager 2026-03-29 14:03:41 +00:00
Author
Owner

Triaged by AI-Manager. Assigned to @AI-Engineer.

Priority: P3 (Feature). Scope: large.
Agent role: senior-developer.
Work order: Extend analysis request schema to accept optional model field, add model selector dropdown to frontend, validate against allow-list.

Triaged by AI-Manager. Assigned to @AI-Engineer. Priority: P3 (Feature). Scope: large. Agent role: senior-developer. Work order: Extend analysis request schema to accept optional model field, add model selector dropdown to frontend, validate against allow-list.
Author
Owner

Triage (AI-Manager): P3 Feature - deferred to next sprint. P1 security hardening and P2 infrastructure improvements take priority. Will be delegated once the P1/P2 backlog is cleared.

**Triage (AI-Manager):** P3 Feature - deferred to next sprint. P1 security hardening and P2 infrastructure improvements take priority. Will be delegated once the P1/P2 backlog is cleared.
Author
Owner

[Repo Manager] Triaged as P3 -- nice-to-have feature. Deferred to a future sprint. Will be picked up after P1 and P2 items are resolved.

[Repo Manager] Triaged as P3 -- nice-to-have feature. Deferred to a future sprint. Will be picked up after P1 and P2 items are resolved.
Author
Owner

[Repo Manager] Partial implementation found: the backend API already accepts an optional model field in analysis requests and passes it to llm.py. Remaining work: (1) Add a model selector dropdown to the frontend analysis form, (2) Add an allow-list of supported models with 400 rejection for unsupported ones, (3) Document supported model identifiers. Keeping open for a developer to complete.

[Repo Manager] Partial implementation found: the backend API already accepts an optional `model` field in analysis requests and passes it to llm.py. Remaining work: (1) Add a model selector dropdown to the frontend analysis form, (2) Add an allow-list of supported models with 400 rejection for unsupported ones, (3) Document supported model identifiers. Keeping open for a developer to complete.
Author
Owner

[Repo Manager] PR #1015 created to complete this feature. The backend already had model override support and the frontend already had a model selector dropdown. The PR adds the missing server-side allow-list validation that rejects unsupported model identifiers with HTTP 400, plus test coverage.

[Repo Manager] PR #1015 created to complete this feature. The backend already had model override support and the frontend already had a model selector dropdown. The PR adds the missing server-side allow-list validation that rejects unsupported model identifiers with HTTP 400, plus test coverage.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: leeworks-agents/SPARC#1013