错误信息: Failed to fetch 堆栈信息: AI_ProviderSpecificError: Failed to fetch at AiSdkTo...
错误信息
错误名称: AI_ProviderSpecificError
错误信息: Failed to fetch
堆栈信息: AI_ProviderSpecificError: Failed to fetch
at AiSdkToChunkAdapter.convertAndEmitChunk (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:322991:64)
at AiSdkToChunkAdapter.readFullStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:322782:10)
at async AiSdkToChunkAdapter.processStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:322745:32)
at async ModernAiProvider.modernCompletions (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325482:22)
at async ModernAiProvider._completionsOrImageGeneration (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325399:10)
at async ModernAiProvider.completions (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325382:17)
at async fetchChatCompletion (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325697:2)
at async transformMessagesAndFetch (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325633:3)
at async fetchAndProcessAssistantResponseImpl (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:118866:3)
at async file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:119161:4
错误原因: {}
AI 解决方案
##报错分析
1. 错误翻译
原文:Failed to fetch
译文:获取失败
2. 原因分析
AiSdkToChunkAdapter.convertAndEmitChunk方法(store-CA-rHPlI.js:322991:64),上下文是该组件转换AI流数据时发起的请求中断。3.解决方案
优先排查网络连通性与API端点,以下是带重试的修复示例(JavaScript):
// 带指数退避重试的Fetch封装
async function fetchWithRetry(url, options = {}, retries = 3) {
try {
const res = await fetch(url, options);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res;
} catch (err) {
if (retries > 0) {
await new Promise(r => setTimeout(r, 1000 * (4 - retries))); // 退避延迟
return fetchWithRetry(url, options, retries - 1);
}
throw err;
}
}
// 替换原请求(示例)
const streamRes = await fetchWithRetry(yourApiUrl, { method: 'POST', body: JSON.stringify(data) });
4. 预防措施
navigator.onLine(浏览器)或服务端探活检查网络状态。 axios-retry插件(简化重试)、浏览器DevToolsNetwork面板(调试请求)。