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 认证的本地支持,自动刷新 Token。我们继续支持 @[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 提供无密钥认证和自动 Token 刷新。安装azure-identity 包并创建一个 Token 提供者——该提供者适用于 ChatOpenAI 和 AzureChatOpenAI:
API 密钥
前往 Azure 文档 创建你的部署并生成 API 密钥。设置AZURE_OPENAI_API_KEY 和 AZURE_OPENAI_ENDPOINT 环境变量:
实例化
ChatOpenAI 与 v1 API
将base_url 设置为你的 Azure 端点,并附加 /openai/v1/。使用 v1 API,你可以通过将 model 指向你的部署名称,通过单一接口调用 Microsoft Foundry 中部署的任何模型(包括 OpenAI、Llama、DeepSeek、Mistral 和 Phi)。
- Entra ID (recommended)
- API key
将 Token 提供者传递给
api_key:AzureChatOpenAI
在处理需要api_version 的传统 Azure OpenAI API 版本时,使用 @[AzureChatOpenAI]。
- Entra ID (recommended)
- API key
将 Token 提供者传递给
azure_ad_token_provider:调用
工具调用
使用 Pydantic 类、字典模式、LangChain 工具或函数将工具绑定到模型:构建智能体
使用 @[create_agent] 和工具构建智能体:
流式输出元数据
OpenAI 的 Chat Completions API 默认不流式传输 Token 使用统计信息(有关流式选项的详细信息,请参阅 OpenAI API 参考)。 要流式传输时恢复 Token 计数,将stream_usage=True 作为初始化参数或在调用时设置:
响应 API
Azure OpenAI 支持 响应 API,它提供有状态对话、内置服务器端工具(代码解释器、图像生成、文件搜索和远程 MCP)以及结构化推理摘要。@[ChatOpenAI] 在你设置 reasoning 参数时自动路由到响应 API,或者你可以使用 use_responses_api=True 显式启用:
- Entra ID (recommended)
- API key
推理努力和摘要
Azure OpenAI 推理模型(例如,o4-mini、gpt-5)在生成最终答案之前会花费额外的 Token 进行推理。通过 ChatOpenAI 在 v1 API 上,你可以配置模型花费的推理努力,并可选择请求其推理链的摘要。
推理努力
将reasoning_effort 设置为 "low"、"medium" 或 "high"。更高的设置允许模型花费更多 Token 进行推理,这通常会以延迟为代价提高复杂任务的输出质量:
推理模型使用 Token 进行内部推理(
reasoning_tokens 在 completion_tokens_details 中)。这些 Token 不会返回在消息内容中,但会计入输出 Token 限制。如果你看到空响应,请增加 max_tokens 或将其留空,以便模型有空间进行推理和输出。推理摘要
通过响应 API 使用推理模型时,可以通过传递一个reasoning 字典来请求模型的推理链摘要。设置 reasoning 会自动将 ChatOpenAI 路由到响应 API:
即使启用,推理摘要也不保证为每个步骤或请求提供——这是预期行为。
指定模型版本(旧版 API)
本节仅适用于使用
AzureChatOpenAI 与传统 API 版本时。v1 API 不需要 api_version 参数。AzureChatOpenAI 时,Azure OpenAI 响应包含一个 model_name 响应元数据属性。与原生 OpenAI 响应不同,它不包含模型的具体版本(该版本在 Azure 中的部署上设置)。传递 model_version 以区分不同版本:
API 参考
有关所有功能和配置选项的详细文档,请前往 @[AzureChatOpenAI] API 参考。
官方原文:src/oss/python/integrations/chat/azure_chat_openai.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。