feat(agent): let users choose model route

This commit is contained in:
ginnoir
2026-07-08 19:50:46 -05:00
parent b279f16ba0
commit ec3f96dab1
13 changed files with 235 additions and 45 deletions
+10 -3
View File
@@ -1,7 +1,7 @@
import { apiError, apiJson } from "@/lib/api-handler";
import { resolveApiAuth } from "@/lib/api-auth";
import { getAssistantPreferences } from "@/lib/assistant-preference";
import { listLlmModels, resolveAssistantModel } from "@/lib/llm/models";
import { isValidAssistantModelRoute, listLlmModels, resolveAssistantModel } from "@/lib/llm/models";
export const dynamic = "force-dynamic";
@@ -21,10 +21,16 @@ export async function GET(request: Request) {
return noStore(apiError("Assistant not enabled", 403));
}
const modelList = await listLlmModels();
const requestedRoute = new URL(request.url).searchParams.get("route");
if (requestedRoute !== null && !isValidAssistantModelRoute(requestedRoute)) {
return noStore(apiError("Invalid assistant model route", 400));
}
const modelRoute = requestedRoute ?? assistant.modelRoute;
const modelList = await listLlmModels({ route: modelRoute });
const resolved = resolveAssistantModel({
requestedModel: null,
savedModel: assistant.model,
savedModel: requestedRoute === null ? assistant.model : null,
fallbackModel: modelList.fallbackModel,
models: modelList.models,
});
@@ -34,6 +40,7 @@ export async function GET(request: Request) {
models: modelList.models,
selectedModel: resolved.model,
fallbackModel: modelList.fallbackModel,
route: modelList.route,
degraded: modelList.degraded,
}),
);