你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何使用 v1 Azure OpenAI API。 v1 API 简化了身份验证,消除了对日期 api-version 参数的需求,并支持跨提供程序模型调用。
注意
可以随时将新的 API 响应对象添加到 API 响应中。 建议仅分析所需的响应对象。
先决条件
- Azure订阅 - 免费创建一个订阅
- Foundry 资源或 Azure OpenAI 资源部署在 受支持的区域
- 至少一个 模型部署
- 对于Microsoft Entra ID身份验证:分配给您身份的
Cognitive Services OpenAI User角色。 有关详细信息,请参阅 Azure OpenAI 角色基于的访问控制
API 演变
以前,Azure OpenAI 收到新 API 版本的每月更新。 使用新功能需要在每次新的 API 发布时不断更新代码和环境变量。 Azure OpenAI 还需要额外的一步,即使用 Azure 专用客户端,这在 OpenAI 与 Azure OpenAI 之间迁移代码时增加了开销。
从 2025 年 8 月开始,可以选择加入下一代 v1 Azure OpenAI API,该 API 添加了对以下方面的支持:
- 持续访问最新功能,无需每月指定新的
api-version功能。 - 随着新功能的启动频率更高,API 发布周期更快。
- 使用基于密钥的身份验证时,OpenAI 客户端支持最少的代码更改,以在 OpenAI 与 Azure OpenAI 之间交换。
- OpenAI 客户端支持基于令牌的身份验证和自动令牌刷新,而不需要依赖单独的 Azure OpenAI 客户端。
- 使用支持 v1 聊天完成语法的其他提供程序(例如 DeepSeek 和 Grok)的模型进行聊天完成调用。
通过传递功能特定的预览标头来控制对仍处于预览状态的新 API 调用的访问,从而允许你选择加入所需的功能,而无需交换 API 版本。 或者,某些功能将通过 API 路径指示预览状态,并且不需要其他标头。
例子:
- 以前
/openai/v1/evals处于预览状态时,需要传递"aoai-evals":"preview"标头。 /evals 不再处于预览状态。 -
/openai/v1/fine_tuning/alpha/graders/处于预览状态,由于 API 路径中存在alpha,不需要自定义标头。
对于初始 v1 正式上线的 GA API,仅支持推理和创作 API 功能的某些子集。 所有 GA 功能都支持在生产环境中使用。 正在迅速添加对更多功能的支持。
代码更改
v1 API
API 密钥:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
)
response = client.responses.create(
model="gpt-4.1-nano", # Replace with your model deployment name
input="This is a test.",
)
print(response.model_dump_json(indent=2))
与上一 API 的主要区别:
-
OpenAI()使用客户端而不是AzureOpenAI(). -
base_url传递 Azure OpenAI 终结点,并将/openai/v1追加到终结点地址。 -
api-version不再是 v1 GA API 的必需参数。
包含环境变量的 API 密钥:
运行代码之前,请设置以下环境变量:
| 变量 | 价值 |
|---|---|
OPENAI_BASE_URL |
https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/ |
OPENAI_API_KEY |
Azure OpenAI API 密钥 |
然后创建不带参数的客户端:
client = OpenAI()
Microsoft Entra ID:
重要
以前通过使用AzureOpenAI() 客户端来处理自动令牌刷新。 v1 API 通过向客户端添加自动令牌刷新支持 OpenAI() 来删除此依赖项。
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key = token_provider
)
response = client.responses.create(
model="gpt-4.1-nano",
input= "This is a test"
)
print(response.model_dump_json(indent=2))
-
base_url传递 Azure OpenAI 终结点,并将/openai/v1追加到终结点地址。 -
api_key参数设置为token_provider,启用身份验证令牌的自动检索和刷新,而不是使用静态 API 密钥。
模型支持
对于Azure OpenAI 模型,我们建议使用 Responses API,但 v1 API 还允许你与其他提供程序(例如 DeepSeek 和 Grok)的模型(支持 OpenAI v1 聊天完成语法)进行聊天完成调用。
base_url 将接受这两种格式 https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/ 和 https://YOUR-RESOURCE-NAME.services.ai.azure.com/openai/v1/ 格式。
注意
响应 API 还适用于Azure直接销售的 Foundry 模型,例如 Microsoft AI、DeepSeek 和 Grok 模型。 若要了解如何将这些模型使用响应 API,请参阅 How to generate text responses with Microsoft Foundry Models。
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
completion = client.chat.completions.create(
model="MAI-DS-R1", # Replace with your model deployment name.
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell me about the attention is all you need paper"}
]
)
#print(completion.choices[0].message)
print(completion.model_dump_json(indent=2))
v1 API 支持
API 版本更改日志
以下部分汇总了 API 版本之间的更改。
v1 预览版和 2025-04-01-preview 之间的更改
- v1 预览版 API
- 视频生成支持
-
新增功能 响应 API 功能:
- 远程模型上下文协议 (MCP) 服务器工具集成
- 支持异步后台任务
- 加密推理项
- 图像生成
2025-04-01-preview 和 2025-03-01-preview 之间的更改
2025-03-01-preview 和 2025-02-01-preview 之间的更改
- 响应 API
- 计算机使用
2025-02-01-preview 和 2025-01-01-preview 之间的更改
- 存储完成(蒸馏 API 支持)。
2025-01-01-preview 和 2024-12-01-preview 之间的更改
2024-12-01-preview 和 2024-10-01-preview 之间的更改
-
store和metadata是新增的用于支持存储完成的参数。 -
reasoning_effort添加了最新 推理模型。 - 为 Microsoft Defender for Cloud 集成添加了新功能
user_security_context。
2024-09-01-preview 和 2024-08-01-preview 之间的更改
-
max_completion_tokens已添加到支持o1-preview和o1-mini模型。max_tokens不适用于 o1 系列 模型。 -
parallel_tool_calls添加。 -
completion_tokens_details和reasoning_tokens添加。 -
stream_options和include_usage添加。
2024-07-01-preview 和 2024-08-01-preview API 规范之间的更改
- 结构化输出支持。
- 添加了大型文件上传 API。
- 关于您的数据更改
- Mongo DB 集成。
-
role_information参数已删除。 - 添加到引文对象的
rerank_score。 - AML 数据源已删除。
- AI 搜索矢量化集成改进。
2024-05-01-preview 和 2024-07-01-preview API 规范之间的更改
- 添加了 Batch API 支持
- 矢量存储分块策略参数
文件搜索工具应输出的<
2024-04-01-preview 和 2024-05-01-preview API 规范之间的更改
- 助手 v2 支持 - 文件搜索工具和矢量存储
- 微调检查点、种子、事件
- 关于您的数据更新
- DALL-E 2 现在支持模型部署,可用于最新的预览 API。
- 内容筛选更新
2024-03-01-preview 和 2024-04-01-preview API 规范之间的更改
-
重大变更:删除了增强功能的参数。 这会影响
gpt-4版本:vision-preview模型。 - 添加了 timestamp_granularities 参数。
- 添加了
audioWord对象。 - 其他 TTS
response_formats: wav & pcm。
已知问题
-
2025-04-01-previewAzure OpenAI 规范使用 OpenAPI 3.1。 Azure API 管理对该版本不完全支持是一个已知问题。