import { defineWrappedResponseHandler } from "#server/utils/handler"; import { R } from "#server/utils/response"; import { requireAdmin } from "#server/utils/admin-guard"; import { createSystemModel, getSystemProviderById } from "#server/service/llm"; export default defineWrappedResponseHandler(async (event) => { await requireAdmin(event); const body = await readBody(event); const { providerId, name, modelId, type, maxTokens, enabled } = body as { providerId: number; name: string; modelId: string; type?: string; maxTokens?: number; enabled?: number; }; if (!providerId || !name || !modelId) { return R.error("参数无效:providerId、name、modelId 必填", null); } const provider = await getSystemProviderById(providerId); if (!provider) { return R.error("系统级供应商不存在", null); } if (type && !["chat", "embedding", "image", "audio"].includes(type)) { return R.error("type 仅支持 chat、embedding、image、audio", null); } const result = await createSystemModel({ providerId, name, modelId, type: type as "chat" | "embedding" | "image" | "audio" | undefined, maxTokens, enabled, }); return R.success({ id: result.id }); });