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 对象索引和检索数据的示例。在这个示例中,我们将使用 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 集成:
-
安装新的
@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 参考。
官方原文:src/oss/javascript/integrations/embeddings/azure_openai.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。