import { NextRequest, NextResponse } from "next/server"; import { z } from "zod"; import { auth } from "@/app/(auth)/auth"; import { analyzeWorkflowMaterialAppearanceFromImage } from "@/lib/agents/workflow-material-appearance"; export const runtime = "nodejs"; export const maxDuration = 60; const payloadSchema = z.object({ imageUrl: z.string().trim().url().max(2000), }); export async function POST(request: NextRequest) { try { const session = await auth(); if (!session?.user?.id) { return NextResponse.json({ error: "未登录" }, { status: 401 }); } const payload = payloadSchema.parse(await request.json().catch(() => ({}))); const appearanceSummary = await analyzeWorkflowMaterialAppearanceFromImage( payload.imageUrl ).catch((error) => { console.warn("[Agent Workflow Material Appearance] Analyze failed:", error); return null; }); return NextResponse.json({ success: true, data: { appearanceSummary, }, }); } catch (error) { if (error instanceof z.ZodError) { return NextResponse.json( { error: error.issues[0]?.message || "请求参数不合法" }, { status: 400 } ); } console.error("[Agent Workflow Material Appearance] Failed:", error); return NextResponse.json( { error: error instanceof Error ? error.message : "识别失败" }, { status: 500 } ); } }