diff --git a/components/scene-fusion-view.tsx b/components/scene-fusion-view.tsx index 9a8d18316..f55c5b66c 100644 --- a/components/scene-fusion-view.tsx +++ b/components/scene-fusion-view.tsx @@ -182,12 +182,19 @@ export function SceneFusionView({ onBack }: SceneFusionViewProps) { )); try { + console.log('[SceneFusion Client] Starting API call with', scenesToProcess.length, 'scenes'); + + // 创建 AbortController 用于超时控制(10分钟) + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), 10 * 60 * 1000); + // 调用后端 API const response = await fetch('/api/scene-fusion', { method: 'POST', headers: { 'Content-Type': 'application/json', }, + signal: controller.signal, body: JSON.stringify({ productImage, productName: productName || undefined, // 产品名称 @@ -201,17 +208,23 @@ export function SceneFusionView({ onBack }: SceneFusionViewProps) { })), }), }); + + clearTimeout(timeoutId); + console.log('[SceneFusion Client] Response received, status:', response.status); const data = await response.json(); + console.log('[SceneFusion Client] Response data:', JSON.stringify(data).substring(0, 500)); if (!response.ok) { throw new Error(data.error || '处理失败'); } // 更新场景状态 + console.log('[SceneFusion Client] Updating scenes with results:', data.results?.length); setScenes(prev => prev.map(s => { const result = data.results?.find((r: any) => r.id === s.id); if (result) { + console.log('[SceneFusion Client] Scene', s.id, 'result:', result.status); if (result.status === 'completed') { return { ...s,