使用OpenAI函数调用构建数据库视图查询聊天机器人遇InvalidRequestError求助
排查OpenAI函数调用InvalidRequestError的常见方向
函数定义格式不规范:检查
get_rent_details的函数定义是否严格符合OpenAI要求:- 必须包含
name(字符串,无空格/特殊字符)、description(明确函数作用)、parameters(遵循JSON Schema规范) - 参数的
type、properties、required字段需完整,必填参数必须在required数组中声明
- 必须包含
模型版本不兼容:确保使用的是
gpt-3.5-turbo-0613或gpt-4-0613版本,只有这两个及后续版本支持函数调用,误用其他版本会触发错误请求参数结构错误:核对
openai.ChatCompletion.create的参数细节:messages数组中每个消息必须包含合法role(仅system/user/assistant/function)和对应内容(content或function_call)functions参数必须是数组类型,每个元素为正确的函数定义对象- 若指定
function_call,值只能是{"name": "get_rent_details"}或"auto",不能有其他格式
API密钥与权限问题:确认API密钥有效且账户有足够额度,部分地区限制或模型访问权限不足也会导致请求被拒绝
上下文长度超限:
gpt-3.5-turbo-0613的上下文窗口限制为4096 tokens,检查messages总长度或函数定义内容是否超限特殊字符未转义:函数定义或消息内容中的引号、换行等特殊字符未正确转义,会导致JSON解析失败,引发请求错误
建议直接打印
openai.ChatCompletion.create的完整请求参数,对比OpenAI官方函数调用示例逐一核对格式一致性
内容的提问来源于stack exchange,提问作者naam_nrj
相关产品推荐
相关产品推荐

