错误信息: upstream error: do request failed (request id: 20260103204432591660753Mp1r...
错误信息
错误名称: AI_APICallError
错误信息: upstream error: do request failed (request id: 20260103204432591660753Mp1rvxbJ)
堆栈信息: AI_APICallError: upstream error: do request failed (request id: 20260103204432591660753Mp1rvxbJ)
at file:///C:/Users/86153/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/dist-K3A05YNJ.js:543:11
at async postToApi (file:///C:/Users/86153/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/dist-K3A05YNJ.js:439:24)
at async OpenAICompatibleChatLanguageModel$1.doStream (file:///C:/Users/86153/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-e4Pmzkul.js:253086:48)
at async fn (file:///C:/Users/86153/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-e4Pmzkul.js:37120:17)
at async file:///C:/Users/86153/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-e4Pmzkul.js:34498:19
at async _retryWithExponentialBackoff (file:///C:/Users/86153/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-e4Pmzkul.js:34600:10)
at async streamStep (file:///C:/Users/86153/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-e4Pmzkul.js:37088:108)
at async fn (file:///C:/Users/86153/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-e4Pmzkul.js:37367:5)
at async file:///C:/Users/86153/AppData/Local/Programs/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-e4Pmzkul.js:34498:19
错误原因: "[undefined]"
状态码: 500
请求路径: https://www.dmxapi.cn/v1/chat/completions
请求体: {
"model": "claude-3-5-sonnet-20241022",
"user": "[undefined]",
"max_tokens": "[undefined]",
"temperature": 1,
"top_p": "[undefined]",
"frequency_penalty": "[undefined]",
"presence_penalty": "[undefined]",
"response_format": "[undefined]",
"stop": "[undefined]",
"seed": "[undefined]",
"serviceTier": "[undefined]",
"reasoning_effort": "[undefined]",
"verbosity": "[undefined]",
"messages": [
{
"role": "user",
"content": "在宏观的建筑生长角度,从控制建筑的生长密度和控制建筑的生长类型角度出发,分别有一些什么样的约束条件,(比如物理环境的舒适度需求,人体的舒适度需求),请分别给我至少约束条件"
}
],
"tools": "[undefined]",
"tool_choice": "[undefined]",
"stream": true,
"stream_options": {
"include_usage": true
}
}
响应首部: {
"cache-control": "no-cache",
"content-type": "text/event-stream",
"date": "Sat, 03 Jan 2026 12:49:46 GMT",
"document-policy": "include-js-call-stacks-in-crash-reports",
"server": "nginx",
"x-rixapi-request-id": "20260103204938359922572uhfpm1Ae"
}
响应内容: {
"error": {
"message": "upstream error: do request failed (request id: 20260103204432591660753Mp1rvxbJ)",
"type": "rix_api_error",
"param": "",
"code": null
}
}
数据: {
"error": {
"message": "upstream error: do request failed (request id: 20260103204432591660753Mp1rvxbJ)",
"type": "rix_api_error",
"param": "",
"code": null
}
}
AI 解决方案
AI API调用错误分析报告
1. 错误翻译
原文:upstream error: do request failed
译文:上游错误:执行请求失败
2. 原因分析
这是一个典型的上游API服务错误,核心问题如下:
主要问题:
"[undefined]"字符串而非实际的undefined或有效值关键发现:
"[undefined]"而不是真正的undefined20260103204432591660753Mp1rvxbJ → 20260103204938359922572uhfpm1Ae3. 解决方案
客户端修复(Cherry Studio端):
// 修复前的错误参数设置
const wrongParams = {
user: "[undefined]", // ❌ 错误:字符串"[undefined]"
max_tokens: "[undefined]", // ❌ 应该为undefined或数字
// ... 其他参数
};
// 修复后的正确设置
const correctParams = {
user: undefined, // ✅ 正确:真正的undefined
max_tokens: undefined, // ✅ 或设置为有效数值如4096
temperature: 1,
top_p: undefined, // ✅ 使用undefined而不是字符串
frequency_penalty: undefined,
presence_penalty: undefined,
response_format: undefined,
stop: undefined,
seed: undefined,
serviceTier: undefined,
reasoning_effort: undefined,
verbosity: undefined,
model: "claude-3-5-sonnet-20241022",
messages: [
{
role: "user",
content: "在宏观的建筑生长角度,从控制建筑的生长密度和控制建筑的生长类型角度出发,分别有一些什么样的约束条件,(比如物理环境的舒适度需求,人体的舒适度需求),请分别给我至少约束条件"
}
],
tools: undefined,
tool_choice: undefined,
stream: true,
stream_options: {
include_usage: true
}
};
临时处理方案:
// 1. 清理请求参数
function cleanApiParams(params) {
const cleaned = { ...params };
// 移除所有值为"[undefined]"的参数
Object.keys(cleaned).forEach(key => {
if (cleaned[key] === "[undefined]") {
delete cleaned[key];
}
});
return cleaned;
}
// 2. 重试机制
async function callApiWithRetry(apiCall, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await apiCall();
} catch (error) {
if (error.statusCode === 500 && i < maxRetries - 1) {
console.log(`API调用失败,${i+1}秒后重试...`);
await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1)));
} else {
throw error;
}
}
}
}
4. ️ 预防措施
️ 最佳实践:
function validateApiParams(params) {
const allowedUndefined = ['user', 'tools', 'tool_choice'];
Object.entries(params).forEach(([key, value]) => {
if (value === "[undefined]" || (value === undefined && !allowedUndefined.includes(key))) {
console.warn(`参数 ${key} 存在潜在问题:`, value);
}
});
}
- 错误处理优化:添加更详细的错误日志记录
try {
const response = await fetch(apiUrl, options);
if (!response.ok) {
const errorText = await response.text();
console.error(`API响应异常:
状态码: ${response.status}
请求ID: ${response.headers.get('x-request-id')}
错误详情: ${errorText}`);
}
return await response.json();
} catch (error) {
console.error('API调用失败:', {
错误类型: error.name,
错误信息: error.message,
请求URL: apiUrl,
时间戳: new Date().toISOString()
});
throw error;
}
监控建议:
调试工具推荐:
关键提示:此错误主要由服务端引起,但客户端不正确的参数格式可能触发服务端的异常处理路径。建议先修复参数格式,如果问题持续存在,联系DMXAPI技术支持并提供完整的请求ID链路。