import {NextRequest, NextResponse} from "next/server"; import {batchTranslateWithAI, translateWithAI} from "@/lib/ai-translate"; // 单个翻译 export async function GET(request: NextRequest) { const {searchParams} = new URL(request.url); const word = searchParams.get("word"); if (!word) { return NextResponse.json({error: "缺少 word 参数"}, {status: 400}); } try { const translation = await translateWithAI(word); if (!translation) { return NextResponse.json({error: "翻译失败"}, {status: 500}); } return NextResponse.json({ word, english: translation, }); } catch (error) { console.error("AI translation error:", error); return NextResponse.json( {error: String(error)}, {status: 500} ); } } // 批量翻译 export async function POST(request: NextRequest) { try { const body = await request.json(); const {words} = body as { words: string[] }; if (!Array.isArray(words) || words.length === 0) { return NextResponse.json({error: "缺少 words 参数(数组)"}, {status: 400}); } // 检查 API Key if (!process.env.AI_API_KEY) { return NextResponse.json({error: "AI 配置未完成,请先在设置中配置 AI"}, {status: 500}); } const results = await batchTranslateWithAI(words); // 转换为响应格式 const translations: Record = {}; for (const word of words) { translations[word] = results.get(word) || null; } return NextResponse.json({ translations, total: words.length, success: results.size, }); } catch (error) { console.error("AI batch translation error:", error); return NextResponse.json( {error: String(error)}, {status: 500} ); } }