使用Azure OpenAI凭证调用LangChain OpenAIEmbeddings遇404资源未找到错误
问题描述
使用LangChain的Embeddings功能搭配Azure OpenAI凭证时触发404资源未找到错误,报错堆栈如下:
stack trace: Error: 404 Resource not found at APIError.generate (c:\abcproject\node_modules\openai\error.js:53:20
代码实现:
import { OpenAIEmbeddings } from "@langchain/openai" export const embeddingModel = new OpenAIEmbeddings({ azureOpenAIApiKey: "AzureOpenAI api key", azureOpenAIApiVersion: "2023-08-01-preview", azureOpenAIApiDeploymentName: "gpt-4-32k", azureOpenAIBasePath:"Azure OpenAI endpoint" });
问题原因与解决方案
核心问题:部署名称不匹配
你配置的azureOpenAIApiDeploymentName是gpt-4-32k,这是大语言聊天模型的部署,而非嵌入模型的部署。LangChain调用Embeddings功能时会请求嵌入模型专属的API端点,使用聊天模型的部署名会导致目标路径不存在,直接触发404错误。
修复步骤
- 登录Azure门户,进入你的OpenAI资源页面,切换到「部署」标签页。
- 确认已部署嵌入类模型(常用如
text-embedding-ada-002),若未部署,新建一个嵌入模型的部署实例。 - 修改代码中的部署名称为实际的嵌入模型部署名,示例如下:
import { OpenAIEmbeddings } from "@langchain/openai" export const embeddingModel = new OpenAIEmbeddings({ azureOpenAIApiKey: "你的Azure OpenAI密钥", azureOpenAIApiVersion: "2023-08-01-preview", azureOpenAIApiDeploymentName: "text-embedding-ada-002", // 替换为你的嵌入模型部署名 azureOpenAIBasePath:"你的Azure OpenAI端点" });
额外检查项
- 确认
azureOpenAIBasePath格式正确,应为https://<你的资源名称>.openai.azure.com/的完整端点,末尾无需添加额外路径。 - 验证API密钥所属的Azure OpenAI资源,已启用对应嵌入模型部署的访问权限。
内容的提问来源于stack exchange,提问作者Arvind kumar
相关产品推荐
相关产品推荐

