使用LangChain与ChatOpenAI时的API密钥配置错误求助
问题解决步骤
1. 修正.env文件格式
你的.env文件必须用键值对格式存储API密钥,示例如下:
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxx
2. 修正代码中的环境变量读取逻辑
你当前代码里os.environ['sk-xxx']是错误用法——这里需要传入环境变量的键名(即OPENAI_API_KEY),而非密钥字符串本身。修正后的代码:
import os import openai from dotenv import load_dotenv, find_dotenv # 加载本地.env文件 _ = load_dotenv(find_dotenv()) # 读取环境变量中的API密钥 openai.api_key = os.environ.get("OPENAI_API_KEY") # 也可用os.getenv,它会在键不存在时返回None,避免直接抛出KeyError # openai.api_key = os.getenv("OPENAI_API_KEY")
3. 验证环境变量加载状态
可以先打印环境变量确认是否加载成功:
print(os.getenv("OPENAI_API_KEY"))
如果输出为你的密钥字符串,说明加载正常;如果输出None,检查:
- .env文件是否和代码文件在同一目录下
- .env文件内的键名是否和代码中完全一致(注意大小写敏感)
- 键值对是否存在拼写错误(比如少写下划线、空格)
4. LangChain ChatOpenAI的正确使用方式
有两种方式可以让ChatOpenAI识别密钥:
方法一:依赖全局设置的openai.api_key
只要你正确设置了openai.api_key,直接初始化即可:
from langchain.chat_models import ChatOpenAI chat_model = ChatOpenAI()
方法二:直接传入api_key参数
如果不想依赖环境变量,也可以直接将密钥传入ChatOpenAI:
chat_model = ChatOpenAI(api_key="sk-xxxxxxxxxxxxxxxxx")
内容的提问来源于stack exchange,提问作者Warren K
相关产品推荐
相关产品推荐

