跳到主要内容
Azure OpenAI 是一个 Microsoft Azure 服务,提供 OpenAI 强大的语言模型。 这有助于您开始使用 AzureChatOpenAI 聊天模型。有关所有 AzureChatOpenAI 功能和配置的详细文档,请参阅API 参考

概览

集成详情

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

模型功能

有关如何使用特定功能的指南,请参阅下表标题中的链接。
工具调用结构化输出JSON 模式图像输入音频输入视频输入令牌级流式传输Token 用量Logprobs

设置

Azure OpenAI 是一项云服务,可帮助您使用 OpenAI、Meta 及其他公司提供的一系列预构建和精选模型快速开发生成式 AI 体验。 LangChain.js 支持使用 OpenAI SDK 中新的 Azure 集成与 Azure OpenAI 集成。 您可以在此页面上了解有关 Azure OpenAI 及其与 OpenAI API 区别的更多信息。

凭据

如果您没有 Azure 帐户,可以创建一个免费帐户以开始使用。 您还需要部署一个 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"
如果您想获取模型调用的自动化跟踪,您还可以通过取消注释下方来设置您的 LangSmith API 密钥
# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"

安装

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

实例化

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

const llm = new AzureChatOpenAI({
    model: "gpt-4o",
    temperature: 0,
    maxTokens: undefined,
    maxRetries: 2,
    azureOpenAIApiKey: process.env.AZURE_OPENAI_API_KEY, // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
    azureOpenAIApiInstanceName: process.env.AZURE_OPENAI_API_INSTANCE_NAME, // In Node.js defaults to process.env.AZURE_OPENAI_API_INSTANCE_NAME
    azureOpenAIApiDeploymentName: process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME, // In Node.js defaults to process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
    azureOpenAIApiVersion: process.env.AZURE_OPENAI_API_VERSION, // In Node.js defaults to process.env.AZURE_OPENAI_API_VERSION
})

调用

const aiMsg = await llm.invoke([
    [
        "system",
        "You are a helpful assistant that translates English to French. Translate the user sentence.",
    ],
    ["human", "I love programming."],
])
aiMsg
AIMessage {
  "id": "chatcmpl-9qrWKByvVrzWMxSn8joRZAklHoB32",
  "content": "J'adore la programmation.",
  "additional_kwargs": {},
  "response_metadata": {
    "tokenUsage": {
      "completionTokens": 8,
      "promptTokens": 31,
      "totalTokens": 39
    },
    "finish_reason": "stop"
  },
  "tool_calls": [],
  "invalid_tool_calls": [],
  "usage_metadata": {
    "input_tokens": 31,
    "output_tokens": 8,
    "total_tokens": 39
  }
}
console.log(aiMsg.content)
J'adore la programmation.

使用 Azure 托管标识

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

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

const llmWithManagedIdentity = new AzureChatOpenAI({
  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 { AzureChatOpenAI } from "@langchain/openai";

const llmWithDifferentDomain = new AzureChatOpenAI({
  temperature: 0.9,
  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
});

自定义请求头

您可以通过传入 configuration 字段指定自定义标头
import { AzureChatOpenAI } from "@langchain/openai";

const llmWithCustomHeaders = new AzureChatOpenAI({
  azureOpenAIApiKey: process.env.AZURE_OPENAI_API_KEY, // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
  azureOpenAIApiInstanceName: process.env.AZURE_OPENAI_API_INSTANCE_NAME, // In Node.js defaults to process.env.AZURE_OPENAI_API_INSTANCE_NAME
  azureOpenAIApiDeploymentName: process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME, // In Node.js defaults to process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
  azureOpenAIApiVersion: process.env.AZURE_OPENAI_API_VERSION, // In Node.js defaults to process.env.AZURE_OPENAI_API_VERSION
  configuration: {
    defaultHeaders: {
      "x-custom-header": `SOME_VALUE`,
    },
  },
});

await llmWithCustomHeaders.invoke("Hi there!");
configuration 字段还接受官方 SDK 接受的其他 ClientOptions 参数。 注意: 特定标头 api-key 目前不能以这种方式覆盖,它将传递 azureOpenAIApiKey 的值。

从 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
  1. 更新您的导入以使用 @langchain/openai 包中新的 @[AzureChatOpenAI] 类
    import { AzureChatOpenAI } from "@langchain/openai";
    
  2. 更新您的代码以使用新的 @[AzureChatOpenAI] 类并传入所需的参数
    const model = new AzureChatOpenAI({
      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 参考

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