11 changed files with 74 additions and 25 deletions
Binary file not shown.
@ -1,10 +1,29 @@ |
|||||
import { defineWrappedResponseHandler } from "#server/utils/handler"; |
import { defineWrappedResponseHandler } from "#server/utils/handler"; |
||||
import { R } from "#server/utils/response"; |
import { R } from "#server/utils/response"; |
||||
import { getCurrentUser } from "#server/utils/context"; |
import { getCurrentUser, getConfigGlobal } from "#server/utils/context"; |
||||
import { listAllEnabledModelsForUser } from "#server/service/llm"; |
import { listAllEnabledModelsForUser, getModelWithProviderByIdAny } from "#server/service/llm"; |
||||
|
|
||||
export default defineWrappedResponseHandler(async (event) => { |
export default defineWrappedResponseHandler(async (event) => { |
||||
const user = await getCurrentUser(event); |
const user = await getCurrentUser(event); |
||||
const list = await listAllEnabledModelsForUser(user?.id ?? null); |
const [list, globalDefaultModelId] = await Promise.all([ |
||||
return R.success({ list }); |
listAllEnabledModelsForUser(user?.id ?? null), |
||||
|
getConfigGlobal("agentDefaultModelId"), |
||||
|
]); |
||||
|
|
||||
|
if (globalDefaultModelId && !list.some((m) => m.id === globalDefaultModelId)) { |
||||
|
const row = await getModelWithProviderByIdAny(globalDefaultModelId); |
||||
|
if (row) { |
||||
|
list.unshift({ |
||||
|
id: row.model.id, |
||||
|
name: row.model.name, |
||||
|
modelId: row.model.modelId, |
||||
|
type: row.model.type, |
||||
|
providerName: row.provider.name, |
||||
|
providerId: row.provider.id, |
||||
|
supportsTools: row.model.supportsTools, |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return R.success({ list, defaultModelId: globalDefaultModelId ?? null }); |
||||
}); |
}); |
||||
|
|||||
Loading…
Reference in new issue