{"args":{"description":"[models] Error: API request failed with status code 500:...

2026年01月07日 12:26 processing

错误信息

req_id: 8a50225832 PluginInvokeError: {"args":{"description":"[models] Error: API request failed with status code 500: {\"error\":{\"message\":\"contents is required (request id: 202601071225558829992254DBXbRUa)\",\"type\":\"rix_api_error\",\"param\":\"\",\"code\":\"invalid_request\"}}"},"error_type":"InvokeError","message":"[models] Error: API request failed with status code 500: {\"error\":{\"message\":\"contents is required (request id: 202601071225558829992254DBXbRUa)\",\"type\":\"rix_api_error\",\"param\":\"\",\"code\":\"invalid_request\"}}"}

AI 解决方案

错误分析开始

1. 错误翻译

原文:"contents is required (request id: 202601071225558829992254DBXbRUa)"
译文:"内容参数是必需的(请求ID: 202601071225558829992254DBXbRUa)"

2. 原因分析

该错误发生在调用一个外部API(可能是深度学习模型的API,如rix_api_error所示)时,根本原因是发送的HTTP请求体中缺少了必需的 contents 参数

  • 错误类型InvokeError -> PluginInvokeError -> rix_api_error

  • HTTP状态码:500(内部服务器错误,尽管本质上是请求参数错误)

  • 错误位置:在名为 models 的插件或组件中调用API时。

  • 上下文:客户端发送的请求数据不符合后端API的必填字段要求,导致后端验证失败并返回 invalid_request

3. 解决方案

确保在构造发送给该API的请求时,请求体(body)中包含一个名为 contents 的有效字段。其值应为数组或特定结构,这取决于API的具体文档。

通用修复示例(以JavaScript/Python为例):

// 修复前(错误的请求体示例)
const badRequestBody = {
  model: "your-model-name",
  // 缺少了 `contents` 字段!
};

// 修复后(正确的请求体示例)
const goodRequestBody = {
  model: "your-model-name",
  contents: [
    // 根据API文档,这里填入必需的内容。
    // 例如,对于多模态模型,可能是一个对象数组:
    {
      type: "text",
      text: "请分析这段代码。"
    }
    // 或者只是一个字符串数组:
    // "第一条内容",
    // "第二条内容"
  ]
};

// 然后使用此 `goodRequestBody` 发起API调用

# Python 示例 (使用requests库)
import requests
import json

url = "你的API端点"
headers = {
    "Authorization": "Bearer your_api_key",
    "Content-Type": "application/json"
}

# 修复后的请求体
payload = {
    "model": "your-model-name",
    "contents": [  # 确保包含此字段
        {
            "type": "text",
            "text": "请分析这段代码。"
        }
    ]
}

response = requests.post(url, headers=headers, json=payload)

关键步骤:

  • 检查你的代码,找到构造API请求的位置。

  • 确保请求的JSON对象中包含一个名为 contents 的键。

  • 根据目标API的官方文档,为 contents 键赋予正确的值(通常是数组)。
  • 4. ️ 预防措施

    • 详读API文档:在集成任何第三方API前,务必仔细阅读其官方文档,特别是关于请求参数的部分。明确哪些是必填字段(required),以及每个字段的数据类型和格式。

    • 使用开发工具验证

    • - 在正式代码集成前,先用 PostmancURL 手动测试API调用,确保请求体格式正确。
      - 在代码中,对API的响应进行结构化异常处理,捕获并记录详细的错误信息(如本次错误中的 messagerequest id),便于快速定位问题。



      请根据上述分析,检查并修正您的代码中的API请求体。