Official agent skill

Azure Openai To Responses

by microsoft in microsoft/ai-agents-for-beginners

Migrasi aplikasi Python dari Azure OpenAI Chat Completions ke Responses API.

OfficialMITAuto-check: notesAI & LLM Engineering

Install Azure Openai To Responses

skills CLI
$ npx skills add microsoft/ai-agents-for-beginners --skill azure-openai-to-responses -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/ai-agents-for-beginners azure-openai-to-responses --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/ai-agents-for-beginners.git skills-src && mkdir -p .claude/skills && cp -r skills-src/translations/ms/.agents/skills/azure-openai-to-responses .claude/skills/azure-openai-to-responses && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
azure-openai-to-responses
GitHub stars
77k
Token cost
~6.5k tokens
SKILL.md length
2,222 words
Files
4 (incl. references)
Skills in repo
122
Repo updated
First seen
Licence
MIT

At a glance

Migrasi aplikasi Python dari Azure OpenAI Chat Completions ke Responses API.

  • Works in 3 steps: Ujian ringkas penyebaran anda (pantas) → Semak model tersedia di rantau anda… → Rujukan lengkap sokongan model
  • Tasks that involve LLM API integration
  • SKILL.md covers Pencetus, ⚠️ Keserasian Model — PERIKSA…, Migrasi Kerangka Kerja and Panduan Migrasi Frontend, plus 7 more sections
  • Calls rg, python and git; reaches cdn.jsdelivr.net; needs AZURE_OPENAI_API_KEY

What it does

Azure Openai To Responses is an agent skill from microsoft/ai-agents-for-beginners, published by the product's own GitHub organization. Migrasi aplikasi Python dari Azure OpenAI Chat Completions ke Responses API. Meliputi migrasi klien AzureOpenAI/AsyncAzureOpenAI ke endpoint v1, penstriman, alat, output berstruktur, multi-sesi, pengesahan EntraID, dan pemeriksaan keserasian model. Berfokus pada Python dan khusus untuk Azure OpenAI. GUNA UNTUK: migrasi ke responses API, bertukar dari chat completions, openai responses, peningkatan openai SDK, migrasi responses API, berpindah dari completions ke responses, migrasi gpt-5, migrasi python azure…

Its SKILL.md is about 6.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/cheat-sheet.md`, `references/test-migration.md` and `references/troubleshooting.md`).

It sits in AI & LLM Engineering, covering LLM API integration. It works with OpenAI, Azure OpenAI, Microsoft Azure and Python. The repository describes itself as: 18 Lessons to Get Started Building AI Agents. The licence is MIT.

When your agent uses it

  • Tasks that involve LLM API integration

Example prompts

  • “/azure-openai-to-responses”

Requirements

  • Python 3
  • A credential in AZURE_OPENAI_API_KEY

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Ujian ringkas penyebaran anda (pantas)
  2. Semak model tersedia di rantau anda (disyorkan)
  3. Rujukan lengkap sokongan model

What it can do on your machine

Read from SKILL.md and the folder at commit ff2ba66. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • rg
    • python
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • cdn.jsdelivr.net

    Also links to:

    • learn.microsoft.com
    • aka.ms
    • npmjs.com
    • platform.openai.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • AZURE_OPENAI_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Azure Openai To Responses loads about 6.5k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 223 tokens; SKILL.md has 2,222 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~223
When it runs · the whole SKILL.md, loaded when a task matches
~6.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~20k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:227
    SION` / `AZURE_OPENAI_API_VERSION` dari `.env`, tetapan aplikasi, dan fail Bicep/infra.
  • NoteMentions a .env fileSKILL.md:228
    AI_CLIENT_ID` → `AZURE_CLIENT_ID` dalam `.env`, tetapan aplikasi, Bicep/infra, dan fixtur ujian (konvensyen SDK Identiti

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from microsoft/ai-agents-for-beginners at commit ff2ba66, republished under its MIT licence (© microsoft). 2,222 words, ~6,523 tokens.

Download SKILL.mdSave it as .claude/skills/azure-openai-to-responses/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
azure-openai-to-responses
description
Migrasi aplikasi Python dari Azure OpenAI Chat Completions ke Responses API. Meliputi migrasi klien AzureOpenAI/AsyncAzureOpenAI ke endpoint v1, penstriman, alat, output berstruktur, multi-sesi, pengesahan EntraID, dan pemeriksaan keserasian model. Berfokus pada Python dan khusus untuk Azure OpenAI. GUNA UNTUK: migrasi ke responses API, bertukar dari chat completions, openai responses, peningkatan openai SDK, migrasi responses API, berpindah dari completions ke responses, migrasi gpt-5, migrasi python azure openai, chat completions ke responses, AzureOpenAI ke klien OpenAI, peningkatan python azure openai. JANGAN GUNA UNTUK: membina aplikasi baru dari awal (mulakan terus dengan responses), migrasi Node/TypeScript/C#/Java/Go (kemahiran ini hanya untuk Python), persediaan infrastruktur Azure (guna azure-prepare), penyebaran model (guna microsoft-foundry).
license
MIT

Migrasi Aplikasi Python daripada Azure OpenAI Chat Completions ke Responses API

PANDUAN BERWIBAWA — IKUTI DENGAN TEPAT

Kemahiran ini memindahkan pangkalan kod Python yang menggunakan Azure OpenAI Chat Completions ke Responses API yang bersatu. Ikuti arahan ini dengan tepat. Jangan mengubah suai pemetaan parameter atau mencipta bentuk API baru.


Pencetus

Aktifkan kemahiran ini apabila pengguna ingin:

  • Memindahkan aplikasi Python daripada Azure OpenAI Chat Completions ke Responses API
  • Meningkatkan penggunaan SDK OpenAI Python ke bentuk API terkini dengan Azure OpenAI
  • Menyediakan kod Python untuk model GPT-5 atau yang lebih baru yang memerlukan Responses di Azure
  • Beralih dari AzureOpenAI/AsyncAzureOpenAI ke klien standard OpenAI/AsyncOpenAI dengan titik akhir v1
  • Memperbaiki amaran deprecasi berkaitan konstruktor AzureOpenAI atau api_version

⚠️ Keserasian Model — PERIKSA DULU

Sebelum migrasi, sahkan penyebaran Azure OpenAI anda menyokong Responses API.

1. Ujian ringkas penyebaran anda (pantas)
python
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}")

Nota: max_output_tokens mempunyai minimum 16 di Azure OpenAI. Nilai di bawah 16 akan menghasilkan ralat 400. Gunakan 50+ untuk ujian ringkas.

Jika ini mengembalikan 404, model penyebaran tidak menyokong Responses lagi — semak rujukan di bawah atau lakukan penyebaran semula dengan model yang disokong.

2. Semak model tersedia di rantau anda (disyorkan)

Jalankan alat keserasian model terbina dalam untuk melihat apa yang tersedia dengan sokongan Responses API di rantau anda:

bash
python migrate.py models --subscription YOUR_SUB_ID --location YOUR_REGION

Ini mengquery ARM Azure secara langsung dan menunjukkan matriks keserasian — model mana yang menyokong Responses, output berstruktur, alat, dan lain-lain. Gunakan --filter gpt-5.1,gpt-5.2 untuk mengehadkan hasil atau --json untuk skrip.

3. Rujukan lengkap sokongan model
⚠️ Had model lama

AMARAN: Model lama (yang lebih tua daripada gpt-4.1) mungkin tidak menyokong semua ciri Responses API sepenuhnya.

Had yang diketahui dengan model lama:

  • Parameter reasoning: Tidak disokong oleh banyak model bukan beralasan. Hanya migrasi reasoning jika sudah wujud dalam kod asal.
  • Parameter seed: Tidak disokong langsung dalam Responses API — keluarkan dari semua permintaan.
  • Output berstruktur melalui text.format: Model lama mungkin tidak menguatkuasakan skema JSON strict: true dengan stabil.
  • Pengurusan alat: GPT-5+ menguruskan panggilan alat sebagai sebahagian daripada alasan dalaman. Model lama pada Responses masih berfungsi tetapi tiada integrasi mendalam ini.
  • Had suhu: Apabila migrasi ke gpt-5, suhu mesti tidak dimasukkan atau ditetapkan kepada 1. Model lama tiada had sebegini.
Model beralasan siri O (o1, o3-mini, o3, o4-mini)

Model siri O mempunyai had parameter unik. Apabila migrasi aplikasi yang mensasarkan model siri O:

  • temperature: Mesti 1 (atau tidak dimasukkan). Model siri O tidak menerima nilai lain.
  • max_completion_tokens → max_output_tokens: Aplikasi yang menggunakan max_completion_tokens khusus Azure mesti bertukar ke max_output_tokens. Tetapkan nilai tinggi (4096+) kerana token beralasan dikira dalam had.
  • reasoning_effort: Jika aplikasi menggunakan reasoning_effort (rendah/sederhana/tinggi), kekalkan — Responses API menyokong parameter ini untuk model siri O.
  • Tingkah laku streaming: Model siri O mungkin menyimpan output sehingga alasan selesai sebelum mengeluarkan acara delta teks. Streaming masih berfungsi, tetapi response.output_text.delta pertama mungkin tiba lewat berbanding model GPT.
  • top_p: Tidak disokong pada siri O — keluarkan jika ada.
  • Penggunaan alat: Model siri O menyokong alat melalui Responses API sama seperti model GPT, tetapi kualiti pengurusan panggilan alat berbeza mengikut model.

Tindakan — nasihat model proaktif: Semasa fasa imbasan, periksa model yang dituju aplikasi (nama penyebaran, pembolehubah persekitaran, konfigurasi). Jika model lebih tua daripada gpt-4.1 (bukan gpt-4.1+), beritahu pengguna secara proaktif:

  • Migrasi akan berfungsi untuk teks asas, chat, streaming, dan alat pada model semasa mereka.
  • Model terbaru (gpt-5.1, gpt-5.2) menawarkan pengurusan alat lebih baik, penguatkuasaan output berstruktur, beralasan, dan ketersediaan merentas rantau.
  • Mereka patut pertimbangkan untuk menaik taraf penyebaran apabila bersedia — ia tidak menghalang migrasi.

Jangan halang atau tolak migrasi berdasarkan versi model. Nasihat adalah untuk maklumat sahaja.

GitHub Models TIDAK menyokong Responses API

GitHub Models (models.github.ai, models.inference.ai.azure.com) tidak menyokong Responses API.

Jika pangkalan kod ada laluan kod GitHub Models (cari base_url yang menunjuk ke models.github.ai atau models.inference.ai.azure.com), buang sepenuhnya semasa migrasi. Responses API memerlukan Azure OpenAI, OpenAI, atau titik akhir tempatan yang serasi (contohnya, Ollama dengan sokongan Responses).

Tindakan semasa imbasan:

  • Tandakan mana-mana laluan kod GitHub Models untuk dikeluarkan.

Migrasi Kerangka Kerja

Banyak aplikasi menggunakan kerangka kerja peringkat tinggi di atas OpenAI. Apabila memigrasi ini, perubahan API kerangka kerja sendiri — bukan hanya panggilan OpenAI asas.

Microsoft Agent Framework (MAF)

Periksa versi MAF anda dahulu — migrasi bergantung sama ada anda pada MAF 1.0.0+ atau beta/rc sebelum 1.0.0.

MAF 1.0.0+ (agent-framework-openai >= 1.0.0)

OpenAIChatClient sudah menggunakan Responses API — tiada migrasi diperlukan. Jika pangkalan kod menggunakan OpenAIChatCompletionClient warisan (yang menggunakan chat.completions.create), gantikan dengan OpenAIChatClient.

SebelumSelepas
from agent_framework.openai import OpenAIChatCompletionClientfrom agent_framework.openai import OpenAIChatClient
OpenAIChatCompletionClient(...)OpenAIChatClient(...)

Untuk periksa versi anda: python -c "import agent_framework_openai; print(agent_framework_openai.__version__)"

MAF sebelum 1.0.0 (rilis beta/rc)

Pada MAF sebelum 1.0.0, OpenAIChatClient menggunakan Chat Completions. Tingkatkan ke agent-framework-openai>=1.0.0 di mana OpenAIChatClient menggunakan Responses API secara lalai.

Tiada perubahan lain diperlukan — API Agent dan alat kekal sama.

LangChain (langchain-openai)

Tambah use_responses_api=True ke ChatOpenAI(). Juga kemas kini akses respons daripada .content ke .text.

SebelumSelepas
ChatOpenAI(model=..., base_url=..., api_key=...)ChatOpenAI(model=..., base_url=..., api_key=..., use_responses_api=True)
result['messages'][-1].contentresult['messages'][-1].text

Untuk contoh kod lengkap sebelum/selepas, lihat cheat-sheet.md.


Panduan Migrasi Frontend

Responses API adalah perkara sisi pelayan. Migrasikan backend Python anda; kontrak HTTP frontend harus kekal tidak berubah kecuali backend anda hanya laluan nipis — dalam kes itu, pertimbangkan menggunakan bentuk permintaan Responses untuk menghapuskan lapisan terjemahan. Jika frontend memanggil OpenAI secara langsung dengan kunci sisi klien, alihkan panggilan itu ke backend terlebih dahulu.

Deprecation @microsoft/ai-chat-protocol

Pakej npm @microsoft/ai-chat-protocol sudah usang dan perlu digantikan dengan ndjson-readablestream. Jika anda menjumpainya di frontend:

  1. Gantikan tag skrip CDN:
    html
    <!-- 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>
  2. Keluarkan instansiasi AIChatProtocolClient (new ChatProtocol.AIChatProtocolClient("/chat")).
  3. Gantikan client.getStreamedCompletion(messages) dengan panggilan fetch() terus ke titik akhir streaming backend.
  4. Gantikan for await (const response of result) dengan for await (const chunk of readNDJSONStream(response.body)).
  5. Kemas kini akses sifat daripada response.delta.content / response.error ke chunk.delta.content / chunk.error.

Matlamat

  • Senaraikan semua tapak panggilan Python yang menggunakan Chat Completions atau Completions warisan terhadap Azure OpenAI.
  • Cadangkan pelan migrasi dan susunan untuk pangkalan kod Python.
  • Buat suntingan selamat dan minimum untuk beralih ke Responses API.
  • Kemas kini pemanggil untuk menggunakan skema output Responses; tiada pembungkus keserasian belakang.
  • Jalankan ujian/lint; baiki kerosakan kecil yang diperkenalkan oleh migrasi.
  • Sediakan set perubahan kecil yang boleh dikaji dan berikan ringkasan akhir dengan perbezaan (jangan komit).

Panduan Keselamatan

  • Hanya ubah fail dalam ruang kerja git. Jangan tulis luar ruang kerja.
  • Jangan simpan shim keserasian belakang; migrasi kod ke bentuk API baru.
  • Jangan tinggalkan komen peralihan/tanda kubur atau fail sandaran.
  • Kekalkan semantik streaming jika sebelum ini digunakan; jika tidak, guna bukan streaming.
  • Minta kelulusan sebelum menjalankan arahan atau panggilan rangkaian jika dalam mod kelulusan.
  • Jangan jalankan git add/git commit/git push; hasilkan suntingan pokok kerja sahaja.

Langkah 0: Migrasi Klien Azure OpenAI (Prasyarat)

Jika pangkalan kod menggunakan konstruktor AzureOpenAI atau AsyncAzureOpenAI, migrasi ke konstruktor standard OpenAI / AsyncOpenAI terlebih dahulu. Konstruktor khusus Azure ini sudah usang dalam openai>=1.108.1.

Mengapa laluan API v1?

Titik akhir baru /openai/v1 menggunakan klien standard OpenAI() dan bukan AzureOpenAI(), tidak memerlukan parameter api_version, dan berfungsi sama rata di OpenAI dan Azure OpenAI. Kod klien yang sama ini tahan masa depan — tiada pengurusan versi diperlukan.

Perubahan penting
SebelumSelepas
AzureOpenAIOpenAI
AsyncAzureOpenAIAsyncOpenAI
azure_endpointbase_url
azure_ad_token_providerapi_key
api_version=...Keluarkan sepenuhnya
Senarai semak pembersihan
  • Keluarkan argumen api_version daripada konstruktor klien.
  • Keluarkan pembolehubah persekitaran AZURE_OPENAI_VERSION / AZURE_OPENAI_API_VERSION dari .env, tetapan aplikasi, dan fail Bicep/infra.
  • Namakan semula AZURE_OPENAI_CLIENT_ID → AZURE_CLIENT_ID dalam .env, tetapan aplikasi, Bicep/infra, dan fixtur ujian (konvensyen SDK Identiti Azure standard).
  • Pastikan openai>=1.108.1 dalam requirements.txt atau pyproject.toml.
Migrasi pembolehubah persekitaran
Pembolehubah lamaTindakanNota
AZURE_OPENAI_VERSIONKeluarkanTiada api_version diperlukan dengan titik akhir v1
AZURE_OPENAI_API_VERSIONKeluarkanSama seperti di atas
AZURE_OPENAI_CLIENT_IDNamakan semula → AZURE_CLIENT_IDKonvensyen SDK Identiti Azure standard untuk ManagedIdentityCredential(client_id=...)
AZURE_OPENAI_ENDPOINTSimpanMasih diperlukan untuk pembinaan base_url
AZURE_OPENAI_CHAT_DEPLOYMENTSimpanDigunakan sebagai parameter model dalam responses.create
AZURE_OPENAI_API_KEYSimpanDigunakan sebagai api_key untuk pengesahan berasaskan kunci

Untuk contoh kod penyediaan klien (sync, async, EntraID, kunci API, berbilang penyewa), lihat cheat-sheet.md.


Langkah 1: Kenal Pasti Tapak Panggilan Warisan

Jalankan skrip detect_legacy.py untuk mencari semua tapak panggilan yang perlu dimigrasi:

bash
python skills/azure-openai-to-responses/scripts/detect_legacy.py .

Atau jalankan carian ini secara manual — setiap padanan adalah sasaran migrasi:

bash
# Panggilan API Legacy (perlu tulis semula)
rg "chat\.completions\.create"
rg "ChatCompletion\.create"
rg "Completion\.create"

# Pembina klien Azure yang telah usang (perlu gantikan)
rg "AzureOpenAI\("
rg "AsyncAzureOpenAI\("

# Corak akses bentuk respons (perlu kemas kini)
rg "choices\[0\]\.message\.content"
rg "choices\[0\]\.delta\.content"
rg "choices\[0\]\.message\.function_call"
rg "choices\[0\]\.message\.tool_calls"

# Definisi alat dalam format bertingkat lama (perlu ratakan)
rg '"function":\s*{\s*"name"'
rg "pydantic_function_tool"

# Keputusan alat dalam format lama (perlu tukar kepada function_call_output)
rg '"role":\s*"tool"'
rg '"tool_call_id"'

# Parameter yang telah usang (perlu keluarkan atau tukar nama)
rg "response_format"
rg "max_tokens\b"        # tukar nama kepada max_output_tokens
rg "['\"]seed['\"]"      # remove entirely

# Pembolehubah persekitaran yang telah usang (bersihkan)
rg "AZURE_OPENAI_API_VERSION|AZURE_OPENAI_VERSION"
rg "AZURE_OPENAI_CLIENT_ID"  # sepatutnya AZURE_CLIENT_ID

# Titik hujung Model GitHub (perlu keluarkan — API Respons tidak disokong)
rg "models\.github\.ai|models\.inference\.ai\.azure"

# Corak legacy tahap rangka kerja (perlu kemas kini)
rg "OpenAIChatCompletionClient"  # MAF 1.0.0+: gantikan dengan OpenAIChatClient
rg "ChatOpenAI\(" | grep -v "use_responses_api"  # LangChain: perlu use_responses_api=True

# Infrastruktur ujian (perlu kemas kini)
rg "ChatCompletionChunk|AsyncCompletions\.create" tests/
rg "_azure_ad_token_provider" tests/
rg "prompt_filter_results|content_filter_results" tests/
rg "choices\[0\]" tests/

# Akses badan ralat penapis kandungan (perlu kemas kini — struktur telah berubah)
rg 'innererror.*content_filter_result|error\.body\["innererror"\]'
rg "content_filter_result\[" # bentuk tunggal lama — sekarang content_filter_results (jamak) di dalam tatasusunan content_filters

# Panggilan HTTP mentah ke titik hujung Chat Completions (perlu kemas kini URL)
rg "/openai/deployments/.*/chat/completions"
rg "api-version="
Show full SKILL.md (928 more words)Show less
Heuristik (mengesan dan menulis semula)
  • Klien Chat Completions: client.chat.completions.create → client.responses.create(...).

  • Pembina klien Azure: AzureOpenAI(...) → OpenAI(base_url=..., api_key=...).

  • Alat: tukar definisi alat panggilan fungsi daripada format bersarang ({"type": "function", "function": {"name": ...}}) ke format Respon rata ({"type": "function", "name": ...}); guna tool_choice; pulangkan hasil alat sebagai item {"type": "function_call_output", "call_id": ..., "output": ...} (bukan {"role": "tool", ...}).

  • Pusingan alat: apabila model memulangkan panggilan fungsi, tambah item response.output ke perbualan (bukan kamus manual {"role": "assistant", "tool_calls": [...]}), kemudian tambah item function_call_output untuk setiap hasil.

  • Contoh alat tembakan sedikit: jika perbualan termasuk contoh panggilan alat keras kod, tukar kepada item {"type": "function_call", "id": "fc_...", "call_id": "fc_...", ...} + {"type": "function_call_output", ...}. ID mesti bermula dengan fc_.

  • pydantic_function_tool(): pembantu ini masih menjana format bersarang lama dan tidak serasi dengan responses.create(). Gantikan dengan definisi alat manual atau pembungkus pemesejan.

  • Multi-pusingan: kekalkan sejarah perbualan dalam aplikasi; hantar pusingan sebelumnya melalui item input.

  • Pemformatan: ganti response_format peringkat atas Chat dengan text.format dalam Responses. Bentuk kanonik: text={"format": {"type": "json_schema", "name": "Output", "strict": True, "schema": {...}}}.

  • Item kandungan: ganti Chat content[].type: "text" dengan Responses content[].type: "input_text" untuk pusingan pengguna/sistem.

  • Item kandungan imej: ganti Chat content[].type: "image_url" dengan Responses content[].type: "input_image". Medan image_url berubah daripada objek bersarang {"url": "..."} menjadi rentetan rata. Lihat helaian cheat untuk contoh sebelum/selepas.

  • Usaha penalaran: hanya migrasikan reasoning jika ia sudah wujud dalam kod asal.

  • Pengendalian ralat penapis kandungan: struktur badan ralat berubah. Chat Completions menggunakan error.body["innererror"]["content_filter_result"] (tunggal); Respon API menggunakan error.body["content_filters"][0]["content_filter_results"] (jamak, dalam tatasusunan). Kod yang mengakses innererror akan menaikkan KeyError. Tulis semula untuk menggunakan laluan baru.

  • Panggilan HTTP mentah: jika aplikasi memanggil Azure OpenAI REST API secara langsung (melalui requests, httpx, dll.) menggunakan /openai/deployments/{name}/chat/completions?api-version=..., tulis semula kepada /openai/v1/responses. Badan permintaan berubah: messages → input, tambah max_output_tokens dan store: false, keluarkan param kueri api-version. Badan tindak balas berubah: choices[0].message.content → output[0].content[0].text (nota: output_text adalah sifat kemudahan SDK yang tiada dalam JSON REST mentah).


Langkah 2: Terapkan Migrasi

Nota migrasi (Chat Completions → Responses)
  • Kenapa migrasi: Responses adalah API bersatu untuk teks, alat, dan penstriman; Chat Completions adalah warisan. Dengan GPT-5, Responses diperlukan untuk prestasi terbaik.
  • HTTP: titik akhir Azure beralih daripada /openai/deployments/{name}/chat/completions kepada /openai/v1/responses.
  • Medan: messages → input, max_tokens → max_output_tokens. temperature kekal.
  • Pemformatan: response_format → text.format dengan objek yang sesuai.
  • Item kandungan: Gantikan Chat content[].type: "text" dengan Responses content[].type: "input_text" untuk pusingan sistem/pengguna.
  • Item kandungan imej: Gantikan Chat content[].type: "image_url" dengan Responses content[].type: "input_image". Ratakan medan image_url daripada {"image_url": {"url": "..."}} kepada {"image_url": "..."} (rentetan biasa — sama ada URL HTTPS atau URI data data:image/...;base64,...).
Rujukan pemadanan parameter
Chat CompletionsResponses API
promptinput
messagesinput (susunan item)
max_tokensmax_output_tokens
response_formattext.format (objek)
temperaturetemperature (tidak berubah)
stopstop (tidak berubah)
frequency_penaltyfrequency_penalty (tidak berubah)
presence_penaltypresence_penalty (tidak berubah)
tools / panggilan fungsitools (tidak berubah)
seedBuang (tidak disokong)
storestore (tetapkan kepada false)
content[].type: "text"content[].type: "input_text"
content[].type: "image_url"content[].type: "input_image"
"image_url": {"url": "..."}"image_url": "..." (rentetan rata)

Untuk contoh kod lengkap sebelum/selepas, lihat cheat-sheet.md.

Untuk migrasi infrastruktur ujian (mock, snapshot, penegasan), lihat test-migration.md.

Untuk penyelesaian masalah ralat dan masalah biasa, lihat troubleshooting.md.


Penyimpanan Data & Keadaan

  • Tetapkan store: false pada semua permintaan Responses.
  • Jangan bergantung pada ID mesej sebelumnya atau konteks yang disimpan pelayan; urus keadaan secara klien dan minimakan metadata.

Kriteria Penerimaan

Pintu aras kod (semua mesti lulus)
  • Tiada padanan untuk rg "chat\.completions\.create|ChatCompletion\.create|Completion\.create" dalam fail yang telah dimigrasi.
  • Tiada padanan untuk rg "AzureOpenAI\(|AsyncAzureOpenAI\(" — semua pembina guna OpenAI/AsyncOpenAI dengan titik akhir v1.
  • Tiada padanan untuk rg "models\.github\.ai|models\.inference\.ai\.azure" — laluan kod Model GitHub dibuang.
  • Tiada padanan untuk rg "OpenAIChatCompletionClient" — kod MAF 1.0.0+ guna OpenAIChatClient (yang guna Responses API). Dalam pra-1.0.0, naik taraf kepada agent-framework-openai>=1.0.0.
  • Semua panggilan ChatOpenAI(...) sertakan use_responses_api=True.
  • Tiada padanan untuk rg "choices\[0\]" — semua akses respons guna resp.output_text atau skema output Responses.
  • Tiada response_format di peringkat atas; semua output berstruktur guna text={"format": {...}}.
  • openai>=1.108.1 dan azure-identity dalam requirements.txt atau pyproject.toml; kebergantungan dipasang semula.
  • store=False ditetapkan pada setiap panggilan responses.create.
  • Tiada api_version dalam pembinaan klien; AZURE_OPENAI_API_VERSION dibuang dari fail persekitaran dan infrastruktur.
Pintu infrastruktur ujian (semua mesti lulus)
  • Tiada padanan untuk rg "ChatCompletionChunk|AsyncCompletions\.create|chat\.completions" tests/.
  • Tiada padanan untuk rg "_azure_ad_token_provider" tests/ — penegasan diubah untuk periksa isinstance(client, AsyncOpenAI) atau base_url.
  • Tiada padanan untuk rg "prompt_filter_results|content_filter_results" tests/ — mock penapis khusus Azure dibuang.
  • Mock fixture guna kwargs.get("input") bukan kwargs.get("messages").
  • Fail snapshot / emas dikemas kini kepada bentuk penstriman Responses (tiada choices[0], function_call, logprobs, dll.).
  • pytest lulus tanpa kegagalan selepas semua kemas kini ujian.
Pintu kelakuan (sahkan secara manual atau melalui hab ujian)
  • Lengkap asas: responses.create tanpa penstriman pulangkan output_text tidak kosong.
  • Kesetaraan penstriman: jika kod asal guna penstriman, kod migrasi menstrim dan hasilkan acara response.output_text.delta dengan delta tidak kosong.
  • Output berstruktur: jika guna text.format dengan json_schema, json.loads(resp.output_text) berjaya dan padan dengan skema.
  • Gelung panggilan alat: jika alat digunakan, model keluarkan panggilan alat, aplikasi laksanakan, dan permintaan susulan pulangkan output_text akhir (tiada gelung tanpa henti).
  • Kesetaraan Async: jika AsyncAzureOpenAI digunakan, yang setara AsyncOpenAI berfungsi dengan await.
  • Kadar ralat: tiada ralat 400/401/404 baru berbanding garisan asas pra-migrasi.
Hasil Dihantar
  • Ringkasan termasuk fail yang diedit, kiraan tapak panggilan warisan sebelum/selepas, dan langkah seterusnya.
  • Perubahan adalah suntingan pokok kerja sahaja (tiada komit).

Keperluan Versi SDK

PekVersi Minimum
openai>=1.108.1
azure-identityTerkini (untuk pengesahan EntraID)

Rujukan


<!-- CO-OP TRANSLATOR DISCLAIMER START -->

Penafian: Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat penting, terjemahan oleh manusia profesional adalah disyorkan. Kami tidak bertanggungjawab terhadap sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.

<!-- CO-OP TRANSLATOR DISCLAIMER END -->

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in translations/ms/.agents/skills/azure-openai-to-responses of microsoft/ai-agents-for-beginners.

  • SKILL.md
  • references/cheat-sheet.md
  • references/test-migration.md
  • references/troubleshooting.md

Open the folder on GitHubat commit ff2ba66

Compare with similar skills

Azure Openai To Responses next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Azure Openai To Responses compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Azure Openai To Responses this skillmicrosoft/ai-agents-for-beginners77k—~6.5kAutomated safety check: NotesMIT
Azure AI Projects Python SDKmicrosoft/skills3.1k—~2.8kAutomated safety check: PassMIT
Azure AI Openai Dotnetmicrosoft/skills3.1k5 repos~3.4kAutomated safety check: PassMIT
New Openai SDK Appsandgardenhq/sgai137—~3.9kAutomated safety check: NotesCustom licence
Add Example AgentGetBindu/Bindu10k—~1.1kAutomated safety check: NotesCustom licence
Gemini API Devgoogle-gemini/gemini-skills4.3k—~5.1kAutomated safety check: PassApache-2.0

Similar skills

  • Official

    Reference for building on Microsoft Foundry with the azure-ai-projects Python SDK: project clients, versioned agents, evaluations, connections, datasets and indexes.

    3.1k GitHub stars~2.8k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Azure AI Openai Dotnet

    microsoft/skills

    Official

    Azure OpenAI SDK for .NET. An agent skill from microsoft/skills.

    3.1k GitHub starsUsed in 5 repos~3.4k tokens
    AI & LLM EngineeringAuto-check passed
  • New Openai SDK App

    sandgardenhq/sgai

    Create and setup a new OpenAI Agents SDK application with interactive guidance for language choice, agent type selection (Basic, Voice, Realtime), project setup, and automatic verification.

    137 GitHub stars~3.9k tokensUpdated 20 days ago
    AI & LLM EngineeringAuto-check: notes
  • Add Example Agent

    GetBindu/Bindu

    Add a new self-contained example agent under examples/. An agent skill from GetBindu/Bindu.

    10k GitHub stars~1.1k tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check: notes
  • Gemini API Dev

    google-gemini/gemini-skills

    Official

    A skill your agent uses when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, speech generation (TTS), voice…

    4.3k GitHub stars~5.1k tokensUpdated 4 days ago
    AI & LLM EngineeringAuto-check passed
  • Claude API

    Kocoro-lab/Kocoro

    Build apps with the Claude API or Anthropic SDK. An agent skill from Kocoro-lab/Kocoro.

    414 GitHub starsUsed in 7 repos~4.5k tokens
    AI & LLM EngineeringAuto-check passed

More from microsoft/ai-agents-for-beginners

All 122 skills in this repo
  • Jupyter Notebook

    microsoft/ai-agents-for-beginners

    Official

    A skill your agent uses when the user asks to create, scaffold, or edit Jupyter notebooks (.ipynb) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script…

    77k GitHub starsUsed in 8 repos~1k tokens
    Auto-check passed
  • Azure Openai To Responses

    microsoft/ai-agents-for-beginners

    Official

    Migrate Python apps from Azure OpenAI Chat Completions to the Responses API.

    77k GitHub stars~6k tokensUpdated yesterday
    Auto-check: notes
  • Azure Openai To Responses

    microsoft/ai-agents-for-beginners

    Official

    Shift Python apps dem from Azure OpenAI Chat Completions go Responses API.

    77k GitHub stars~6k tokensUpdated yesterday
    Auto-check: notes
  • Jupyter Notebook

    microsoft/ai-agents-for-beginners

    Official

    Kasuta, kui kasutaja palub luua, üles ehitada või redigeerida Jupyteri märkmikke (.ipynb) katsetuste, uurimiste või juhendite jaoks; eelista kaasasolevaid malle ja käivita abiskript newnotebook.py…

    77k GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Jupyter Notebook

    microsoft/ai-agents-for-beginners

    Official

    Käytetään, kun käyttäjä pyytää luomaan, alustamaan tai muokkaamaan Jupyter-muistikirjoja (.ipynb) kokeita, tutkimuksia tai opetusohjelmia varten; käytä mieluummin mukana olevia mallipohjia ja…

    77k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Jupyter Notebook

    microsoft/ai-agents-for-beginners

    Official

    À utiliser lorsque l'utilisateur demande de créer, structurer ou modifier des notebooks Jupyter (.ipynb) pour des expériences, explorations ou tutoriels ; privilégiez les modèles fournis et exécutez…

    77k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

Questions about Azure Openai To Responses

What does Azure Openai To Responses do?

Migrasi aplikasi Python dari Azure OpenAI Chat Completions ke Responses API. Azure Openai To Responses is an agent skill from microsoft/ai-agents-for-beginners, published by the product's own GitHub organization. Migrasi aplikasi Python dari Azure OpenAI Chat Completions ke Responses API.

When should I use Azure Openai To Responses?

Azure Openai To Responses fits situations like: tasks that involve LLM API integration.

How do I install Azure Openai To Responses in Claude Code?

Run `npx skills add microsoft/ai-agents-for-beginners --skill azure-openai-to-responses -a claude-code`. Or copy the skill folder (translations/ms/.agents/skills/azure-openai-to-responses in microsoft/ai-agents-for-beginners) into .claude/skills/azure-openai-to-responses in your project. Claude Code loads it when a task matches its description.

How do I install Azure Openai To Responses in Codex?

Run `npx skills add microsoft/ai-agents-for-beginners --skill azure-openai-to-responses -a codex`. Or copy the skill folder (translations/ms/.agents/skills/azure-openai-to-responses in microsoft/ai-agents-for-beginners) into .agents/skills/azure-openai-to-responses in your project. Codex loads it when a task matches its description.

Can I use Azure Openai To Responses in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/ai-agents-for-beginners --skill azure-openai-to-responses -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/azure-openai-to-responses, .gemini/skills/azure-openai-to-responses, .github/skills/azure-openai-to-responses and .opencode/skills/azure-openai-to-responses in your project.

What does Azure Openai To Responses need to run?

Going by SKILL.md and its folder, Azure Openai To Responses needs the command-line tools its instructions call (rg, python and git) and credentials named AZURE_OPENAI_API_KEY. Our summary lists: Python 3; A credential in AZURE_OPENAI_API_KEY.

Does Azure Openai To Responses access the network?

SKILL.md names 6 domains. In commands or code: cdn.jsdelivr.net; the agent is likely to contact it when it follows the instructions. As links in the text: learn.microsoft.com, aka.ms, npmjs.com, platform.openai.com and github.com. This is read from the text; nothing was executed.

Is Azure Openai To Responses safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Azure Openai To Responses use?

Azure Openai To Responses is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Azure Openai To Responses use?

About 6.5k tokens (SKILL.md is roughly 26k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 13k tokens, read only when the agent opens those files.

What are the alternatives to Azure Openai To Responses?

Skills that share tags, products or a category with Azure Openai To Responses: Azure AI Projects Python SDK (microsoft/skills, 3.1k stars), Azure AI Openai Dotnet (microsoft/skills, 3.1k stars), New Openai SDK App (sandgardenhq/sgai, 137 stars) and Add Example Agent (GetBindu/Bindu, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Azure Openai To Responses?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/ai-agents-for-beginners, which has 76,795 GitHub stars. The repository holds 122 skills in this directory. The repository was last updated on October 9, 2026.

Source: microsoft/ai-agents-for-beginners on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.