Python Uygulamalarını Azure OpenAI Chat Completions'dan Responses API'ye Taşıma
YETKİLİ REHBER — TAM OLARAK UYUN
Bu beceri, Azure OpenAI Chat Completions kullanan Python kod tabanlarını birleşik Responses API'ye taşır. Bu talimatları tam olarak izleyin. Parametre eşlemeleri için doğaçlama yapmayın veya API şekilleri icat etmeyin.
Tetikleyiciler
Kullanıcı istediğinde bu beceriyi etkinleştirin:
- Bir Python uygulamasını Azure OpenAI Chat Completions'dan Responses API'ye taşımak
- Python OpenAI SDK kullanımını Azure OpenAI'ye karşı en yeni API şekline yükseltmek
- Azure'da Responses gerektiren GPT-5 veya daha yeni modeller için Python kodunu hazırlamak
AzureOpenAI/AsyncAzureOpenAI'den v1 uç noktası ile standartOpenAI/AsyncOpenAIistemcisine geçmekAzureOpenAIyapıcıları veyaapi_versionile ilgili kullanımdan kaldırma uyarılarını düzeltmek
⚠️ Model Uyumluluğu — ÖNCE KONTROL EDİN
Taşımadan önce, Azure OpenAI dağıtımınızın Responses API'yi desteklediğinden emin olun.
1. Dağıtımınızı hızlı test edin (en hızlı)
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["AZURE_OPENAI_API_KEY"],
base_url=f"{os.environ['AZURE_OPENAI_ENDPOINT'].rstrip('/')}/openai/v1/",
)
try:
resp = client.responses.create(
model=os.environ["AZURE_OPENAI_DEPLOYMENT"],
input="ping",
max_output_tokens=50,
store=False,
)
print(f"✅ Deployment supports Responses API: {resp.output_text}")
except Exception as e:
print(f"❌ Deployment does NOT support Responses API: {e}")
Not: Azure OpenAI'de
max_output_tokens'ın minimumu 16'dır. 16'nın altındaki değerler 400 hatası döndürür. Hızlı testler için 50+ kullanın.
Eğer bu 404 dönerse, dağıtımın modeli henüz Responses'ı desteklemiyor demektir — aşağıdaki referansa bakın veya desteklenen bir modelle yeniden dağıtın.
2. Bölgenizde mevcut modelleri kontrol edin (önerilen)
Yerel bölgenizde Responses API desteği olan modelleri görmek için yerleşik model uyumluluk aracını çalıştırın:
python migrate.py models --subscription YOUR_SUB_ID --location YOUR_REGION
Bu, Azure ARM'i canlı olarak sorgular ve bir uyumluluk matrisi gösterir — hangi modeller Responses, yapısal çıktı, araçlar vb destekler. Sonuçları daraltmak için --filter gpt-5.1,gpt-5.2; betikleme için --json kullanabilirsiniz.
3. Tam model destek referansı
- Canlı sorgu:
python migrate.py models(yukarıya bakın — bölgeye özgü, sürekli güncel) - Kullanılabilirlik tablosu: Model özet tablosu ve bölge kullanılabilirliği
- Hızlı başlangıç & rehberlik: https://aka.ms/openai/start
⚠️ Eski model sınırlamaları
UYARI: Eski modeller (
gpt-4.1'den önce olanlar) tüm Responses API özelliklerini tam desteklemeyebilir.Eski modellerle bilinen sınırlamalar:
reasoningparametresi: Birçok mantık çıkarımı yapmayan modelde desteklenmez. Orijinal kodda zaten varsareasoningparametresini taşıyın.seedparametresi: Responses API'de hiç desteklenmez — tüm isteklerden kaldırın.text.formatile yapısal çıktı: Eski modellerstrict: trueJSON şemalarını güvenilir şekilde zorlamayabilir.- Araç yönetimi: GPT-5+ modelleri araç çağrılarını iç mantık çıkarımı parçası olarak yönetir. Eski modeller Responses API'de çalışır ama bu derin entegrasyondan yoksundur.
- Sıcaklık kısıtlamaları:
gpt-5'e taşınırken sıcaklık parametresi atlanmalı veya1olarak ayarlanmalıdır. Eski modellerde böyle kısıtlama yoktur.
O serisi mantık çıkarımı modelleri (o1, o3-mini, o3, o4-mini)
O serisi modellerin benzersiz parametre kısıtlamaları vardır. O serisi modelleri hedefleyen uygulamaları taşırken:
temperature:1olmalı (veya atlanmalı). O serisi modeller başka değer kabul etmez.max_completion_tokens→max_output_tokens: Azure'a özgümax_completion_tokenskullanan uygulamalarmax_output_tokens’a geçmeli. Yüksek değerler (4096+) ayarlayın çünkü çıkarım tokenları limite sayılır.reasoning_effort: Uygulamareasoning_effort(düşük/orta/yüksek) kullanıyorsa, bırakın — Responses API bu parametreyi o serisi modellerde destekler.- Akış davranışı: O serisi modeller, mantık işlemi tamamlanana kadar çıktıyı tamponlayıp sonra metin delta olayları gönderebilir. Akış çalışır ancak ilk
response.output_text.deltaGPT modellerine göre daha geç gelebilir. top_p: O serisinde desteklenmez — varsa kaldırın.- Araç kullanımı: O serisi modeller Responses API aracılığıyla araçları GPT modelleri gibi destekler; ancak araç çağrı yönetimi modelden modele değişir.
Eylem — proaktif model uyarısı: Taranma aşamasında uygulamanın hedeflediği modeli kontrol edin (dağıtım adları, ortam değişkenleri, yapılandırma). Model gpt-4.1 öncesiyse (gpt-4.1+ değilse), kullanıcıya şu bilgileri proaktif olarak verin:
- Mevcut model üzerinde temel metin, sohbet, akış ve araçlar için taşıma çalışacaktır.
- Daha yeni modeller (
gpt-5.1,gpt-5.2) daha iyi araç yönetimi, yapısal çıktı zorlaması, çıkarım ve çapraz bölge kullanılabilirliği sunar. - Dağıtımlarını hazır olduğunda yükseltmeleri önerilir — taşımayı engellemez.
Model sürümüne göre taşıma yapılmasını engellemeyin veya reddetmeyin. Bu uyarı bilgilendirme amaçlıdır.
GitHub Modelleri Responses API'yi desteklemez
GitHub Modelleri (
models.github.ai,models.inference.ai.azure.com) Responses API'yi desteklemez.
Eğer kod tabanında GitHub Modelleri kod yolu varsa (base_url'un models.github.ai veya models.inference.ai.azure.com'a işaret ettiği) taşıma sırasında tamamen kaldırın. Responses API Azure OpenAI, OpenAI veya uyumlu yerel uç nokta (örneğin Responses destekli Ollama) gerektirir.
Taranma sırasında eylem:
- GitHub Modelleri kod yollarını kaldırmak üzere işaretleyin.
Framework Taşıma
Birçok uygulama OpenAI üzerinde daha üst düzey framework'ler kullanır. Bunları taşırken, sadece alttaki OpenAI çağrıları değil, framework'ün kendi API değişiklikleri de olur.
Microsoft Agent Framework (MAF)
Önce MAF sürümünüzü kontrol edin — taşıma MAF 1.0.0+ mu yoksa öncesi beta/rc mi olduğuna bağlıdır.
MAF 1.0.0+ (agent-framework-openai >= 1.0.0)
OpenAIChatClient zaten Responses API kullanır — taşıma gerekmez. Kod tabanı eski OpenAIChatCompletionClient (chat.completions.create kullanan) kullanıyorsa, bunu OpenAIChatClient ile değiştirin.
| Önce | Sonra |
|---|---|
from agent_framework.openai import OpenAIChatCompletionClient |
from agent_framework.openai import OpenAIChatClient |
OpenAIChatCompletionClient(...) |
OpenAIChatClient(...) |
Sürüm kontrolü için: python -c "import agent_framework_openai; print(agent_framework_openai.__version__)"
MAF pre-1.0.0 (beta/rc sürümleri)
Pre-1.0.0 MAF'de, OpenAIChatClient Chat Completions kullanıyordu. agent-framework-openai>=1.0.0'a yükseltin; burada OpenAIChatClient varsayılan olarak Responses API kullanır.
Başka değişiklik gerekmez — Agent ve araç API'leri aynı kalır.
LangChain (langchain-openai)
ChatOpenAI()'ye use_responses_api=True ekleyin. Ayrıca cevap erişimini .content'ten .text'e güncelleyin.
| Önce | Sonra |
|---|---|
ChatOpenAI(model=..., base_url=..., api_key=...) |
ChatOpenAI(model=..., base_url=..., api_key=..., use_responses_api=True) |
result['messages'][-1].content |
result['messages'][-1].text |
Tam önce/sonra kod örnekleri için cheat-sheet.md dosyasına bakın.
Ön Uç Taşıma Rehberi
Responses API sunucu tarafı ilgilidir. Python arka ucunuzu taşıyın; ön ucun HTTP sözleşmesi değişmemeli, ta ki arka uç ince bir geçiş katmanıysa — bu durumda çeviri katmanını kaldırmak için Responses istek şeklini benimseyin. Ön uç OpenAI'ye doğrudan istemci tarafı anahtarıyla çağrı yapıyorsa, bu çağrıları önce bir arka uca taşıyın.
@microsoft/ai-chat-protocol kullanımdan kaldırıldı
@microsoft/ai-chat-protocol npm paketi kullanımdan kaldırıldı ve yerine ndjson-readablestream kullanılmalıdır. Eğer bir ön uçta karşılaşırsanız:
- CDN script etiketini değiştirin:
<!-- Before --> <script src="https://cdn.jsdelivr.net/npm/@microsoft/ai-chat-protocol@.../dist/iife/index.js"></script> <!-- After --> <script src="https://cdn.jsdelivr.net/npm/ndjson-readablestream@1.0.7/dist/ndjson-readablestream.umd.js"></script> AIChatProtocolClientörneklemesini kaldırın (new ChatProtocol.AIChatProtocolClient("/chat")).client.getStreamedCompletion(messages)'ı doğrudan arka uç akış uç noktasınafetch()çağrısı ile değiştirin.for await (const response of result)yerinefor await (const chunk of readNDJSONStream(response.body))kullanın.- Özellik erişimini
response.delta.content/response.error'denchunk.delta.content/chunk.error'e güncelleyin.
Hedefler
- Azure OpenAI'ye karşı Chat Completions veya eski Completions kullanan tüm Python çağrı noktalarını listeleyin.
- Python kod tabanı için bir taşıma planı ve sıralaması önerin.
- Güvenli, minimum değişikliklerle Responses API'ye geçiş yapın.
- Çağrıcıları Responses çıktı şemasını tüketecek şekilde güncelleyin; geri uyumluluk sarmalayıcıları yok.
- Testler/denetimler çalıştırın; taşımadan kaynaklanan önemsiz hataları düzeltin.
- Küçük, incelemeye uygun değişiklik setleri hazırlayın ve dif’lerle birlikte son bir özet sağlayın (commit etmeyin).
Koruyucu Önlemler
- Yalnızca git çalışma alanı içindeki dosyaları değiştirin. Hiçbir zaman dışına yazmayın.
- Geri uyumluluk sarmalayıcılarını korumayın; kodu yeni API şekline taşıyın.
- Mezar taşı/geçiş yorumları veya yedek dosyalar bırakmayın.
- Daha önce kullanılıyorsa akış özelliklerini koruyun; aksi halde akışsız kullanın.
- Onay modundaysanız, komutlar veya ağ çağrıları çalıştırmadan önce onay isteyin.
git add/git commit/git pushçalıştırmayın; sadece çalışma ağacı düzenlemeleri oluşturun.
Adım 0: Azure OpenAI İstemci Taşıması (Önkoşul)
Eğer kod tabanı AzureOpenAI veya AsyncAzureOpenAI yapıcıları kullanıyorsa, önce standart OpenAI / AsyncOpenAI yapıcılarına geçin. Azure’a özgü yapıcılar openai>=1.108.1 sürümünde kullanımdan kaldırılmıştır.
Neden v1 API yolu?
Yeni /openai/v1 uç noktası AzureOpenAI() yerine standart OpenAI() istemcisini kullanır, api_version parametresi gerekmez ve OpenAI ile Azure OpenAI arasında aynıdır. Aynı istemci kodu geleceğe hazırlıklıdır — sürüm yönetimi gerekmez.
Önemli değişiklikler
| Önce | Sonra |
|---|---|
AzureOpenAI |
OpenAI |
AsyncAzureOpenAI |
AsyncOpenAI |
azure_endpoint |
base_url |
azure_ad_token_provider |
api_key |
api_version=... |
Tamamen kaldır |
Temizlik kontrol listesi
- İstemci yapımından
api_versionargümanını kaldırın. .env, uygulama ayarları ve Bicep/altyapı dosyalarındanAZURE_OPENAI_VERSION/AZURE_OPENAI_API_VERSIONortam değişkenlerini kaldırın..env, uygulama ayarları, Bicep/altyapı ve test düzeneklerindeAZURE_OPENAI_CLIENT_ID→AZURE_CLIENT_IDolarak yeniden adlandırın (standart Azure Identity SDK konvansiyonu).requirements.txtveyapyproject.toml’deopenai>=1.108.1sürümünü garantileyin.
Ortam değişkeni taşıması
| Eski ortam değişkeni | İşlem | Notlar |
|---|---|---|
AZURE_OPENAI_VERSION |
Kaldır | v1 uç nokta ile api_version gerekmez |
AZURE_OPENAI_API_VERSION |
Kaldır | Yukarıdaki ile aynı |
AZURE_OPENAI_CLIENT_ID |
Yeniden adlandır → AZURE_CLIENT_ID |
ManagedIdentityCredential(client_id=...) için standart Azure Identity SDK konvansiyonu |
AZURE_OPENAI_ENDPOINT |
Tut | Hala base_url oluşturmak için gerekli |
AZURE_OPENAI_CHAT_DEPLOYMENT |
Tut | responses.create içinde model parametresi olarak kullanılır |
AZURE_OPENAI_API_KEY |
Tut | Anahtara dayalı kimlik doğrulama için api_key olarak kullanılır |
İstemci kurulum kodu örnekleri (senkron, asenkron, EntraID, API anahtarı, çok kiracılı) için cheat-sheet.md dosyasına bakın.
Adım 1: Eski Çağrı Noktalarını Tespit Et
Taşınması gereken tüm çağrı noktalarını bulmak için detect_legacy.py betiğini çalıştırın:
python skills/azure-openai-to-responses/scripts/detect_legacy.py .
Ya da bu aramaları elle yapın — her eşleşme taşınacak hedeftir:
# Eski API çağrıları (yeniden yazılmalı)
rg "chat\.completions\.create"
rg "ChatCompletion\.create"
rg "Completion\.create"
# Kullanımdan kaldırılmış Azure istemci yapıcıları (değiştirilmeli)
rg "AzureOpenAI\("
rg "AsyncAzureOpenAI\("
# Yanıt şekli erişim kalıpları (güncellenmeli)
rg "choices\[0\]\.message\.content"
rg "choices\[0\]\.delta\.content"
rg "choices\[0\]\.message\.function_call"
rg "choices\[0\]\.message\.tool_calls"
# Araç tanımları eski iç içe formatta (düzleştirilmeli)
rg '"function":\s*{\s*"name"'
rg "pydantic_function_tool"
# Araç sonuçları eski formatta (function_call_output'a dönüştürülmeli)
rg '"role":\s*"tool"'
rg '"tool_call_id"'
# Kullanımdan kaldırılmış parametreler (kaldırılmalı veya yeniden adlandırılmalı)
rg "response_format"
rg "max_tokens\b" # max_output_tokens olarak yeniden adlandır
rg "['\"]seed['\"]" # remove entirely
# Kullanımdan kaldırılmış ortam değişkenleri (temizlenmeli)
rg "AZURE_OPENAI_API_VERSION|AZURE_OPENAI_VERSION"
rg "AZURE_OPENAI_CLIENT_ID" # AZURE_CLIENT_ID olmalı
# GitHub Modelleri uç noktaları (kaldırılmalı — Yanıtlar API desteklenmiyor)
rg "models\.github\.ai|models\.inference\.ai\.azure"
# Çerçeve düzeyi eski kalıplar (güncellenmeli)
rg "OpenAIChatCompletionClient" # MAF 1.0.0+: OpenAIChatClient ile değiştir
rg "ChatOpenAI\(" | grep -v "use_responses_api" # LangChain: use_responses_api=True gerektirir
# Test altyapısı (güncellenmeli)
rg "ChatCompletionChunk|AsyncCompletions\.create" tests/
rg "_azure_ad_token_provider" tests/
rg "prompt_filter_results|content_filter_results" tests/
rg "choices\[0\]" tests/
# İçerik filtre hatası gövde erişimi (güncellenmeli — yapı değişti)
rg 'innererror.*content_filter_result|error\.body\["innererror"\]'
rg "content_filter_result\[" # eski tekil form — şimdi içerik_filtre_sonuçları (çoğul) içerik_filtreler dizisi içinde
# Chat Tamamlama uç noktasına ham HTTP çağrıları (URL güncellenmeli)
rg "/openai/deployments/.*/chat/completions"
rg "api-version="
Heuristikler (tespit ve yeniden yazma)
Chat Completions istemcisi:
client.chat.completions.create→client.responses.create(...).Azure istemci yapıcıları:
AzureOpenAI(...)→OpenAI(base_url=..., api_key=...).Araçlar: fonksiyon çağrısı araç tanımlarını iç içe formatından (
{"type": "function", "function": {"name": ...}}) düz Responses formatına ({"type": "function", "name": ...}) dönüştürün;tool_choicekullanın; araç sonuçlarını{"type": "function_call_output", "call_id": ..., "output": ...}öğeleri olarak döndürün ({"role": "tool", ...}değil).Araç tur dönüşümleri: model fonksiyon çağrıları döndürdüğünde,
response.outputöğelerini görüşmeye ekleyin (manuel{"role": "assistant", "tool_calls": [...]}sözlüğü değil), sonra her sonuç içinfunction_call_outputöğelerini ekleyin.Az sayıda örnek araç kullanımı: görüşme sert kodlanmış araç çağrısı örnekleri içeriyorsa, bunları
{"type": "function_call", "id": "fc_...", "call_id": "fc_...", ...}+{"type": "function_call_output", ...}öğelerine dönüştürün. Kimliklerfc_ile başlamalıdır.pydantic_function_tool(): bu yardımcı eski iç içe formatı üretmeye devam eder veresponses.create()ile uyumlu değildir. Elle araç tanımları veya düzleştirme sarmalayıcısı ile değiştirin.Çok turlu: görüşme geçmişini uygulamada tutun; önceki turları
inputöğeleri ile geçin.Biçimlendirme: Chat'in üst düzey
response_formatöğesini Responses'datext.formatile değiştirin. Kanonik şekil:text={"format": {"type": "json_schema", "name": "Output", "strict": True, "schema": {...}}}.İçerik öğeleri: Chat
content[].type: "text"öğesini, kullanıcı/sistem turları için Responsescontent[].type: "input_text"ile değiştirin.Resim içerik öğeleri: Chat
content[].type: "image_url"öğesini Responsescontent[].type: "input_image"ile değiştirin.image_urlalanı iç içe obje{"url": "..."}yerine düz bir string olarak değişir. Öncesi/sonrası örnekler için hile sayfasına bakınız.Akıl yürütme çabası: sadece orijinal kodda zaten mevcutsa
reasoningöğesini taşıyın.İçerik filtresi hata işleme: hata gövdesi yapısı değişti. Chat Tamamlama
error.body["innererror"]["content_filter_result"](tekil) kullanırdı; Responses APIerror.body["content_filters"][0]["content_filter_results"](çoğul, dizi içinde) kullanır.innererrorerişen kodKeyErroratar. Yeni yolu kullanacak şekilde yeniden yazın.Ham HTTP çağrıları: uygulama Azure OpenAI REST API'yi doğrudan
/openai/deployments/{name}/chat/completions?api-version=...yoluyla çağırıyorsa, bunu/openai/v1/responsesyoluna yeniden yazın. İstek gövdesi değişir:messages→input,max_output_tokensvestore: falseeklenir,api-versionsorgu parametresi kaldırılır. Yanıt gövdesi değişir:choices[0].message.content→output[0].content[0].text(not:output_textSDK kolaylığıdır, ham REST JSON'da yoktur).
Adım 2: Geçişi Uygula
Geçiş notları (Chat Tamamlama → Responses)
- Neden geçiş yapılmalı: Responses metin, araçlar ve akış için birleşik API'dir; Chat Tamamlama eski bir yöntemdir. GPT-5 ile en iyi performans için Responses zorunludur.
- HTTP: Azure uç noktası
/openai/deployments/{name}/chat/completions'den/openai/v1/responses'e geçer. - Alanlar:
messages→input,max_tokens→max_output_tokens.temperaturedeğişmeden kalır. - Biçimlendirme:
response_format→ uygun bir nesne iletext.format. - İçerik öğeleri: Sistem/kullanıcı turları için Chat
content[].type: "text"öğesi Responsescontent[].type: "input_text"ile değiştirildi. - Resim içerik öğeleri: Chat
content[].type: "image_url"öğesi Responsescontent[].type: "input_image"ile değiştirildi.image_urlalanı{"image_url": {"url": "..."}}iç içe yapısından{"image_url": "..."}düz dizeye (HTTPS URL'si ya dadata:image/...;base64,...veri URI'si) dönüştürüldü.
Parametre eşleştirme referansı
| Chat Tamamlama | Responses API |
|---|---|
prompt |
input |
messages |
input (öğeler dizisi) |
max_tokens |
max_output_tokens |
response_format |
text.format (nesne) |
temperature |
temperature (değişmedi) |
stop |
stop (değişmedi) |
frequency_penalty |
frequency_penalty (değişmedi) |
presence_penalty |
presence_penalty (değişmedi) |
tools / fonksiyon çağrısı |
tools (değişmedi) |
seed |
Kaldır (desteklenmiyor) |
store |
store (false olarak ayarlanır) |
content[].type: "text" |
content[].type: "input_text" |
content[].type: "image_url" |
content[].type: "input_image" |
"image_url": {"url": "..."} |
"image_url": "..." (düz string) |
Tam öncesi/sonrası kod örnekleri için bkz. cheat-sheet.md.
Test altyapısı geçişi (mocklar, anlık görüntüler, doğrulamalar) için bkz. test-migration.md.
Hata ayıklama ve sık yaşanan sorunlar için bkz. troubleshooting.md.
Veri Saklama ve Durum
- Tüm Responses isteklerinde
store: falseayarlayın. - Önceki mesaj kimliklerine veya sunucu tarafında saklanan bağlama güvenmeyin; durumu istemci tarafında yönetin ve meta veriyi en aza indirin.
Kabul Kriterleri
Kod seviyesi kontroller (tümü geçmeli)
- Geçiş yapılan dosyalarda
rg "chat\.completions\.create|ChatCompletion\.create|Completion\.create"aramasında sıfır eşleşme. - Tüm yapıcılar
OpenAI/AsyncOpenAIv1 uç noktası ile kullanılmalı,rg "AzureOpenAI\(|AsyncAzureOpenAI\("sıfır eşleşmeli. - GitHub Modelleri kod yolları kaldırıldı,
rg "models\.github\.ai|models\.inference\.ai\.azure"sıfır eşleşmeli. - MAF 1.0.0+ kod
OpenAIChatClientkullanıyor,OpenAIChatCompletionClientiçinrg "OpenAIChatCompletionClient"sıfır eşleşmeli. 1.0.0 öncesi içinagent-framework-openai>=1.0.0yükseltmesi yapılmalı. - Tüm
ChatOpenAI(...)çağrılarıuse_responses_api=Trueiçeriyor. - Yanıt erişimi tamamen
resp.output_textveya Responses çıktı şeması ile,rg "choices\[0\]"sıfır eşleşmeli. - Üst seviyede
response_formatyok; tüm yapılı çıktıtext={"format": {...}}kullanmakta. -
requirements.txtveyapyproject.tomldosyalarındaopenai>=1.108.1veazure-identitybulunuyor; bağımlılıklar yeniden yüklendi. - Her
responses.createçağrısındastore=Falseayarlandı. - İstemci yapımında
api_versionyok;AZURE_OPENAI_API_VERSIONortam dosyalarından ve altyapıdan kaldırıldı.
Test altyapısı kontrolleri (tümü geçmeli)
-
rg "ChatCompletionChunk|AsyncCompletions\.create|chat\.completions"testlerde sıfır eşleşme. -
rg "_azure_ad_token_provider" tests/sıfır eşleşmeli; doğrulamalarisinstance(client, AsyncOpenAI)veyabase_urlkontrolü yapacak şekilde güncellendi. -
rg "prompt_filter_results|content_filter_results" tests/sıfır eşleşmeli; Azure özel filtre mockları kaldırıldı. - Mock donanımları
kwargs.get("input")kullanıyor,kwargs.get("messages")değil. - Anlık görüntü / altın dosyalar Responses akış şekline uygun şekilde güncellendi (örneğin,
choices[0],function_call,logprobsyok). - Tüm test güncellemelerinden sonra
pytestsıfır hata ile geçiyor.
Davranışsal kontroller (manuel veya test düzeneği ile doğrula)
- Temel tamamlama: akışsız
responses.createboş olmayanoutput_textdöndürüyor. - Akış eşitliği: orijinal kod akış kullanıyorsa, geçiş yapılan kod da akış sağlıyor ve
response.output_text.deltaetkinliklerini boş olmayan deltalarla veriyor. - Yapılı çıktı:
text.formatilejson_schemakullanılıyorsa,json.loads(resp.output_text)başarılı oluyor ve şemaya uyuyor. - Araç çağrı döngüsü: araçlar kullanılıyorsa model araç çağrıları yapıyor, uygulama bunları yürütüyor ve takip isteği son
output_textdöndürüyor (sonsuz döngü yok). - Eşzamanlılık eşitliği:
AsyncAzureOpenAIkullanıldıysaAsyncOpenAIkarşılığıawaitile çalışıyor. - Hata oranı: geçiş öncesi temele kıyasla yeni 400/401/404 hatası yok.
Teslimatlar
- Özet dosya düzenlemelerini, eski çağrı noktalarının geçiş öncesi/sonrası sayısını ve sonraki adımları içerir.
- Değişiklikler çalıştırılabilir durumdaki düzenlemeler (commit değil).
SDK Sürüm Gereksinimleri
| Paket | Minimum Sürüm |
|---|---|
openai |
>=1.108.1 |
azure-identity |
En güncel (EntraID kimlik doğrulama için) |
Referanslar
- Hile Sayfası — tüm kod parçacıkları
- Test Geçişi — mocklar, anlık görüntüler, doğrulamalar
- Hata Ayıklama — hatalar, risk tablosu, sık sorunlar
- detect_legacy.py — otomatik tarayıcı
- Azure OpenAI Başlangıç Kiti
- Azure OpenAI Responses API belgeleri
- Azure OpenAI API sürüm yaşam döngüsü
- OpenAI Responses API referansı
Feragatname: Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba sarf etsek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayınız. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu ortaya çıkabilecek yanlış anlamalardan veya yanlış yorumlamalardan sorumlu değiliz.
Source: microsoft/ai-agents-for-beginners → translations/tr/.agents/skills/azure-openai-to-responses/SKILL.md