Azure OpenAI 是一项云服务,可帮助您利用来自 OpenAI、Meta 及其他公司的多样化预构建和精选模型,快速开发生成式 AI 体验。 LangChain.js 通过 OpenAI SDK 中的新 Azure 集成,支持与 Azure OpenAI 的集成。 您可以在此页面上了解更多关于 Azure OpenAI 及其与 OpenAI API 的区别。如果您没有 Azure 账户,可以创建一个免费账户开始使用。 本文将帮助您使用 LangChain 开始使用 AzureOpenAIEmbeddings 嵌入模型。有关Documentation Index
Fetch the complete documentation index at: https://langchain-zh.cn/llms.txt
Use this file to discover all available pages before exploring further.
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,可以定义以下环境变量来使用该服务:安装
LangChain AzureOpenAIEmbeddings 集成位于@langchain/openai 包中:
您可以在 Azure OpenAI 文档中找到支持的 API 版本列表。
实例化
现在我们可以实例化模型对象并嵌入文本:索引与检索
嵌入模型通常用于检索增强生成(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 迁移
如果您正在使用已弃用的 Azure OpenAI SDK 和@langchain/azure-openai 包,可以按照以下步骤更新代码以使用新的 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 参考。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

