错误信息: contents is required (request id: 20251214141141712139925wqB4B4hE) 堆栈信息: A...
🚨 错误信息
错误名称: AI_APICallError
错误信息: contents is required (request id: 20251214141141712139925wqB4B4hE)
堆栈信息: AI_APICallError: contents is required (request id: 20251214141141712139925wqB4B4hE)
at file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/dist-gixTQuVo.js:5132:11
at async postToApi (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/dist-gixTQuVo.js:5028:24)
at async OpenAICompatibleChatLanguageModel$1.doStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-Oi5sAZNS.js:243343:48)
at async wrapStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-Oi5sAZNS.js:38768:31)
at async fn (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-Oi5sAZNS.js:36953:17)
at async file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-Oi5sAZNS.js:34331:19
at async _retryWithExponentialBackoff (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-Oi5sAZNS.js:34433:10)
at async streamStep (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-Oi5sAZNS.js:36921:108)
at async fn (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-Oi5sAZNS.js:37200:5)
at async file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-Oi5sAZNS.js:34331:19
错误原因: "[undefined]"
状态码: 500
请求路径: https://www.dmxapi.cn/v1/chat/completions
请求体: {
"model": "gemini-3-pro-image-preview",
"user": "[undefined]",
"max_tokens": "[undefined]",
"temperature": 1,
"top_p": "[undefined]",
"frequency_penalty": "[undefined]",
"presence_penalty": "[undefined]",
"response_format": "[undefined]",
"stop": "[undefined]",
"seed": "[undefined]",
"extra_body": {
"google": {
"thinking_config": {
"thinking_budget": -1,
"include_thoughts": true
}
}
},
"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": "Sun, 14 Dec 2025 06:12:51 GMT",
"server": "nginx",
"x-rixapi-request-id": "20251214141248570080320u5X1P68a"
}
响应内容: {
"error": {
"message": "contents is required (request id: 20251214141141712139925wqB4B4hE)",
"type": "rix_api_error",
"param": "",
"code": "invalid_request"
}
}
数据: {
"error": {
"message": "contents is required (request id: 20251214141141712139925wqB4B4hE)",
"type": "rix_api_error",
"param": "",
"code": "invalid_request"
}
}
🤖 AI解决方案
专业报错分析报告
1. 错误翻译
原文:contents is required
译文:内容字段是必需的
2. 原因分析
这是一个API调用参数验证错误。错误发生在调用https://www.dmxapi.cn/v1/chat/completions 接口时,请求体不符合API的格式要求。
根本原因:
您正在使用的 gemini-3-pro-image-preview 模型(推测为Google Gemini API的兼容接口)要求请求中的 messages 数组内的每个消息对象必须包含 content 字段。在您的请求中,虽然 messages 数组里有一个 role: "user" 的对象,但该对象的结构可能不完整,特别是 content 字段的格式可能不符合预期。
从堆栈信息看,这是Cherry Studio应用在调用AI服务时发生的错误,状态码500表示服务器在处理您的请求时遇到了内部验证问题。
3. 解决方案
修改请求体中的messages 结构,确保 content 字段格式正确:
// 修复后的请求体结构
{
"model": "gemini-3-pro-image-preview",
"temperature": 1,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "请模仿著名漫画家“村田雄介”的画风,绘制一个机律界(由人工智能和机器人统治的世界)和魔王界(由魔界生物和魔王统治的世界)发生大战的场景。其中,机律界我希望看到一个场景:类似钢铁侠的反浩克战甲从卫星上获得强力的机甲补给,这个场景中的主机器人在与魔王的战斗中发生了部分损坏,但是通过这种方法正在获得机甲补给;另外,魔王界的魔王发动了“部位解放”实施攻击"
}
// 如果是多模态请求,可能需要包含其他content类型
]
}
],
"stream": true,
"stream_options": {
"include_usage": true
},
"extra_body": {
"google": {
"thinking_config": {
"thinking_budget": -1,
"include_thoughts": true
}
}
}
}
关键修复点:
- 规范content字段:将纯字符串形式的
content改为对象数组格式 - 移除undefined值:清理请求体中所有
"[undefined]"的占位符 - 只保留必要参数:移除了不必要的未定义参数
- API文档查阅:
- 请求体验证:
- 错误处理改进:
4. ️ 预防措施
- 在使用特定模型(如Gemini系列)前,务必查阅对应API的官方文档
- 注意不同模型对请求体格式可能有特殊要求
- 在发送请求前,使用JSON验证工具检查数据结构
- 在开发环境中添加请求日志,记录完整的请求和响应信息
- 使用Postman或类似的API测试工具先验证请求格式
// 在代码中添加更详细的错误处理
try {
const response = await apiCall(requestBody);
} catch (error) {
console.error('API调用失败:', {
error: error.message,
requestId: error.requestId,
requestBody: JSON.stringify(requestBody, null, 2) // 记录完整请求体
});
}
建议:检查您使用的Cherry Studio版本,确认其是否支持 gemini-3-pro-image-preview 模型,并查看是否有相关的配置或模板需要更新。