Skip to main content
您当前正在查看的页面记录了 Azure OpenAI 文本补全模型的使用。最新且最流行的 Azure OpenAI 模型是聊天补全模型除非您专门使用 gpt-3.5-turbo-instruct,否则您可能正在寻找此页面
此前,LangChain.js 支持使用专用的 Azure OpenAI SDK 与 Azure OpenAI 集成。此 SDK 现已弃用,转而使用 OpenAI SDK 中的新 Azure 集成,后者允许在 OpenAI 模型发布当天即可访问最新模型和功能,并支持在 OpenAI API 和 Azure OpenAI 之间无缝切换。如果您正在使用已弃用的 SDK 与 Azure OpenAI,请参阅迁移指南以更新到新 API。
Azure OpenAI 是一项 Microsoft Azure 服务,提供来自 OpenAI 的强大语言模型。 本文将帮助您开始使用 LangChain 的 AzureOpenAI 补全模型(LLM)。有关 AzureOpenAI 功能和配置选项的详细文档,请参阅 API 参考

概述

集成详情

本地可序列化Python 支持下载量版本
AzureOpenAI@langchain/openaiNPM - DownloadsNPM - Version

设置

要访问 AzureOpenAI 模型,您需要创建一个 Azure 帐户、获取 API 密钥,并安装 @langchain/openai 集成包。

凭据

前往 azure.microsoft.com 注册 AzureOpenAI 并生成 API 密钥。 您还需要部署一个 Azure OpenAI 实例。您可以按照此指南在 Azure 门户上部署一个版本。 实例运行后,请确保您拥有实例名称和密钥。您可以在 Azure 门户中实例的“密钥和终结点”部分找到密钥。 如果您使用 Node.js,可以定义以下环境变量来使用该服务:
AZURE_OPENAI_API_INSTANCE_NAME=<您的实例名称>
AZURE_OPENAI_API_DEPLOYMENT_NAME=<您的部署名称>
AZURE_OPENAI_API_KEY=<您的密钥>
AZURE_OPENAI_API_VERSION="2024-02-01"
或者,您可以将值直接传递给 AzureOpenAI 构造函数。 如果您希望自动跟踪模型调用,还可以通过取消注释以下内容来设置您的 LangSmith API 密钥:
# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="您的 API 密钥"

安装

LangChain AzureOpenAI 集成位于 @langchain/openai 包中:
npm install @langchain/openai @langchain/core

实例化

现在我们可以实例化模型对象并生成聊天补全:
import { AzureOpenAI } from "@langchain/openai"

const llm = new AzureOpenAI({
  model: "gpt-3.5-turbo-instruct",
  azureOpenAIApiKey: "<您的密钥>", // 在 Node.js 中默认为 process.env.AZURE_OPENAI_API_KEY
  azureOpenAIApiInstanceName: "<您的实例名称>", // 在 Node.js 中默认为 process.env.AZURE_OPENAI_API_INSTANCE_NAME
  azureOpenAIApiDeploymentName: "<您的部署名称>", // 在 Node.js 中默认为 process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
  azureOpenAIApiVersion: "<api_version>", // 在 Node.js 中默认为 process.env.AZURE_OPENAI_API_VERSION
  temperature: 0,
  maxTokens: undefined,
  timeout: undefined,
  maxRetries: 2,
  // 其他参数...
})

调用

const inputText = "AzureOpenAI 是一家 AI 公司,"

const completion = await llm.invoke(inputText)
completion
为企业提供 AI 解决方案。他们提供一系列服务,包括自然语言处理、计算机视觉和机器学习。他们的解决方案旨在帮助企业自动化流程、从数据中获得洞察并改进决策。AzureOpenAI 还提供咨询服务,帮助企业识别和实施最适合其特定需求的 AI 解决方案。他们与医疗保健、金融和零售等各行业合作。凭借其在 AI 方面的专业知识以及与 Microsoft Azure 的合作伙伴关系,AzureOpenAI 是希望在快速发展的技术世界中保持领先地位的企业值得信赖的 AI 解决方案提供商。

使用 Azure 托管标识

如果您使用 Azure 托管标识,可以像这样配置凭据:
import {
  DefaultAzureCredential,
  getBearerTokenProvider,
} from "@azure/identity";
import { AzureOpenAI } from "@langchain/openai";

const credentials = new DefaultAzureCredential();
const azureADTokenProvider = getBearerTokenProvider(
  credentials,
  "https://cognitiveservices.azure.com/.default"
);

const managedIdentityLLM = new AzureOpenAI({
  azureADTokenProvider,
  azureOpenAIApiInstanceName: "<您的实例名称>",
  azureOpenAIApiDeploymentName: "<您的部署名称>",
  azureOpenAIApiVersion: "<api_version>",
});

使用不同域

如果您的实例托管在默认 openai.azure.com 以外的域下,您需要使用备用的 AZURE_OPENAI_BASE_PATH 环境变量。 例如,以下是连接到域 https://westeurope.api.microsoft.com/openai/deployments/{DEPLOYMENT_NAME} 的方法:
import { AzureOpenAI } from "@langchain/openai";

const differentDomainLLM = new AzureOpenAI({
  azureOpenAIApiKey: "<您的密钥>", // 在 Node.js 中默认为 process.env.AZURE_OPENAI_API_KEY
  azureOpenAIApiDeploymentName: "<您的部署名称>", // 在 Node.js 中默认为 process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
  azureOpenAIApiVersion: "<api_version>", // 在 Node.js 中默认为 process.env.AZURE_OPENAI_API_VERSION
  azureOpenAIBasePath:
    "https://westeurope.api.microsoft.com/openai/deployments", // 在 Node.js 中默认为 process.env.AZURE_OPENAI_BASE_PATH
});

从 Azure OpenAI SDK 迁移

如果您正在使用已弃用的 Azure OpenAI SDK 和 @langchain/azure-openai 包,您可以按照以下步骤更新代码以使用新的 Azure 集成:
  1. 安装新的 @langchain/openai 包并移除之前的 @langchain/azure-openai 包:
    npm install @langchain/openai
    npm uninstall @langchain/azure-openai
    
  2. 更新您的导入,以使用 @langchain/openai 包中的新 AzureOpenAIAzureChatOpenAI 类:
    import { AzureOpenAI } from "@langchain/openai";
    
  3. 更新您的代码以使用新的 AzureOpenAIAzureChatOpenAI 类,并传递所需的参数:
    const model = new AzureOpenAI({
      azureOpenAIApiKey: "<您的密钥>",
      azureOpenAIApiInstanceName: "<您的实例名称>",
      azureOpenAIApiDeploymentName: "<您的部署名称>",
      azureOpenAIApiVersion: "<api_version>",
    });
    
    请注意,构造函数现在需要 azureOpenAIApiInstanceName 参数而不是 azureOpenAIEndpoint 参数,并添加了 azureOpenAIApiVersion 参数来指定 API 版本。
    • 如果您之前使用 Azure 托管标识,现在需要在构造函数中使用 azureADTokenProvider 参数而不是 credentials,有关更多详细信息,请参阅Azure 托管标识 部分。
    • 如果您之前使用环境变量,现在必须设置 AZURE_OPENAI_API_INSTANCE_NAME 环境变量而不是 AZURE_OPENAI_API_ENDPOINT,并添加 AZURE_OPENAI_API_VERSION 环境变量来指定 API 版本。

API 参考

有关所有 AzureOpenAI 功能和配置的详细文档,请前往 API 参考