错误信息: The role only supports :`user`、`assistant` - `messages.[0]` 堆栈信息: AI_APICa...

2026年07月08日 05:35 14.66 秒 success

错误信息

错误名称: AI_APICallError 错误信息: The role only supports :`user`、`assistant` - `messages.[0]` 堆栈信息: AI_APICallError: The role only supports :`user`、`assistant` - `messages.[0]` at file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:52075:11 at async postToApi$2 (file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:51970:24) at async OpenAICompatibleChatLanguageModel.doStream (file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:69970:48) at async wrapStream (file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:105780:32) at async fn (file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:104430:17) at async file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:100701:19 at async _retryWithExponentialBackoff (file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:100891:10) at async streamStep (file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:104399:109) at async fn (file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:104716:5) at async file:///D:/Program%20Files/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-D-J5UN_L.js:100701:19 错误原因: "[undefined]" 状态码: 400 请求路径: https://www.dmxapi.cn/v1/chat/completions 请求体: { "model": "Baichuan-M3-Plus", "user": "[undefined]", "max_tokens": "[undefined]", "temperature": "[undefined]", "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": "system", ], "tools": "[undefined]", "tool_choice": "[undefined]", "stream": true, "stream_options": "[undefined]" } 响应首部: { "cache-control": "no-cache", "content-type": "text/event-stream", "date": "Tue, 07 Jul 2026 21:33:59 GMT", "document-policy": "include-js-call-stacks-in-crash-reports", "server": "nginx", "x-dmx-api-version": "v2.3.2", "x-oneapi-request-id": "20260707213359365325333c14228f5qYvpTdQv" } 响应内容: { "error": { "message": "The role only supports :`user`、`assistant` - `messages.[0]`", "type": "invalid_request_error", "param": "", "code": null } } 数据: { "error": { "message": "The role only supports :`user`、`assistant` - `messages.[0]`", "type": "invalid_request_error", "param": "", "code": null } }

AI 解决方案

🔧 错误分析

1. 🌐 错误翻译


原文:The role only supports :`user`、`assistant` - `messages.[0]`
译文:角色仅支持:`user`、`assistant` - `messages.[0]`

2. 🎯 原因分析


该错误是API请求参数格式错误。从请求体可以看到,messages数组的第一个元素(messages.[0])使用了role: "system",但API要求消息角色只能是userassistant,不支持system角色。错误明确指出问题发生在消息列表的第一条消息的角色设置上。

3. 💡 解决方案


修复方法:移除或转换system角色消息
  • 方案一:将system角色消息改为user角色,将系统提示内容合并到用户消息中

  • 方案二:如果需要保留系统提示,检查API文档确认是否支持在其他地方设置系统提示
  • // 修复后的请求体示例
    {
      "model": "Baichuan-M3-Plus",
      "messages": [
        {
          "role": "user",  // 将 system 改为 user
          "content": "你是 helpful assistant"  // 将系统提示内容放在用户消息中
        }
      ],
      "stream": true
    }
    

    4. 🛡️ 预防措施


  • 🔍 严格对照API文档:调用API前务必查阅官方文档,确认支持的消息角色类型和格式要求

  • 📝 消息格式校验:在发送请求前对messages数组进行格式验证,确保每条消息的role只能是userassistant

  • 🛠️ 开发工具推荐:使用Postman或API测试工具预先验证请求格式,或编写简单的格式校验函数在请求前自动检查