跳到主要内容
本指南提供了在 Azure 上使用 OpenAI 聊天模型的快速入门概述。 您可以在 Azure 文档中找到有关 Azure OpenAI 最新模型及其成本、上下文窗口和支持的输入类型的信息。
Azure OpenAI 与 OpenAIAzure OpenAI 指的是托管在 Microsoft Azure 平台上的 OpenAI 模型。OpenAI 也提供自己的模型 API。要直接访问 OpenAI 服务,请使用 ChatOpenAI 集成
Azure OpenAI v1 APIAzure OpenAI 的 v1 API(自 2025 年 8 月起普遍可用)允许您直接将 ChatOpenAI 与 Azure 终结点配合使用。这提供了一个统一的接口,并原生支持 Microsoft Entra ID 身份验证以及自动令牌刷新。有关将 ChatOpenAI 与 Azure v1 API 结合使用的详细信息,请参阅 ChatOpenAI Azure 部分AzureChatOpenAI 目前仍支持传统的 Azure OpenAI API 版本和需要 Azure 特定配置的场景,但我们建议未来使用 LangChain Azure AI 中的 ChatOpenAIAzureAIChatCompletionsModel
AzureChatOpenAI 与直接与 OpenAI 服务交互的 ChatOpenAI 共享相同的底层基本实现。本页面旨在快速入门,介绍如何验证您的 Azure OpenAI 服务并将其连接到 LangChain 聊天模型。访问 ChatOpenAI 文档了解可用功能的详细信息,或前往 AzureChatOpenAI API 参考。

概览

集成详情

类别可序列化JS/TS 支持下载量最新版本
AzureChatOpenAIlangchain-openai测试版(npm)Downloads per monthPyPI - Latest version

模型功能

工具调用结构化输出JSON 模式图像输入音频输入视频输入令牌级流式传输原生异步Token 用量Logprobs

设置

要访问 AzureChatOpenAI 模型,您需要创建一个 Azure 帐户,部署一个 Azure OpenAI 模型,获取您的部署名称和终结点,获取一个 Azure OpenAI API 密钥,并安装 langchain-openai 集成包。

安装

pip install -U langchain-openai

凭据

前往 Azure 文档创建您的部署并生成一个 API 密钥。完成后,设置 AZURE_OPENAI_API_KEYAZURE_OPENAI_ENDPOINT 环境变量。
import getpass
import os

if "AZURE_OPENAI_API_KEY" not in os.environ:
    os.environ["AZURE_OPENAI_API_KEY"] = getpass.getpass(
        "Enter your AzureOpenAI API key: "
    )
os.environ["AZURE_OPENAI_ENDPOINT"] = "https://YOUR-ENDPOINT.openai.azure.com/"
要启用模型调用的自动化跟踪,请设置您的 LangSmith API 密钥
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
os.environ["LANGSMITH_TRACING"] = "true"

实例化

现在我们可以实例化我们的模型对象并生成聊天补全。
from langchain_openai import AzureChatOpenAI

llm = AzureChatOpenAI(
    azure_deployment="gpt-35-turbo",  # or your deployment
    api_version="2023-06-01-preview",  # or your api version
    temperature=0,
    max_tokens=None,
    timeout=None,
    max_retries=2,
    # other params...
)

调用

messages = [
    (
        "system",
        "You are a helpful assistant that translates English to French. Translate the user sentence.",
    ),
    ("human", "I love programming."),
]
ai_msg = llm.invoke(messages)
ai_msg
AIMessage(content="J'adore la programmation.", response_metadata={'token_usage': {'completion_tokens': 8, 'prompt_tokens': 31, 'total_tokens': 39}, 'model_name': 'gpt-35-turbo', 'system_fingerprint': None, 'prompt_filter_results': [{'prompt_index': 0, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}], 'finish_reason': 'stop', 'logprobs': None, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}}, id='run-bea4b46c-e3e1-4495-9d3a-698370ad963d-0', usage_metadata={'input_tokens': 31, 'output_tokens': 8, 'total_tokens': 39})
print(ai_msg.content)
J'adore la programmation.

指定模型版本

Azure OpenAI 响应包含 model_name 响应元数据属性,它是用于生成响应的模型名称。然而,与原生 OpenAI 响应不同,它不包含模型的特定版本,该版本是在 Azure 的部署中设置的。例如,它不区分 gpt-35-turbo-0125gpt-35-turbo-0301。这使得很难知道用于生成响应的模型版本,这可能导致例如使用 OpenAICallbackHandler 计算的总成本错误。 为了解决这个问题,您可以将 model_version 参数传递给 AzureChatOpenAI 类,该参数将添加到 LLM 输出中的模型名称中。这样,您就可以轻松区分不同版本的模型。
pip install -qU langchain-community
from langchain_community.callbacks import get_openai_callback

with get_openai_callback() as cb:
    llm.invoke(messages)
    print(
        f"Total Cost (USD): ${format(cb.total_cost, '.6f')}"
    )  # without specifying the model version, flat-rate 0.002 USD per 1k input and output tokens is used
Total Cost (USD): $0.000063
llm_0301 = AzureChatOpenAI(
    azure_deployment="gpt-35-turbo",  # or your deployment
    api_version="2023-06-01-preview",  # or your api version
    model_version="0301",
)
with get_openai_callback() as cb:
    llm_0301.invoke(messages)
    print(f"Total Cost (USD): ${format(cb.total_cost, '.6f')}")
Total Cost (USD): $0.000074

API 参考

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