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

2026年04月04日 23:47 processing

错误信息

错误名称: AI_APICallError 错误信息: The role only supports :`user`、`assistant` - `messages.[0]` 堆栈信息: AI_APICallError: The role only supports :`user`、`assistant` - `messages.[0]` at file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/dist-DWBkLJID.js:1704:11 at async postToApi (file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/dist-DWBkLJID.js:1599:24) at async OpenAICompatibleChatLanguageModel.doStream (file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/dist-MiiZ7jiT.js:452:48) at async wrapStream (file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-BX3OZ3o6.js:48641:32) at async fn (file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-BX3OZ3o6.js:47507:17) at async file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-BX3OZ3o6.js:43861:19 at async _retryWithExponentialBackoff (file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-BX3OZ3o6.js:44024:10) at async streamStep (file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-BX3OZ3o6.js:47476:109) at async fn (file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-BX3OZ3o6.js:47782:5) at async file:///C:/APP/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-BX3OZ3o6.js:43861:19 错误原因: "[undefined]" 状态码: 400 请求路径: https://www.dmxapi.cn/v1/chat/completions 请求体: { "model": "Baichuan-M3-Plus-free", "user": "[undefined]", "max_tokens": "[undefined]", "temperature": "[undefined]", "top_p": "[undefined]", "frequency_penalty": "[undefined]", "presence_penalty": "[undefined]", "response_format": "[undefined]", "stop": "[undefined]", "seed": "[undefined]", "reasoning_effort": "[undefined]", "verbosity": "[undefined]", "messages": [ { "role": "system", "content": "test" }, { "role": "user", "content": "hi" } ], "tools": "[undefined]", "tool_choice": "[undefined]", "stream": true, "stream_options": { "include_usage": true } } 响应首部: { "cache-control": "no-cache", "content-type": "text/event-stream", "date": "Sat, 04 Apr 2026 15:44:58 GMT", "document-policy": "include-js-call-stacks-in-crash-reports", "server": "nginx", "x-rixapi-request-id": "20260404234457178090150AIxCcPxT" } 响应内容: { "error": { "message": "The role only supports :`user`、`assistant` - `messages.[0]`", "type": "rix_api_error", "param": "", "code": null } } 数据: { "error": { "message": "The role only supports :`user`、`assistant` - `messages.[0]`", "type": "rix_api_error", "param": "", "code": null } }

AI 解决方案

报错分析报告

1.错误翻译


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

2.原因分析


  • 根本原因:请求体中messages数组的第1个元素(索引0)使用了API不支持的system角色,仅允许userassistant

  • 具体位置:请求体messages数组首项,"role": "system"违反API约束。
  • 3.解决方案


    修改messages数组首项的role为允许值(user/assistant),或移除该项:
    // 修复后的messages数组(将system改为user)
    const messages = [
      { role: "user", content: "test" }, // 原system→user
      { role: "user", content: "hi" }
    ];
    
    // 或移除system项(若无需系统提示)
    // const messages = [{ role: "user", content: "hi" }];
    

    4.️ 预防措施


  • ✅ 调用API前校验messages各元素role是否在["user", "assistant"]白名单内;

  • ✅ 参考DMXAPI文档确认支持的字段,避免臆测未定义值。

  • 推荐工具:用[JSON Schema](https://json-schema.org/)验证请求体,或在代码中添加角色检查逻辑。