","error":{"type":"invalid_request_error","message":"***.***.content.0: Invalid ...
错误信息
{"type":"error","error":{"type":"invalid_request_error","message":"***.***.content.0: Invalid `signature` in `thinking` block"},"request_id":"req_011CWhos7qJgK7tbXTZSnjXD"}(traceid: 879b2768ebca8618da85a54119653e94) (request id: 20260102110336185968648c7kNdjWj) (request id: 20260102110335683352201NPqIHjIB)
AI 解决方案
代码糕手 - 报错分析报告
1. 错误翻译
原文:Invalid `signature` in `thinking` block
译文:`thinking`块中的`signature`无效
2. 原因分析
根本原因:DMXAPI平台在验证请求时,检测到
thinking块中的签名(signature)无效或格式错误。具体分析:
invalid_request_error(无效请求错误)thinking数据块3. 解决方案
步骤1:检查签名生成逻辑
# 正确示例:生成有效的thinking块签名
import hashlib
import json
def generate_think_signature(think_data, api_secret):
"""
生成thinking块的正确签名
"""
# 1. 将think数据转换为规范的JSON字符串
think_json = json.dumps(think_data, sort_keys=True, separators=(',', ':'))
# 2. 使用API密钥进行签名(示例使用HMAC-SHA256)
import hmac
signature = hmac.new(
api_secret.encode('utf-8'),
think_json.encode('utf-8'),
hashlib.sha256
).hexdigest()
return signature
# 正确构建thinking块
thinking_block = {
"content": [...], # 您的思考内容
"signature": generate_think_signature(think_content, "your_api_secret")
}
步骤2:验证请求结构
{
"type": "completion",
"thinking": {
"content": [...],
"signature": "正确生成的签名值" // 确保这里是有效的签名
},
"messages": [...]
}
4. ️ 预防措施
最佳实践建议
- 确保客户端和服务端使用完全相同的签名算法
- 检查时间戳、nonce值等额外参数是否包含在签名计算中
- 编码规范检查:
- 签名验证工具:使用Postman或curl预先测试签名生成
- 日志记录:在开发环境中记录完整的请求和签名计算过程,便于调试
- 验证JSON序列化时是否使用统一的参数(空格、键排序)
- 确保字符串编码一致(通常使用UTF-8)
️ 推荐工具
关键提醒:请检查您的API密钥是否正确,以及签名生成逻辑是否与DMXAPI文档中指定的算法完全一致。