使用LangChain调用Azure OpenAI时遭遇404资源未找到错误求助
以下是针对该404错误的进一步排查和解决方案:
核对Azure OpenAI资源端点的完整性
确保LangChain配置中的azure_endpoint完全匹配Azure门户提供的资源端点,必须包含结尾的/openai路径(例如https://<resource-name>.openai.azure.com/openai),避免手动输入时的拼写或路径缺失问题,建议直接从Azure门户复制粘贴端点地址。区分模型名称与部署名称
LangChain配置中需要填写的是Azure OpenAI的部署名称,而非模型本身的官方名称。比如你部署了text-embedding-ada-002模型,自定义部署名称为my-embedding-deploy,则配置里的azure_deployment字段必须填my-embedding-deploy,而非原模型名。验证API版本的兼容性
确认使用的API版本与部署的模型兼容,例如嵌入模型text-embedding-ada-002要求API版本不低于2023-05-15。可在Azure OpenAI门户的模型部署页面查看该模型推荐的API版本,避免使用已废弃的旧版本。检查资源访问权限与网络环境
- 确认LangChain运行环境的IP在Azure OpenAI资源的允许访问列表中,若设置了IP限制,需将当前运行环境的IP加入白名单。
- 排查企业网络是否限制了Azure目标区域的访问,可尝试在本地测试环境发起请求,验证网络连通性。
检查LangChain代码的参数配置
确保初始化相关类时的参数正确,示例代码如下:from langchain.embeddings import AzureOpenAIEmbeddings embeddings = AzureOpenAIEmbeddings( azure_deployment="你的部署名称", openai_api_key="你的API密钥", openai_api_base="https://<resource-name>.openai.azure.com/openai", openai_api_version="2023-05-15" )注意避免
openai_api_base末尾多加斜杠,或参数名拼写错误(比如将azure_deployment写成model_name)。分析Azure OpenAI的详细请求日志
进入Azure门户的OpenAI资源,在「监控」->「日志」中查看具体请求详情,核对请求中的deployment-id、api-version等参数是否与实际部署一致。若日志显示请求的部署名称不存在,直接修正配置中的部署名称即可。
内容的提问来源于stack exchange,提问作者Arpit Bajpai

