feat(agent): expose available assistant models
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
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";
|
||||||
|
|
||||||
|
export async function GET(request: Request) {
|
||||||
|
const auth = await resolveApiAuth(request);
|
||||||
|
if (!auth?.userId) {
|
||||||
|
return apiError("Unauthorized", 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
const assistant = await getAssistantPreferences(auth.userId);
|
||||||
|
if (!assistant.enabled) {
|
||||||
|
return apiError("Assistant not enabled", 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
const modelList = await listLlmModels();
|
||||||
|
const resolved = resolveAssistantModel({
|
||||||
|
requestedModel: null,
|
||||||
|
savedModel: assistant.model,
|
||||||
|
fallbackModel: modelList.fallbackModel,
|
||||||
|
models: modelList.models,
|
||||||
|
});
|
||||||
|
|
||||||
|
return apiJson({
|
||||||
|
models: modelList.models,
|
||||||
|
selectedModel: resolved.model,
|
||||||
|
fallbackModel: modelList.fallbackModel,
|
||||||
|
degraded: modelList.degraded,
|
||||||
|
});
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user