微调OpenAI API遇NotFoundError(404):模型调用失败求助
OpenAI微调后调用模型出现404错误的解决方法
错误原因
- 你直接使用**微调任务ID(ftjob-xxx)**作为模型ID调用接口,但任务ID并非最终可用的模型ID。微调任务成功完成后,OpenAI会生成一个专属模型ID(格式示例:
ft:gpt-3.5-turbo:your-org:custom-name:xxxxxx),只有这个ID才能用于生成请求。 - 微调任务未完成时,不会生成可用模型,此时调用也会触发404错误。
解决步骤
1. 查询微调任务状态及获取模型ID
执行以下代码确认任务是否完成,并提取生成的模型ID:
from openai import OpenAI client = OpenAI(api_key="OPENAI_KEY") # 替换为你的微调任务ID job_id = "ftjob-xxxxxx" job_details = client.fine_tuning.jobs.retrieve(job_id) print("任务状态:", job_details.status) if job_details.status == "succeeded": print("生成的模型ID:", job_details.fine_tuned_model)
2. 修正调用代码
使用获取到的模型ID替换任务ID,同时修复messages参数的格式错误(必须为包含角色的列表,而非纯字符串):
prompt = " 1-8 X 15 FLAT SLTD MACH SCREW 3 THRD HDG " # 替换为实际生成的模型ID fine_tuned_model = "ft:gpt-3.5-turbo:your-org:custom-name:xxxxxx" response = client.chat.completions.create( model=fine_tuned_model, messages=[{"role": "user", "content": prompt}], temperature=0, max_tokens=50 ) # 注意提取内容的路径:从message.content获取 prediction_text = response.choices[0].message.content.strip() print(f"预测产品ID: {prediction_text}")
3. 额外检查项
- 确认API密钥所属的组织/项目有权限访问该微调模型,可在OpenAI控制台查看模型权限。
- 微调任务耗时取决于数据量大小,若任务状态为
running,需等待任务完成后再调用模型。
内容的提问来源于stack exchange,提问作者Rakebun Lucky
相关产品推荐
相关产品推荐

