interfejs API platformy Azure OpenAI w modelach Microsoft Foundry w wersji 1

W tym artykule pokazano, jak używać interfejsu API OpenAI w wersji 1 usługi Azure. Interfejs API w wersji 1 upraszcza uwierzytelnianie, eliminuje potrzebę przestarzałych parametrów api-version i obsługuje wywołania modelu między dostawcami.

Uwaga

Nowe obiekty odpowiedzi interfejsu API mogą być dodawane do odpowiedzi interfejsu API w dowolnym momencie. Zalecamy analizowanie tylko potrzebnych obiektów odpowiedzi.

Wymagania wstępne

Ewolucja interfejsu API

Wcześniej Azure openAI otrzymał comiesięczne aktualizacje nowych wersji interfejsu API. Korzystanie z nowych funkcji wymagało stałego aktualizowania kodu i zmiennych środowiskowych wraz z każdą nową wersją interfejsu API. Azure OpenAI wymagała również dodatkowego kroku korzystania z klientów specyficznych dla Azure, co stworzyło obciążenie podczas migrowania kodu między OpenAI a Azure OpenAI.

Począwszy od sierpnia 2025 r., możesz wyrazić zgodę na interfejsy API nowej generacji w wersji 1 Azure OpenAI, które dodają obsługę:

  • Ciągły dostęp do najnowszych funkcji bez potrzeby określania nowych api-version w każdym miesiącu.
  • Szybszy cykl wydawania interfejsu API z nowszymi funkcjami uruchamianymi częściej.
  • Obsługa klienta OpenAI z minimalnymi zmianami kodu w celu przełączania się między usługami OpenAI i Azure OpenAI podczas korzystania z uwierzytelniania opartego na kluczach.
  • Obsługa klienta openAI na potrzeby uwierzytelniania opartego na tokenach i automatycznego odświeżania tokenu bez konieczności podejmowania zależności od oddzielnego klienta Azure OpenAI.
  • Wykonywanie wywołań czatu za pomocą modeli innych dostawców, takich jak DeepSeek i Grok, które obsługują składnię uzupełniania czatu w wersji 1.

Dostęp do nowych wywołań interfejsu API, które są nadal dostępne w wersji zapoznawczej, jest kontrolowany przez przekazywanie nagłówków specyficznych dla funkcji w wersji zapoznawczej. Takie podejście umożliwia wybranie żądanych funkcji bez konieczności zamiany wersji interfejsu API. Alternatywnie niektóre funkcje wskazują stan wersji zapoznawczej za pośrednictwem ścieżki interfejsu API i nie wymagają dodatkowego nagłówka.

Przykłady:

  • Gdy /openai/v1/evals był wcześniej dostępny w wersji zapoznawczej, wymagane było przesłanie nagłówka "aoai-evals":"preview". /evals nie jest już w wersji zapoznawczej.
  • /openai/v1/fine_tuning/alpha/graders/ jest w wersji zapoznawczej i nie wymaga niestandardowego nagłówka z powodu obecności alpha w ścieżce interfejsu API.

Podczas początkowego udostępnienia ogólnego interfejsu API w wersji 1 (GA) obsługiwane są jedynie wybrane funkcje wnioskowania i tworzenia interfejsu API. Wszystkie funkcje w wersji ogólnodostępnej są obsługiwane do użytku w środowisku produkcyjnym. Obsługa dodatkowych funkcji jest szybko rozszerzana.

Zmiany kodu

API w wersji 1

Przykłady v1 Python

Klucz interfejsu 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)) 

Kluczowe różnice w stosunku do poprzedniego interfejsu API:

  • OpenAI() klient jest używany zamiast AzureOpenAI().
  • Przekaż punkt końcowy Azure OpenAI do base_url i dołącz /openai/v1 do adresu punktu końcowego.
  • api-version nie jest już wymaganym parametrem w wersji 1 GA API.

Klucz interfejsu API ze zmiennymi środowiskowymi:

Przed uruchomieniem kodu ustaw następujące zmienne środowiskowe:

Zmienna Wartość
OPENAI_BASE_URL https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/
OPENAI_API_KEY Twój klucz interfejsu API Azure OpenAI

Następnie utwórz klienta bez parametrów:

client = OpenAI()

Microsoft Entra ID:

Ważne

Obsługa automatycznego odświeżania tokenu była wcześniej obsługiwana przy użyciu AzureOpenAI() klienta. Interfejs API w wersji 1 usuwa tę zależność, dodając do klienta OpenAI() funkcjonalność automatycznego odświeżania tokenu.

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)) 
  • Przekaż punkt końcowy Azure OpenAI do base_url i dołącz /openai/v1 do adresu punktu końcowego.
  • Ustaw parametr api_key na token_provider, aby włączyć automatyczne pobieranie i odświeżanie tokenu uwierzytelniającego zamiast używania statycznego klucza API.

Obsługa modelu

W przypadku modeli Azure OpenAI zalecamy używanie interfejsu API Responses API jednak interfejs API w wersji 1 umożliwia również wykonywanie wywołań uzupełniania czatów z modelami innych dostawców, takich jak DeepSeek i Grok, które obsługują składnię uzupełniania czatu OpenAI v1.

base_url akceptuje zarówno formaty, jak https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/ i https://YOUR-RESOURCE-NAME.services.ai.azure.com/openai/v1/ .

Uwaga

Responses API działa również z modelami Foundry oferowanymi przez Azure, takimi jak modele Microsoft AI, DeepSeek i Grok. Aby dowiedzieć się, jak używać interfejsu API odpowiedzi z tymi modelami, zobacz Jak wygenerować odpowiedzi tekstowe za pomocą modeli Microsoft Foundry.

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))

Obsługa API wersji 1

Dziennik zmian wersji interfejsu API

W poniższych sekcjach podsumowano zmiany między wersjami interfejsu API.

Zmiany między wersją zapoznawczą v1 a wersją 2025-04-01-preview

  • API w wersji wstępnej v1
  • Obsługa generowania wideo
  • NOWE Funkcje interfejsu API odpowiedzi:
    • Integracja narzędzi z serwerami protokołu MCP (Remote Model Context Protocol)
    • Obsługa zadań asynchronicznych w tle
    • Zaszyfrowane elementy rozumowania
    • Generowanie obrazu

Zmiany między 2025-04-01-preview i 2025-03-01-preview

Zmiany między 2025-03-01-preview i 2025-02-01-preview

Zmiany między 2025-02-01-preview i 2025-01-01-preview

  • Przechowywane uzupełnienia (obsługa interfejsu API Distillation).

Zmiany między 2025-01-01-preview i 2024-12-01-preview

Zmiany między 2024-12-01-preview i 2024-10-01-preview

Zmiany między 2024-09-01-preview i 2024-08-01-preview

  • max_completion_tokens dodano do obsługi o1-preview i o1-mini modeli. max_tokens nie działa z modelami serii o1 .
  • parallel_tool_calls Dodane.
  • completion_tokens_details i reasoning_tokens dodano.
  • stream_options i include_usage dodano.

Zmiany pomiędzy 2024-07-01-preview i 2024-08-01-preview specyfikacji API

  • Obsługa danych wyjściowych ze strukturą.
  • Dodano API przesyłania dużych plików.
  • Zmiany waszych danych:
    • Integracja z bazą danych Mongo DB.
    • role_information parametr został usunięty.
    • rerank_score został dodany do obiektu cytatu.
    • Usunięto źródło danych AML.
    • Ulepszenia integracji wektoryzacji sztucznej inteligencji w wyszukiwaniu.

Zmiany między 2024-05-01-preview oraz 2024-07-01-preview specyfikacji API

Zmiany między 2024-04-01-preview oraz 2024-05-01-preview specyfikacji API

Zmiany w specyfikacji interfejsu API między 2024-03-01-preview oraz 2024-04-01-preview

Znane problemy

  • Specyfikacja 2025-04-01-preview Azure OpenAI używa specyfikacji OpenAPI 3.1. Jest to znany problem, że ta wersja nie jest w pełni obsługiwana przez Azure API Management.

Następne kroki