Azure OpenAI 与 OpenAIAzure OpenAI 指的是托管在 Microsoft Azure 平台 上的 OpenAI 模型。托管在 Azure 上的模型附带了额外的企业功能,包括支持使用 Entra ID 进行无密钥身份验证。
使用
ChatOpenAI 与 v1 API(推荐)Azure OpenAI 的 v1 API(自 2025 年 8 月起正式发布)允许你直接使用 ChatOpenAI 与 Azure 端点。这消除了对过时的 api-version 参数的需求,并提供了对 Microsoft Entra ID 身份验证的原生支持,支持自动令牌刷新。我们继续支持 AzureChatOpenAI,它现在与 ChatOpenAI 共享相同的基础实现,后者直接与 OpenAI 服务交互。本页作为身份验证和将你的 Azure OpenAI 聊天模型连接到 LangChain 的快速入门指南。概述
集成详情
模型功能
设置
要访问 Azure OpenAI 模型,你需要 创建一个 Azure 帐户,创建一个 Azure OpenAI 模型的部署,获取部署的名称和端点,并安装langchain-openai 集成包。
安装
凭证
ChatOpenAI 和 AzureChatOpenAI 都支持使用 Microsoft Entra ID(推荐)或 API 密钥 进行 Azure OpenAI 身份验证。
Microsoft Entra ID
Microsoft Entra ID 提供无密钥身份验证和自动令牌刷新。安装azure-identity 包并创建一个令牌提供者——同一个提供者适用于 ChatOpenAI 和 AzureChatOpenAI:
API 密钥
前往 Azure 文档 创建你的部署并生成 API 密钥。设置AZURE_OPENAI_API_KEY 和 AZURE_OPENAI_ENDPOINT 环境变量:
实例化
使用 v1 API 的 ChatOpenAI
将base_url 设置为你的 Azure 端点,并附加 /openai/v1/。使用 v1 API,你可以通过单一接口调用部署在 Microsoft Foundry 中的任何模型(包括 OpenAI、Llama、DeepSeek、Mistral 和 Phi),只需将 model 指向你的部署名称。
- Entra ID(推荐)
- API 密钥
将令牌提供者传递给
api_key:AzureChatOpenAI
当使用需要api_version 的传统 Azure OpenAI API 版本时,请使用 AzureChatOpenAI。
- Entra ID(推荐)
- API 密钥
将令牌提供者传递给
azure_ad_token_provider:调用
工具调用
使用 Pydantic 类、字典模式、LangChain 工具或函数将工具绑定到模型:构建代理
使用create_agent 构建一个使用 Azure OpenAI 和工具的代理:
流式传输使用量元数据
OpenAI 的 Chat Completions API 默认不流式传输令牌使用量统计信息(参见 OpenAI API 参考中的流式选项)。 要在流式传输时恢复令牌计数,请将stream_usage=True 设置为初始化参数或在调用时设置:
Responses API
Azure OpenAI 支持 Responses API,它提供有状态的对话、内置的服务器端工具(代码解释器、图像生成、文件搜索和远程 MCP)以及结构化的推理摘要。当你设置reasoning 参数时,ChatOpenAI 会自动路由到 Responses API,或者你可以通过 use_responses_api=True 显式选择使用:
- Entra ID(推荐)
- API 密钥
推理努力与摘要
Azure OpenAI 推理模型(例如o4-mini、gpt-5)在生成最终答案之前会花费额外的令牌来思考请求。使用 v1 API 上的 ChatOpenAI,你可以配置模型在推理上花费多少努力,并可选择请求其思维链的摘要。
推理努力
将reasoning_effort 设置为 "low"、"medium" 或 "high"。较高的设置让模型在推理上花费更多令牌,这通常会提高复杂任务的质量,但会增加延迟:
推理模型使用令牌进行内部推理(
completion_tokens_details 中的 reasoning_tokens)。这些令牌不会出现在消息内容中,但会计入输出令牌限制。如果你看到空响应,请增加 max_tokens 或将其留空,以便模型有足够的空间进行推理和输出。推理摘要
当通过 Responses API 使用推理模型时,你可以通过传递reasoning 字典来请求模型思维链的摘要。设置 reasoning 会自动将 ChatOpenAI 路由到 Responses API:
即使启用,推理摘要也不保证在每个步骤或请求中都提供——这是预期行为。
指定模型版本(旧版 API)
本节仅适用于使用传统 API 版本的
AzureChatOpenAI。v1 API 不需要 api_version 参数。AzureChatOpenAI 时,Azure OpenAI 响应包含一个 model_name 响应元数据属性。与原生 OpenAI 响应不同,它不包含模型的具体版本(该版本在 Azure 中的部署上设置)。传递 model_version 以区分不同版本:
API 参考
有关所有功能和配置选项的详细文档,请访问AzureChatOpenAI API 参考。
将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

