":{"message":"Role must be in [user, assistant].","type":"invalid_request_error"...
错误信息
失败:HTTP 400: {"error":{"message":"Role must be in [user, assistant].","type":"invalid_request_error","param":"","code":"invalid_parameter_error"}}
AI 解决方案
🔍 报错分析
1. 🌐 错误翻译
原文:Failure: HTTP 400: {"error":{"message":"Role must be in [user, assistant].","type":"invalid_request_error","param":"","code":"invalid_parameter_error"}}
译文:失败:HTTP 400:{"error":{"message":"角色必须在 [user, assistant] 范围内。","type":"无效请求错误","param":"","code":"无效参数错误"}}
2. 🎯 原因分析
该错误是HTTP 400请求参数错误,根本原因是请求中的role参数值不符合要求。API要求role参数只能取两个枚举值:
user或assistant,但当前请求传递了其他非法值或未传递该参数,导致参数校验失败。3. 💡 解决方案
检查代码中role参数的赋值,确保其值仅为
user或assistant。以下是修复后的示例代码(以常见API调用场景为例):# 错误示例(假设传递了非法的role值)
# request_data = {
# "role": "invalid_role", # ❌ 非法值
# "content": "Hello"
# }
# 修复后的代码
request_data = {
"role": "user", # ✅ 合法值,也可根据需求改为 "assistant"
"content": "Hello"
}
# 调用API时的完整参数示例
response = client.api.invoke(
parameters={
"role": "user", # 确保此处为合法枚举值
"message": "Hello"
}
)
4. 🛡️ 预防措施
ALLOWED_ROLES = ["user", "assistant"]),在赋值时检查是否在集合内,避免非法值传递。