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
相关产品推荐
相关产品推荐

