Files
Jyotisha/frontend/src/app/api/models/route.ts
T
2026-08-06 20:15:08 +08:00

43 lines
1.3 KiB
TypeScript

import { NextResponse } from "next/server";
import { createServerSupabaseClient } from "@/lib/supabase/server";
import { loadLanguageModelCatalog } from "@/lib/model-catalog";
export const runtime = "nodejs";
export async function GET() {
let supabase: Awaited<ReturnType<typeof createServerSupabaseClient>>;
try {
supabase = await createServerSupabaseClient();
} catch (error) {
if (error instanceof Error) {
return NextResponse.json(
{ error: "服务尚未配置", message: "请先配置 Supabase 环境变量。" },
{ status: 503 },
);
}
throw error;
}
const { data: { user }, error: authError } = await supabase.auth.getUser();
if (authError || !user) {
return NextResponse.json(
{ error: "请先登录", message: "登录后才能读取可用模型。" },
{ status: 401 },
);
}
const resolved = await loadLanguageModelCatalog();
const catalog = {
models: resolved.publicModels,
defaultModelId: resolved.defaultModelId,
};
if (!catalog.defaultModelId || catalog.models.length === 0) {
return NextResponse.json(
{ error: "模型服务尚未配置", message: "当前没有可用的咨询模型。" },
{ status: 503 },
);
}
return NextResponse.json(catalog);
}