Langchain调用OpenAI时API密钥及调用报错问题求助
问题解决指南
1. 环境变量不被识别的问题
你代码中读取的环境变量是OPEN_AI_KEY,但LangChain的OpenAI类默认读取的环境变量名是OPENAI_API_KEY,这就是为什么你能打印出密钥,但初始化LLM时仍报错的原因。
解决方法:
- 修改
.env文件中的变量名为OPENAI_API_KEY,密钥值保持不变; - 或者初始化
OpenAI类时显式指定参数,传入已有的环境变量值:
llm = OpenAI( openai_api_key=os.environ.get("OPEN_AI_KEY"), model_name="text-davinci-003", temperature=0.7, max_tokens=512 )
2. 调用LLM时的参数错误
直接用llm("Tell me a joke")调用模型出现类型错误,是因为部分LangChain版本中,LLM实例不能通过括号直接调用,需使用predict方法。
解决方法:
替换调用方式为:
llm.predict("Tell me a joke")
3. 更新后的认证错误
你传入的org-Wz3J****************2XK6是OpenAI的组织ID,不是API密钥。API密钥是以sk-开头的字符串,混淆两者导致了认证失败——你调用chat/completions接口时应该同时传入了正确的API密钥和组织ID,所以能正常工作。
解决方法:
- 获取以
sk-开头的正确API密钥; - 将其替换到环境变量或
openai_api_key参数中; - 若需指定组织ID,可额外添加
organization参数:
llm = OpenAI( openai_api_key="你的sk-开头API密钥", organization="org-Wz3J****************2XK6", model_name="text-davinci-003", temperature=0.7, max_tokens=512 )
内容的提问来源于stack exchange,提问作者Yilmaz
相关产品推荐
相关产品推荐

