跳到主要内容
您当前查看的是关于使用 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 的 Azure OpenAI 补全模型 (LLMs)。有关 AzureOpenAI 功能和配置选项的详细文档,请参阅API 参考

概览

集成详情

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

设置

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

凭据

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

安装

LangChain Azure OpenAI 集成位于 @langchain/openai 包中
npm install @langchain/openai @langchain/core

实例化

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

const llm = new AzureOpenAI({
  model: "gpt-3.5-turbo-instruct",
  azureOpenAIApiKey: "<your_key>", // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
  azureOpenAIApiInstanceName: "<your_instance_name>", // In Node.js defaults to process.env.AZURE_OPENAI_API_INSTANCE_NAME
  azureOpenAIApiDeploymentName: "<your_deployment_name>", // In Node.js defaults to process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
  azureOpenAIApiVersion: "<api_version>", // In Node.js defaults to process.env.AZURE_OPENAI_API_VERSION
  temperature: 0,
  maxTokens: undefined,
  timeout: undefined,
  maxRetries: 2,
  // other params...
})

调用

const inputText = "AzureOpenAI is an AI company that "

const completion = await llm.invoke(inputText)
completion
provides AI solutions to businesses. They offer a range of services including natural language processing, computer vision, and machine learning. Their solutions are designed to help businesses automate processes, gain insights from data, and improve decision-making. AzureOpenAI also offers consulting services to help businesses identify and implement the best AI solutions for their specific needs. They work with a variety of industries, including healthcare, finance, and retail. With their expertise in AI and their partnership with Microsoft Azure, AzureOpenAI is a trusted provider of AI solutions for businesses looking to stay ahead in the rapidly evolving world of technology.

使用 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: "<your_instance_name>",
  azureOpenAIApiDeploymentName: "<your_deployment_name>",
  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: "<your_key>", // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
  azureOpenAIApiDeploymentName: "<your_deployment_name>", // In Node.js defaults to process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
  azureOpenAIApiVersion: "<api_version>", // In Node.js defaults to process.env.AZURE_OPENAI_API_VERSION
  azureOpenAIBasePath:
    "https://westeurope.api.microsoft.com/openai/deployments", // In Node.js defaults to process.env.AZURE_OPENAI_BASE_PATH
});

从 Azure OpenAI SDK 迁移

如果您正在使用带有 @langchain/azure-openai 包的已弃用 Azure OpenAI SDK,您可以按照以下步骤更新您的代码以使用新的 Azure 集成
  1. 安装新的 @langchain/openai 包并删除以前的 @langchain/azure-openai
    npm install @langchain/openai
    npm uninstall @langchain/azure-openai
    
  2. 更新您的导入以使用 @langchain/openai 包中的新 AzureOpenAI 和 @[AzureChatOpenAI] 类。
    import { AzureOpenAI } from "@langchain/openai";
    
  3. 更新您的代码以使用新的 AzureOpenAI 和 @[AzureChatOpenAI] 类并传入所需的参数。
    const model = new AzureOpenAI({
      azureOpenAIApiKey: "<your_key>",
      azureOpenAIApiInstanceName: "<your_instance_name>",
      azureOpenAIApiDeploymentName: "<your_deployment_name>",
      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 参考

有关所有 Azure OpenAI 功能和配置的详细文档,请访问API 参考
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.