错误信息: contents is required (request id: 20251214141141712139925wqB4B4hE) 堆栈信息: A...

2025年12月14日 14:12 状态: processing

🚨 错误信息

错误名称: 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]" 的占位符

  • 只保留必要参数:移除了不必要的未定义参数
  • 4. ️ 预防措施

  • API文档查阅

  • - 在使用特定模型(如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 模型,并查看是否有相关的配置或模板需要更新。