Skip to main content
Azure OpenAI 是一个云服务,帮助您快速使用 OpenAI、Meta 及其他来源的多样化预构建和精选模型开发生成式 AI 体验。 LangChain.js 支持通过 OpenAI SDK 中的新 Azure 集成与 Azure OpenAI 集成。 您可以查阅 此页面 了解更多关于 Azure OpenAI 及其与 OpenAI API 区别的信息。如果您没有 Azure 账户,可以通过 创建免费账户 开始使用。 这将帮助您使用 LangChain 开始使用 AzureOpenAIEmbeddings 嵌入模型。有关 AzureOpenAIEmbeddings 功能和配置选项的详细文档,请参考 API 参考。
之前,LangChain.js 使用专门的 Azure OpenAI SDK 与 Azure OpenAI 集成。该 SDK 现已弃用,取而代之的是 OpenAI SDK 中的新 Azure 集成,它允许您在 OpenAI 模型和功能发布当天即可访问,并支持在 OpenAI API 和 Azure OpenAI 之间无缝切换。如果您使用已弃用的 SDK 与 Azure OpenAI 集成,请参阅 迁移指南 更新到新 API。

概述

集成详情

设置

要访问 Azure OpenAI 嵌入模型,您需要创建 Azure 账户、获取 API 密钥并安装 @langchain/openai 集成包。

凭证

您需要部署 Azure OpenAI 实例。您可以通过 此指南 在 Azure 门户上部署版本。 部署实例后,请确保您有实例名称和密钥。您可以在 Azure 门户中,在实例的“密钥和端点”部分找到密钥。 如果您使用 Node.js,可以通过定义以下环境变量来使用该服务:
如果您想自动跟踪您的模型调用,也可以通过取消注释以下内容来设置您的 LangSmith API 密钥:

安装

LangChain AzureOpenAIEmbeddings 集成位于 @langchain/openai 包中:
您可以在 Azure OpenAI 文档 中找到支持的 API 版本列表。
如果 AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME 未定义,它将回退到 AZURE_OPENAI_API_DEPLOYMENT_NAME 的部署名称值。azureOpenAIApiEmbeddingsDeploymentName 构造函数中的 AzureOpenAIEmbeddings 参数也适用,如果未定义,将回退到 azureOpenAIApiDeploymentName 的值。

实例化

现在我们可以实例化模型对象并嵌入文本:

索引和检索

嵌入模型通常用于检索增强生成(RAG)流程,既作为索引数据的一部分,也用于后续检索。有关更详细的说明,请参阅我们在 学习标签 下 RAG 教程。 以下是如何使用上面初始化的 embeddings 对象索引和检索数据的示例。在这个示例中,我们将使用 demo 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 集成:
  1. 安装新的 @langchain/openai 包并删除之前的 @langchain/azure-openai 包:
    npm
  2. 更新您的导入以使用 @langchain/openai 包中的新 AzureOpenAIEmbeddings 类:
  3. 更新您的代码以使用新的 AzureOpenAIEmbeddings 类并传递所需的参数:
    注意,构造函数现在需要 azureOpenAIApiInstanceName 参数而不是 azureOpenAIEndpoint 参数,并添加 azureOpenAIApiVersion 参数来指定 API 版本。
    • 如果您使用 Azure 管理身份,现在需要使用构造函数的 azureADTokenProvider 参数而不是 credentials,请参阅 Azure 管理身份 部分以获取更多详细信息。
    • 如果您使用环境变量,现在必须设置 AZURE_OPENAI_API_INSTANCE_NAME 环境变量而不是 AZURE_OPENAI_API_ENDPOINT,并添加 AZURE_OPENAI_API_VERSION 环境变量来指定 API 版本。

API 参考

有关所有 AzureOpenAIEmbeddings 功能和配置的详细文档,请前往 API 参考。
官方原文:src/oss/javascript/integrations/embeddings/azure_openai.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026