AzureOpenAIEmbeddings 功能和配置选项的详细文档,请参阅 API 参考。以前,LangChain.js 通过专用的 Azure OpenAI SDK 支持与 Azure OpenAI 集成。此 SDK 现已弃用,取而代之的是 OpenAI SDK 中的新 Azure 集成,该集成允许访问最新的 OpenAI 模型和功能,并在发布当天即可使用,并允许 OpenAI API 和 Azure OpenAI 之间的无缝过渡。如果您正在使用已弃用的 SDK 使用 Azure OpenAI,请参阅迁移指南以更新到新的 API。
概览
集成详情
| 类别 | 包 | 本地 | Python 支持 | 下载量 | 版本 |
|---|---|---|---|---|---|
| AzureOpenAIEmbeddings | @langchain/openai | ❌ | ✅ |
设置
要访问 Azure OpenAI 嵌入模型,您需要创建一个 Azure 帐户,获取 API 密钥,并安装@langchain/openai 集成包。
凭据
您需要部署一个 Azure OpenAI 实例。您可以按照此指南在 Azure 门户上部署一个版本。 一旦您的实例运行起来,请确保您有实例名称和密钥。您可以在 Azure 门户中,在实例的“密钥和终结点”部分找到密钥。 如果您正在使用 Node.js,您可以定义以下环境变量来使用服务:安装
LangChain AzureOpenAIEmbeddings 集成位于@langchain/openai 包中
您可以在 Azure OpenAI 文档中找到支持的 API 版本列表。
如果未定义
AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME,它将回退到 AZURE_OPENAI_API_DEPLOYMENT_NAME 的值作为部署名称。同样,AzureOpenAIEmbeddings 构造函数中的 azureOpenAIApiEmbeddingsDeploymentName 参数,如果未定义,也将回退到 azureOpenAIApiDeploymentName 的值。索引和检索
嵌入模型通常用于检索增强生成 (RAG) 流程中,既作为索引数据的一部分,也用于后续检索数据。有关更详细的说明,请参阅学习选项卡下的 RAG 教程。 下面,我们将演示如何使用我们上面初始化的embeddings 对象来索引和检索数据。在此示例中,我们将使用演示 MemoryVectorStore 索引和检索一个示例文档。直接使用
在底层,向量存储和检索器实现分别调用embeddings.embedDocument(...) 和 embeddings.embedQuery(...) 来为 fromDocuments 和检索器的 invoke 操作中使用的文本创建嵌入。 您可以直接调用这些方法来获取您自己用例的嵌入。嵌入单个文本
您可以使用embedQuery 嵌入查询以进行搜索。这会生成特定于查询的向量表示。
嵌入多个文本
您可以使用embedDocuments 嵌入多个文本以进行索引。此方法使用的内部机制可能(但不一定)与嵌入查询不同。
使用 Azure 托管标识
如果您正在使用 Azure 托管标识,您可以这样配置凭据使用不同的域
如果您的实例托管在默认openai.azure.com 之外的域下,您需要使用备用 AZURE_OPENAI_BASE_PATH 环境变量。例如,以下是您如何连接到域 https://westeurope.api.microsoft.com/openai/deployments/{DEPLOYMENT_NAME}
自定义请求头
您可以通过传入configuration 字段来指定自定义请求头。
configuration 字段还接受官方 SDK 接受的其他 ClientOptions 参数。 注意: 特定请求头 api-key 目前无法通过此方式覆盖,它将传递 azureOpenAIApiKey 的值。从 Azure OpenAI SDK 迁移
如果您正在使用带有@langchain/azure-openai 包的已弃用 Azure OpenAI SDK,您可以按照以下步骤更新您的代码以使用新的 Azure 集成
-
安装新的
@langchain/openai包并删除以前的@langchain/azure-openai包npm -
更新您的导入以使用
@langchain/openai包中的新AzureOpenAIEmbeddings类 -
更新您的代码以使用新的
AzureOpenAIEmbeddings类并传入所需的参数请注意,构造函数现在需要azureOpenAIApiInstanceName参数而不是azureOpenAIEndpoint参数,并添加azureOpenAIApiVersion参数来指定 API 版本。-
如果您使用的是 Azure 托管标识,您现在需要使用构造函数的
azureADTokenProvider参数而不是credentials,有关更多详细信息,请参阅Azure 托管标识部分。 -
如果您使用的是环境变量,您现在必须设置
AZURE_OPENAI_API_INSTANCE_NAME环境变量而不是AZURE_OPENAI_API_ENDPOINT,并添加AZURE_OPENAI_API_VERSION环境变量来指定 API 版本。
-
如果您使用的是 Azure 托管标识,您现在需要使用构造函数的
API 参考
有关所有 AzureOpenAIEmbeddings 功能和配置的详细文档,请访问 API 参考。以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。