AzureChatOpenAI与AzureOpenAIEmbeddings未提供API密钥报错求助
解决Azure OpenAI API密钥已设置但提示「未提供API密钥」的问题
确认Azure OpenAI专属环境变量配置
Azure OpenAI不能仅依赖OPENAI_API_KEY,必须额外配置以下环境变量:AZURE_OPENAI_API_KEY: 你的Azure OpenAI密钥(与OPENAI_API_KEY值一致,但变量名需区分)AZURE_OPENAI_ENDPOINT: Azure OpenAI资源的专属端点(格式示例:https://<你的资源名称>.openai.azure.com/)OPENAI_API_TYPE: 固定设置为azureOPENAI_API_VERSION: 匹配你使用的API版本(如2023-05-15)
检查LangChain中Azure OpenAI的初始化逻辑
不同版本组合的初始化方式有差异,需避免误用原生OpenAI的初始化类:- 针对
openai==0.28.0/0.27.0 + langchain==0.0.341:from langchain.chat_models import AzureChatOpenAI llm = AzureChatOpenAI( azure_deployment="<你的部署名称>", api_version="<对应API版本>", # 若环境变量已正确加载,无需手动传入key和endpoint ) - 针对
openai==1.6.0 + langchain==0.0.346:
新版OpenAI SDK对Azure支持有重构,需确保参数适配:import os from langchain.chat_models import AzureChatOpenAI # 调试用:验证环境变量读取是否正常 print(os.getenv("AZURE_OPENAI_API_KEY")) print(os.getenv("AZURE_OPENAI_ENDPOINT")) llm = AzureChatOpenAI( azure_deployment="<你的部署名称>", api_version="2023-05-15", azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT"), api_key=os.getenv("AZURE_OPENAI_API_KEY") )
- 针对
排查环境变量加载问题
- 确保
.env文件放在项目根目录,且在代码开头通过python-dotenv正确加载:from dotenv import load_dotenv load_dotenv() # 必须在读取环境变量前调用 - 检查代码中是否有其他逻辑覆盖了环境变量的值,避免硬编码密钥与环境变量冲突。
- 确保
验证版本兼容性
推荐使用经过稳定测试的版本组合:openai==0.28.1+langchain==0.0.341openai==1.10.0+langchain==0.1.0
避免跨大版本的不兼容问题,尤其是OpenAI SDK从0.x升级到1.x后存在较多接口变更。
内容的提问来源于stack exchange,提问作者Neha Seth
相关产品推荐
相关产品推荐

