400 {"error":{"type":"<nil>","message":"{\"type\":\"error\",\"error\":{\"type\":...

2026年04月15日 10:04 processing

错误信息

API Error: 400 {"error":{"type":"<nil>","message":"{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"***.***.content.0: Invalid `signature` in `thinking` block\"},\"request_id\":\"req_011Ca4jdx1NSB8fKF4q4d3LT\"}(traceid: b36191a07165a61859631fbe82a07e0f) (request id: 20260415100316151739815q8HLta8P)"},"type":"error"}

AI 解决方案

报错分析报告

1.错误翻译


原文:***.***.content.0: Invalid `signature` in `thinking` block
译文:***.***.内容.0:`thinking`块中的`signature`无效

2.原因分析


  • 根本原因:请求中thinking块的signature字段值不符合API验证规则(格式/生成逻辑错误)。

  • 发生位置:请求体..content.0项的thinking块内,signature参数无效。
  • 3.解决方案


    import hmac
    import hashlib
    import base64
    
    def generate_valid_signature(content: str, secret_key: str) -> str:
        """按API要求生成有效signature(示例为HMAC-SHA256+Base64)"""
        message = content.encode("utf-8")
        secret = secret_key.encode("utf-8")
        signature = hmac.new(secret, message, hashlib.sha256).digest()
        return base64.b64encode(signature).decode("utf-8")
    
    # 修复后的thinking块构造示例
    secret_key = "YOUR_CORRECT_SECRET_KEY"  # 替换为平台分配的合法密钥
    thinking_content = "你的思考内容文本"
    valid_signature = generate_valid_signature(thinking_content, secret_key)
    
    fixed_thinking_block = {
        "type": "thinking",
        "content": thinking_content,
        "signature": valid_signature  # 使用正确生成的签名
    }
    

    4. 预防措施


  • 签名预验证:发送请求前,用API文档的签名算法(如HMAC-SHA256)本地验证signature,确保与预期一致。

  • 工具辅助:使用Postman/Insomnia模拟请求,对比官方示例的签名结果,排查差异。

  • -推荐工具:[OpenAPI Validator](https://github.com/kogosoftwarellc/openapi-generator)(校验请求体格式)、[HMAC Generator](https://www.freeformatter.com/hmac-generator.html)(在线验证签名)。

    ---
    :需替换YOUR_CORRECT_SECRET_KEY为DMXAPI平台分配的真实密钥,确保签名算法与文档完全一致。