你当前正在访问 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 管理对该版本不完全支持是一个已知问题。

后续步骤