Python调用OpenAI API删除文件时提示delete()缺少sid参数如何解决
你遇到的TypeError: delete() missing 1 required positional argument: 'sid'报错,是因为openai.File.delete()的调用方式不正确,该方法需要直接传入要删除的文件ID作为参数,而不是先将ID传入File类构造函数再调用delete方法。另外你提供的代码片段中缺少import os声明,直接调用os.environ会额外触发模块不存在的报错。
场景1:删除单个指定文件
正确代码示例:
import openai import os # 配置OpenAI接口密钥 os.environ['OPENAI_API_KEY'] = '替换为你的实际API密钥' openai.api_key = os.getenv('OPENAI_API_KEY') # 传入目标文件ID执行删除 target_file_id = "file-CQ0tfZ4p3Hihlbwi1tQYmZV2" delete_result = openai.File.delete(target_file_id) print(f"删除结果:{delete_result}")
接口返回结果中deleted字段为true即代表删除成功。
场景2:删除指定的多个文件
提前整理好需要删除的文件ID列表,遍历执行删除即可:
import openai import os os.environ['OPENAI_API_KEY'] = '替换为你的实际API密钥' openai.api_key = os.getenv('OPENAI_API_KEY') # 填入需要删除的所有文件ID to_delete_file_ids = [ "file-CQ0tfZ4p3Hihlbwi1tQYmZV2", "file-替换为第二个要删除的文件ID", "file-替换为第三个要删除的文件ID" ] for fid in to_delete_file_ids: res = openai.File.delete(fid) print(f"文件ID {fid} 删除状态:{res['deleted']}")
场景3:删除当前账号下所有文件
先拉取全量文件列表,再遍历删除:
import openai import os os.environ['OPENAI_API_KEY'] = '替换为你的实际API密钥' openai.api_key = os.getenv('OPENAI_API_KEY') # 获取账号下所有文件 all_files = openai.File.list() for file_item in all_files['data']: res = openai.File.delete(file_item['id']) print(f"文件 {file_item['id']} 删除结果:{res['deleted']}")
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

