import { auth } from "@/app/(auth)/auth"; import { getEnabledAiModelsWithProvider, getDefaultAiModel } from "@/lib/db/queries"; import { ChatSDKError } from "@/lib/errors"; // 获取前端可用的 AI 模型列表(需要登录但不需要管理员权限) export async function GET() { try { const session = await auth(); if (!session?.user) { return new ChatSDKError("unauthorized:chat").toResponse(); } // 只获取主模型(不包括子模型),子模型由后端根据 videoParams.mode 自动选择 const modelsWithProvider = await getEnabledAiModelsWithProvider(false); const defaultModel = await getDefaultAiModel(); // 转换为前端需要的格式 const models = modelsWithProvider.map(({ model, provider }) => ({ id: model.id, modelId: model.modelId, displayName: model.displayName, description: model.description, supportsVision: model.supportsVision, supportsImageGen: model.supportsImageGen, isDefault: model.isDefault, providerName: provider.name, providerType: provider.type, isSubModel: model.isSubModel, parentModelId: model.parentModelId, capabilities: model.capabilities, // 🆕 返回子模型的能力配置 })); return Response.json({ models, defaultModelId: defaultModel?.id ?? models[0]?.id ?? null, }); } catch (error) { if (error instanceof ChatSDKError) { return error.toResponse(); } return new ChatSDKError("offline:chat").toResponse(); } }