You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义数据集微调Azure OpenAI Davinci模型遇API密钥错误求助

解决OpenAI微调时的API密钥错误问题

你遇到的问题是Python代码中设置的OpenAI密钥无法被subprocess调用的命令行工具读取——因为subprocess启动的是独立进程,不会继承Python代码里的openai模块配置。以下是两种可行的修复方案:

方案一:命令行直接传入API密钥

修改subprocess调用的命令,添加--api-key参数,把你的密钥直接传入:

# 数据预处理命令
subprocess.run([
    'openai', 'tools', 'fine_tunes.prepare_data', 
    '--file', 'prepared_openai_data.csv', 
    '--quiet',
    '--api-key', config.API_KEY
])

# 启动微调命令
subprocess.run([
    'openai', 'api', 'fine_tunes.create', 
    '--training_file', 'prepared_data_prepared.jsonl', 
    '--model', 'davinci', 
    '--suffix', 'SuperHero',
    '--api-key', config.API_KEY
])

方案二:通过环境变量传递密钥

在执行subprocess前,把API密钥设置为环境变量,命令行工具会自动读取OPENAI_API_KEY:

# 复制当前环境变量,避免覆盖系统原有变量
env = os.environ.copy()
env['OPENAI_API_KEY'] = config.API_KEY

# 数据预处理命令
subprocess.run(
    'openai tools fine_tunes.prepare_data --file prepared_openai_data.csv --quiet'.split(),
    env=env
)

# 启动微调命令
subprocess.run(
    'openai api fine_tunes.create --training_file prepared_data_prepared.jsonl --model davinci --suffix "SuperHero"'.split(),
    env=env
)

额外注意事项

  • Windows下用字符串split()处理带引号的参数可能出问题,比如--suffix "SuperHero"会被拆成['--suffix', '"SuperHero"'],建议用列表形式编写命令参数(如方案一),避免引号解析错误。
  • 确保你的config.API_KEY是有效的OpenAI密钥,没有空格或拼写错误。

内容的提问来源于stack exchange,提问作者Vanshika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:09:59