你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Microsoft Foundry v1 模型 API 中的 Azure OpenAI

本文介绍如何使用 v1 Azure OpenAI API。 v1 API 简化了身份验证,消除了对日期 api-version 参数的需求,并支持跨提供程序模型调用。

注意

可以随时将新的 API 响应对象添加到 API 响应中。 建议仅分析所需的响应对象。

先决条件

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

Python v1 示例

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 之间的更改

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 之间的更改

2024-09-01-preview 和 2024-08-01-preview 之间的更改

  • max_completion_tokens 已添加到支持 o1-previewo1-mini 模型。 max_tokens 不适用于 o1 系列 模型。
  • parallel_tool_calls 添加。
  • completion_tokens_detailsreasoning_tokens 添加。
  • stream_optionsinclude_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 规范之间的更改

2024-04-01-preview 和 2024-05-01-preview API 规范之间的更改

2024-03-01-preview 和 2024-04-01-preview API 规范之间的更改

已知问题

  • 2025-04-01-preview Azure OpenAI 规范使用 OpenAPI 3.1。 Azure API 管理对该版本不完全支持是一个已知问题。

后续步骤