调用OpenAI API使用微调模型时提示‘模型不存在’求助
尝试调用自定义微调模型开发聊天机器人,使用chat/completions接口时报错提示模型不存在,但通过模型列表API能正常看到该微调模型。非微调模型调用完全正常,尝试切换到Engine API也未解决问题。
请求代码:
const API_KEY = "/"; const ORG_ID = "/"; const headers = { "Content-Type": "application/json", Authorization: "Bearer " + API_KEY, "OpenAI-Organization": ORG_ID, }; const res = await axios.post( "https://api.openai.com/v1/chat/completions", { model: "ft-modelname", messages: [ { role: "system", content: "your name is Name.", }, { role: "user", content: message, }, ], }, { headers } );
报错信息:
{ "error": { "message": "The model `ft-modelname` does not exist", "type": "invalid_request_error", "param": null, "code": null } }
匹配模型类型与调用接口
仅基于GPT-3.5/4系列的微调模型可使用chat/completions接口。若微调模型基于Davinci、Curie等非Chat系列基础模型,必须切换到completions接口,同时调整请求结构,替换messages数组为prompt参数:const res = await axios.post( "https://api.openai.com/v1/completions", { model: "ft-modelname", prompt: message, // 按需添加temperature、max_tokens等参数 }, { headers } );核对完整模型ID
从模型列表API返回结果中复制完整的模型ID,确保代码中model字段与返回值完全一致,包括大小写、后缀等细节。微调模型ID格式通常为ft:gpt-3.5-turbo:your-org:custom-suffix:xxxxxx,手动输入易出错。校验组织ID与API密钥关联
确认API密钥所属组织与请求头OpenAI-Organization匹配。若API密钥属于个人账号而非组织,直接移除该请求头再尝试调用——个人账号的模型无需指定组织ID,错误指定会导致模型访问失败。确认模型状态
调用模型列表API时查看模型status字段,确保状态为active。若模型处于pending或failed状态,即使能列表显示也无法调用,需等待微调完成或重新发起任务。检查接口版本与权限
确保使用OpenAI API v1版本,旧版接口可能不支持新微调模型。同时确认API密钥拥有调用微调模型的权限,未被限制访问特定模型类型。
内容的提问来源于stack exchange,提问作者Remy

