使用OpenAI Python API上传文件时触发400 Bad Request错误排查
OpenAI API上传文件报400 Bad Request的可能原因及解决办法
- 文件格式不满足微调要求
微调必须使用JSONL格式,即每行是一个独立的JSON对象(比如{"prompt": "用户输入", "completion": "预期输出"})。哪怕文件是可读文本,若格式不符合或存在JSON语法错误(如引号不闭合、逗号遗漏),都会触发400错误。可以用Python内置工具验证:
若有语法错误,工具会直接报错定位。python -m json.tool < 你的文件路径.jsonl - 文件指针未重置
你提到上传前会读取文件第一行记录,这会导致文件指针移至文件中部,上传时仅发送剩余内容,引发格式错误。解决方法是在调用client.files.create前重置指针:myFile.seek(0) - 文件大小超出限制
OpenAI对微调文件有明确大小限制:单个文件最大100MB,总数据集不超过1GB。可以通过代码检查文件大小:
若超限,需拆分文件或精简内容。import os print(os.path.getsize(file_path)) # 输出单位为字节 - 参数或文件名问题
purpose参数必须严格为"fine-tune",大小写、拼写错误都会导致请求失败;- 文件名后缀需为
.jsonl,若使用.txt等其他后缀,OpenAI可能无法识别格式,建议重命名文件后重试。
- 文件编码异常
确保文件以UTF-8编码保存,若使用其他编码(如GBK),可能导致服务端解析失败。可以用指定编码重新打开文件:
注:此处使用文本模式myFile = open(file_path, "r", encoding="utf-8")r而非二进制模式rb,OpenAI Python客户端会自动处理编码转换。
内容的提问来源于stack exchange,提问作者Gabriela
相关产品推荐
相关产品推荐

