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

OpenAI API调用报错求助:非环境变量存密钥及递归错误问题

解决OpenAI API递归错误及非环境变量密钥配置方法

错误原因

你代码里触发递归错误的根本原因是多余且错误地调用了openai_secret_manager.get_secret:

  • 你已经通过openai.api_key = os.getenv("api_key")正确配置了密钥,并且openai.Model.list()能正常运行,说明密钥本身没问题。
  • openai_secret_manager.get_secret的正确用法是传入密钥的名称(比如环境变量的键名),但你直接传入了密钥值,加上这个库内部的错误逻辑,导致无限递归调用,最终触发RecursionError。

修复后的代码

删掉那行多余的openai_secret_manager调用即可,完整代码如下:

import os
import openai

# 把密钥加入环境变量(可选步骤)
os.environ["api_key"] = "你的真实密钥"

# 从环境变量获取密钥并配置
openai.api_key = os.getenv("api_key")

# 测试连接
res = openai.Model.list()
print(res)

# 生成文本
prompt = "What is the meaning of life?"
response = openai.Completion.create(
  engine="davinci",
  prompt=prompt,
  max_tokens=10,
  n=1,
  stop=None,
  temperature=0.5,
)

print(response.choices[0].text)

不用环境变量配置密钥的方法

当然可以不用环境变量,直接将密钥赋值给openai.api_key即可:

import openai

# 直接配置密钥
openai.api_key = "你的真实密钥"

# 后续调用API的代码和之前一致
res = openai.Model.list()
print(res)

prompt = "What is the meaning of life?"
response = openai.Completion.create(
  engine="davinci",
  prompt=prompt,
  max_tokens=10,
  n=1,
  stop=None,
  temperature=0.5,
)

print(response.choices[0].text)

注意:直接硬编码密钥到代码里存在安全风险,建议用本地配置文件(比如config.ini)读取密钥,避免把密钥提交到版本控制系统中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 20:45:15