Resources
1Install
npx skillscat add microsoft/ai-agents-for-beginners/translations-bn-agents-skills-azure-openai-to-responses Install via the SkillsCat registry.
Azure OpenAI āĻā§āϝāĻžāĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϤāĻž āĻĨā§āĻā§ Responses API āϤ⧠āĻĒāĻžāĻāĻĨāύ āĻ ā§āϝāĻžāĻĒāϏāĻā§āϞ⧠āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰā§āύ
āĻ āϧāĻŋāĻāĻžāϰāĻŋāĻ āύāĻŋāϰā§āĻĻā§āĻļāύāĻž â āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύ
āĻāĻ āϏā§āĻāĻŋāϞāĻāĻŋ Azure OpenAI āĻā§āϝāĻžāĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϤāĻž āĻŦā§āϝāĻŦāĻšā§āϤ āĻĒāĻžāĻāĻĨāύ āĻā§āĻĄāĻŦā§āϏāĻā§āϞā§āĻā§
āĻāĻā§āĻā§āϤ Responses API āϤ⧠āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰā§āĨ¤ āĻāĻ āύāĻŋāϰā§āĻĻā§āĻļāύāĻžāĻā§āϞ⧠āϝāĻĨāĻžāϝāĻĨāĻāĻžāĻŦā§ āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύāĨ¤
āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻŽā§āϝāĻžāĻĒāĻŋāĻāϏ āĻāĻŽā§āĻĒā§āϰā§āĻāĻžāĻāĻ āĻāϰāĻŦā§āύ āύāĻž āĻŦāĻž API āĻāĻā§āϤāĻŋ āĻāĻĻā§āĻāĻžāĻŦāύ āĻāϰāĻŦā§āύ āύāĻžāĨ¤
āĻā§āϰāĻŋāĻāĻžāϰāϏāĻŽā§āĻš
āϝāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻžāύ, āĻāĻ āϏā§āĻāĻŋāϞ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰā§āύ:
- Azure OpenAI āĻā§āϝāĻžāĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϤāĻž āĻĨā§āĻā§ Responses API āϤ⧠āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāύ āĻ ā§āϝāĻžāĻĒ āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰāϤā§
- Azure OpenAI āĻāϰ āĻŦāĻŋāϰā§āĻĻā§āϧ⧠āϏāϰā§āĻŦāĻļā§āώ API āĻāĻā§āϤāĻŋāϰ āĻāύā§āϝ āĻĒāĻžāĻāĻĨāύ OpenAI SDK āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāĻĒāĻā§āϰā§āĻĄ āĻāϰāϤā§
- Azure āĻ Responses āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻŽāύ GPT-5 āĻŦāĻž āύāϤā§āύ āĻŽāĻĄā§āϞā§āϰ āĻāύā§āϝ āĻĒāĻžāĻāĻĨāύ āĻā§āĻĄ āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰāϤā§
AzureOpenAI/AsyncAzureOpenAIāĻĨā§āĻā§ āĻāĻŋā§§ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ āϏāĻš āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄOpenAI/AsyncOpenAIāĻā§āϞāĻžāϝāĻŧā§āύā§āĻā§ āϏā§āϝā§āĻāĻ āĻāϰāϤā§AzureOpenAIāĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰ āĻŦāĻžapi_versionāϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻ āĻŦā§āϝāĻŦāĻšāĻŋāϤ āϏāϤāϰā§āĻāϤāĻž āĻ āĻŋāĻ āĻāϰāϤā§
â ī¸ āĻŽāĻĄā§āϞ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāϤāĻž â āĻĒā§āϰāĻĨāĻŽā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ
āĻŽāĻžāĻāĻā§āϰā§āĻļāύā§āϰ āĻāĻā§, āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āϝ⧠āĻāĻĒāύāĻžāϰ Azure OpenAI āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§āύā§āĻ Responses API āϏāĻŽāϰā§āĻĨāύ āĻāϰā§āĨ¤
ā§§āĨ¤ āĻāĻĒāύāĻžāϰ āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§āύā§āĻ āĻĻā§āϰā§āϤ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ (āϏāĻŦāĻā§āϝāĻŧā§ āĻĻā§āϰā§āϤ)
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}")āύā§āĻ: Azure OpenAI āĻ
max_output_tokensāĻāϰ āϏāϰā§āĻŦāύāĻŋāύā§āĻŽ ā§§ā§Ŧ āĻāĻā§āĨ¤ ā§§ā§Ŧ āĻāϰ āύāĻŋāĻā§āϰ āĻŽāĻžāύ ā§Ēā§Ļā§Ļ āĻāϰāϰ āĻĻā§āϝāĻŧāĨ¤ āϏā§āĻŽā§āĻ āĻā§āϏā§āĻā§āϰ āĻāύā§āϝ ā§Ģā§Ļ+ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
āϝāĻĻāĻŋ āĻāĻāĻŋ ā§Ēā§Ļā§Ē āϰāĻŋāĻāĻžāϰā§āύ āĻāϰā§, āϤāĻžāĻšāϞ⧠āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§āύā§āĻā§āϰ āĻŽāĻĄā§āϞ āĻāĻāύ⧠Responses āϏāĻŽāϰā§āĻĨāύ āĻāϰ⧠āύāĻž â āύāĻŋāĻā§āϰ āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻĻā§āĻā§āύ āĻ āĻĨāĻŦāĻž āϏāĻŽāϰā§āĻĨāĻŋāϤ āĻŽāĻĄā§āϞ āĻĻāĻŋāϝāĻŧā§ āĻĒā§āύāϰāĻžāϝāĻŧ āĻĄāĻŋāĻĒā§āϞāϝāĻŧ āĻāϰā§āύāĨ¤
⧍āĨ¤ āĻāĻĒāύāĻžāϰ āĻ āĻā§āĻāϞā§āϰ āĻāĻĒāϞāĻŦā§āϧ āĻŽāĻĄā§āϞ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ (āĻĒā§āϰāϏā§āϤāĻžāĻŦāĻŋāϤ)
āĻŦāĻŋāϞā§āĻ-āĻāύ āĻŽāĻĄā§āϞ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāϤāĻž āĻā§āϞ āĻāĻžāϞāĻžāύ āϝāĻž āĻĻā§āĻāĻžāĻŦā§ āĻāĻĒāύāĻžāϰ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻ āĻā§āĻāϞ⧠Responses API āϏāĻŽāϰā§āĻĨāύāϏāĻš āĻā§ āĻā§ āĻŽāĻĄā§āϞ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ:
python migrate.py models --subscription YOUR_SUB_ID --location YOUR_REGIONāĻāĻāĻŋ Azure ARM āϞāĻžāĻāĻ āĻā§āϝāĻŧā§āϰāĻŋ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻāĻŋ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāϤāĻž āĻŽā§āϝāĻžāĻā§āϰāĻŋāĻā§āϏ āĻĻā§āĻāĻžāϝāĻŧ â āĻā§āύ āĻŽāĻĄā§āϞ Responses, āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āĻĄ āĻāĻāĻāĻĒā§āĻ, āĻā§āϞāϏ āĻāϤā§āϝāĻžāĻĻāĻŋ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰā§āĨ¤ āĻĢāϞāĻžāĻĢāϞ āϏāĻā§āĻā§āĻāĻŋāϤ āĻāϰāϤ⧠--filter gpt-5.1,gpt-5.2 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āĻ
āĻĨāĻŦāĻž āϏā§āĻā§āϰāĻŋāĻĒā§āĻāĻŋāĻ āĻāϰ āĻāύā§āϝ --jsonāĨ¤
ā§ŠāĨ¤ āĻĒā§āϰā§āĻŖ āĻŽāĻĄā§āϞ āϏāĻŽāϰā§āĻĨāύ āϰā§āĻĢāĻžāϰā§āύā§āϏ
- āϞāĻžāĻāĻ āĻā§āϝāĻŧā§āϰāĻŋ:
python migrate.py models(āĻāĻĒāϰ āĻĻā§āĻā§āύ â āĻ āĻā§āĻāϞ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ, āϏāϰā§āĻŦāĻĻāĻž āĻšāĻžāϞāύāĻžāĻāĻžāĻĻ) - āĻāĻĒāϞāĻŦā§āϧāϤāĻž āĻŦā§āϰāĻžāĻāĻ āĻāϰā§āύ: āĻŽāĻĄā§āϞ āϏāĻžāϰāĻžāĻāĻļ āĻā§āĻŦāĻŋāϞ āĻāĻŦāĻ āĻ āĻā§āĻāϞ āĻāĻĒāϞāĻŦā§āϧāϤāĻž
- āĻĻā§āϰā§āϤ āĻļā§āϰ⧠āĻ āύāĻŋāϰā§āĻĻā§āĻļāύāĻž: https://aka.ms/openai/start
â ī¸ āĻĒā§āϰāĻžāύ⧠āĻŽāĻĄā§āϞ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž
āϏāϤāϰā§āĻāϤāĻž: āĻĒā§āϰāĻžāύ⧠āĻŽāĻĄā§āϞ (āϝ ĐŊаĐŋŅиĐŧĐĩŅ
gpt-4.1āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤā§) Responses API āĻāϰ āϏāĻŦ āĻĢāĻŋāĻāĻžāϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āϏāĻžāĻĒā§āϰā§āĻ āύāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤āĻĒā§āϰāĻžāύ⧠āĻŽāĻĄā§āϞā§āϰ āĻĒāϰāĻŋāĻāĻŋāϤ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž:
reasoningāĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ: āĻ āύā§āĻ āύāύ-āϰāĻŋāĻāύāĻŋāĻ āĻŽāĻĄā§āϞ⧠āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āύāĻžāĨ¤ āĻā§āĻŦāϞāĻŽāĻžāϤā§āϰ āĻŽā§āϞ āĻā§āĻĄā§ āĻāĻā§ āĻĨā§āĻā§āĻreasoningāĻĨāĻžāĻāϞ⧠āϤāĻž āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰā§āύāĨ¤seedāĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ: Responses API āϤ⧠āĻāĻā§āĻŦāĻžāϰā§āĻ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āύāĻž â āϏāĻŦ āĻ āύā§āϰā§āϧ āĻĨā§āĻā§ āĻāĻāĻŋ āϏāϰāĻžāύāĨ¤text.formatāĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āĻĄ āĻāĻāĻāĻĒā§āĻ: āĻĒā§āϰāĻžāύ⧠āĻŽāĻĄā§āϞāĻā§āϞ⧠āĻšāϝāĻŧāϤā§strict: trueJSON āϏā§āĻāĻŋāĻŽāĻž āύāĻŋāϰā§āĻāϰāϝā§āĻā§āϝāĻāĻžāĻŦā§ āĻĒā§āϰā§ā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āύāĻžāĨ¤- āĻā§āϞ āĻ āϰā§āĻā§āϏā§āĻā§āϰā§āĻļāύ: GPT-5+ āĻā§āϞ āĻāϞāĻā§āϞ⧠āĻ āĻā§āϝāύā§āϤāϰā§āĻŖ āϰāĻŋāĻāύāĻŋāĻ āĻ āĻāĻļ āĻšāĻŋāϏā§āĻŦā§ āĻ āϰā§āĻā§āϏā§āĻā§āϰā§āĻ āĻāϰā§āĨ¤ Responses āĻāϰ āĻĒā§āϰāĻžāύ⧠āĻŽāĻĄā§āϞāĻā§āϞ⧠āĻāĻžāĻ āĻāϰ⧠āϤāĻŦā§ āĻāĻā§āϰ āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āύā§āĻāĨ¤
- āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻžāϰ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž:
gpt-5āϤ⧠āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻž āĻŦāĻžāĻĻ āĻĻāĻŋāϤ⧠āĻšāĻŦā§ āĻ āĻĨāĻŦāĻž ā§§ āĻ āϏā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻĒā§āϰāĻžāύ⧠āĻŽāĻĄā§āϞ⧠āĻāĻŽāύ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āύā§āĻāĨ¤
āĻ-āϏāĻŋāϰāĻŋāĻ āϰāĻŋāĻāύāĻŋāĻ āĻŽāĻĄā§āϞāϏ (o1, o3-mini, o3, o4-mini)
āĻ-āϏāĻŋāϰāĻŋāĻ āĻŽāĻĄā§āϞāĻā§āϞā§āϰ āĻŦāĻŋāĻļā§āώ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āĻāĻā§āĨ¤ āϝāĻžāϰāĻž āĻāĻ āĻŽāĻĄā§āϞāĻā§āϞ⧠āĻāĻžāϰā§āĻā§āĻ āĻāϰ⧠āĻāĻŽāύ āĻ ā§āϝāĻžāĻĒ āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰāĻŦā§āύ:
temperature: āĻ āĻŦāĻļā§āϝāĻ1āĻšāϤ⧠āĻšāĻŦā§ (āĻ āĻĨāĻŦāĻž āĻŦāĻžāĻĻ āĻĻāĻŋāύ)āĨ¤ āĻ-āϏāĻŋāϰāĻŋāĻ āĻŽāĻĄā§āϞ āĻ āύā§āϝ āĻŽāĻžāύ āĻā§āϰāĻšāĻŖ āĻāϰ⧠āύāĻžāĨ¤max_completion_tokensâmax_output_tokens: Azure-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻmax_completion_tokensāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞā§max_output_tokensāĻ āϏā§āϝā§āĻāĻ āĻāϰā§āύāĨ¤ āĻāĻā§āĻ āĻŽāĻžāύ (ā§Ēā§Ļ⧝ā§Ŧ+) āĻĻāĻŋāύ āĻāĻžāϰāĻŖ āϰāĻŋāĻāύāĻŋāĻ āĻā§āĻā§āύ āϞāĻŋāĻŽāĻŋāĻā§āϰ āĻŦāĻŋāϰā§āĻĻā§āϧ⧠āĻā§āĻŖāĻŋāϤ āĻšā§āĨ¤reasoning_effort: āĻ ā§āϝāĻžāĻĒ āϝāĻĻāĻŋreasoning_effort(low/medium/high) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϰāĻžāĻā§āύ â Responses API āĻ-āϏāĻŋāϰāĻŋāĻ āĻŽāĻĄā§āϞā§āϰ āĻāύā§āϝ āĻāĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϏāĻŽāϰā§āĻĨāύ āĻāϰā§āĨ¤- āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ āĻāĻāϰāĻŖ: āĻ-āϏāĻŋāϰāĻŋāĻ āĻŽāĻĄā§āϞ āϰāĻŋāĻāύāĻŋāĻ āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻāĻāĻĒā§āĻ āĻŦāĻžāĻĢāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻĒā§āϰā§āĻŦā§ āĻĒāĻžāĻ āĻžāύā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤā§āĨ¤ āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ āĻāĻžāĻ āĻāϰāĻŦā§, āϤāĻŦā§ āĻĒā§āϰāĻĨāĻŽ
response.output_text.deltaGPT āĻŽāĻĄā§āϞāĻā§āϞā§āϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻĻā§āϰāĻŋāϤ⧠āĻāϏāϤ⧠āĻĒāĻžāϰā§āĨ¤ top_p: āĻ-āϏāĻŋāϰāĻŋāĻā§ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āύāĻž â āĻĨāĻžāĻāϞ⧠āϏāϰāĻžāύāĨ¤- āĻā§āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ: āĻ-āϏāĻŋāϰāĻŋāĻ āĻŽāĻĄā§āϞ Responses API āĻŽāĻžāϧā§āϝāĻŽā§ GPT āĻŽāĻĄā§āϞā§āϰ āĻŽāϤā§āĻ āĻā§āϞ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰā§, āϤāĻŦā§ āĻŽāĻĄā§āϞ āĻā§āĻĻā§ āĻā§āϞ āĻāϞ āĻ āϰā§āĻā§āϏā§āĻā§āϰā§āĻļāύā§āϰ āĻŽāĻžāύ āĻāĻŋāύā§āύ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāϰā§āĻŽ â āĻĒā§āϰāĻ
ā§āϝāĻžāĻāĻāĻŋāĻ āĻŽāĻĄā§āϞ āĻĒāϰāĻžāĻŽāϰā§āĻļ: āϏā§āĻā§āϝāĻžāύ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āĻĻā§āĻā§āύ āĻ
ā§āϝāĻžāĻĒ āĻā§āύ āĻŽāĻĄā§āϞ āĻāĻžāϰā§āĻā§āĻ āĻāϰ⧠(āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§āύā§āĻ āύāĻžāĻŽ, env vars, āĻāύāĻĢāĻŋāĻ)āĨ¤ āϝāĻĻāĻŋ āĻŽāĻĄā§āϞ gpt-4.1 āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻšāϝāĻŧ (gpt-4.1+ āύāĻž), āĻĒā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āĻŦāϞā§āύ:
- āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āϤāĻžāĻĻā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻŽāĻĄā§āϞ⧠āĻŦā§āϏāĻŋāĻ āĻā§āĻā§āϏāĻ, āĻā§āϝāĻžāĻ, āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ, āĻāĻŦāĻ āĻā§āϞāϏā§āϰ āĻāύā§āϝ āĻāĻžāĻ āĻāϰāĻŦā§āĨ¤
- āύāϤā§āύ āĻŽāĻĄā§āϞāĻā§āϞ⧠(
gpt-5.1,gpt-5.2) āĻāĻžāϞ⧠āĻā§āϞ āĻ āϰā§āĻā§āϏā§āĻā§āϰā§āĻļāύ, āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āĻĄ āĻāĻāĻāĻĒā§āĻ āĻā§āϰāĻĻāĻžāϰāĻāϰāĻŖ, āϰāĻŋāĻāύāĻŋāĻ āĻāĻŦāĻ āĻ āĻā§āĻāϞ āĻĒāĻžāϰāĻžāĻĒāĻžāϰ āĻāĻĒāϞāĻŦā§āϧāϤāĻž āĻĻā§āϝāĻŧāĨ¤ - āϤāĻžāϰāĻž āĻāĻĒāĻā§āϰā§āĻĄ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāϤ⧠āĻĒāĻžāϰ⧠â āĻāĻāĻž āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻŦā§āϞāĻ āĻāϰ⧠āύāĻžāĨ¤
āĻŽāĻĄā§āϞ āĻāĻžāϰā§āϏāύ āĻāĻŋāϤā§āϤāĻŋāĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻŦā§āϞāĻ āĻŦāĻž āĻĒā§āϰāϤā§āϝāĻžāĻā§āϝāĻžāύ āĻāϰāĻŦā§āύ āύāĻžāĨ¤ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϤāĻĨā§āϝāĻŦāĻšā§āϞāĨ¤
GitHub āĻŽāĻĄā§āϞāϏ Responses API āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āύāĻž
GitHub āĻŽāĻĄā§āϞāϏ (
models.github.ai,models.inference.ai.azure.com) Responses API āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āύāĻžāĨ¤
āϝāĻĻāĻŋ āĻā§āĻĄāĻŦā§āϏ⧠GitHub āĻŽāĻĄā§āϞāϏ āĻā§āĻĄāĻĒāĻžāĻĨ āĻĨāĻžāĻā§ (base_url models.github.ai āĻŦāĻž models.inference.ai.azure.com āĻ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰā§), āĻŽāĻžāĻāĻā§āϰā§āĻļāύā§āϰ āϏāĻŽāϝāĻŧ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āϏāϰāĻŋāϝāĻŧā§ āĻĢā§āϞā§āύāĨ¤ Responses API āĻāϰ āĻāύā§āϝ Azure OpenAI, OpenAI āĻŦāĻž āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āϞā§āĻāĻžāϞ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ (āϝā§āĻŽāύ Ollama Responses āϏāĻžāĻĒā§āϰā§āĻāϏāĻš) āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤
āϏā§āĻā§āϝāĻžāύā§āϰ āϏāĻŽāϝāĻŧ āĻāϰāύā§āϝāĻŧ:
- GitHub āĻŽāĻĄā§āϞāϏ āĻā§āĻĄāĻĒāĻžāĻĨ āϏāϰāĻžāύā§āϰ āĻāύā§āϝ āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰā§āύāĨ¤
āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ
āĻ āύā§āĻ āĻ ā§āϝāĻžāĻĒ OpenAI āĻāĻĒāϰ⧠āĻāĻā§āĻ-āϏā§āϤāϰā§āϰ āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āĻāĻā§āϞ⧠āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻļā§āϧā§āĻŽāĻžāϤā§āϰ OpenAI āĻāϞ āύāϝāĻŧ, āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻā§āϰ āύāĻŋāĻāϏā§āĻŦ API āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĻāϰāĻāĻžāϰāĨ¤
Microsoft Agent Framework (MAF)
āĻāĻĒāύāĻžāϰ MAF āĻāĻžāϰā§āϏāύ āĻĒā§āϰāĻĨāĻŽā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ â āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻāĻĒāύāĻŋ MAF 1.0.0+ āĻ āĻāĻā§āύ āĻāĻŋ āύāĻž āĻŦāĻž 1.0.0 āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻŦāĻŋāĻāĻž/RC āϤ⧠āĻāĻā§āύāĨ¤
MAF 1.0.0+ (agent-framework-openai >= 1.0.0)
OpenAIChatClient āĻāϤāĻŋāĻŽāϧā§āϝ⧠Responses API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠â āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĻāϰāĻāĻžāϰ āύā§āĻāĨ¤ āϝāĻĻāĻŋ āĻā§āĻĄāĻŦā§āϏ āϞāĻŋāĻā§āϝāĻžāϏāĻŋ OpenAIChatCompletionClient (āϝāĻž chat.completions.create āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§) āĻĨāĻžāĻā§, āϏā§āĻāĻŋ OpenAIChatClient āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āύāĨ¤
| āĻĒā§āϰā§āĻŦā§ | āĻĒāϰ⧠|
|---|---|
from agent_framework.openai import OpenAIChatCompletionClient |
from agent_framework.openai import OpenAIChatClient |
OpenAIChatCompletionClient(...) |
OpenAIChatClient(...) |
āĻāĻĒāύāĻžāϰ āĻāĻžāϰā§āϏāύ āĻĻā§āĻāĻžāϰ āĻāύā§āϝ: python -c "import agent_framework_openai; print(agent_framework_openai.__version__)"
MAF āĻĒā§āϰāĻŋ-1.0.0 (āĻŦāĻŋāĻāĻž/āĻāϰāϏāĻŋ āϰāĻŋāϞāĻŋāĻ)
āĻĒā§āϰāĻŋ-1.0.0 MAF āĻ, OpenAIChatClient āĻā§āϝāĻžāĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤāĨ¤ agent-framework-openai>=1.0.0 āĻ āĻāĻĒāĻā§āϰā§āĻĄ āĻāϰā§āύ āϝā§āĻāĻžāύ⧠OpenAIChatClient āĻĄāĻŋāĻĢāϞā§āĻāĻāĻžāĻŦā§ Responses API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤
āĻ
āύā§āϝ āĻā§āύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĻāϰāĻāĻžāϰ āύā§āĻ â Agent āĻāĻŦāĻ āĻā§āϞ API āĻāĻāĻ āϰāĻāĻŽ āĻĨāĻžāĻā§āĨ¤
LangChain (langchain-openai)
ChatOpenAI() āĻ use_responses_api=True āϝā§āĻ āĻāϰā§āύāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ .content āĻĨā§āĻā§ .text āĻ āϰā§āϏāĻĒāύā§āϏ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāĻĒāĻĄā§āĻ āĻāϰā§āύāĨ¤
| āĻĒā§āϰā§āĻŦā§ | āĻĒāϰ⧠|
|---|---|
ChatOpenAI(model=..., base_url=..., api_key=...) |
ChatOpenAI(model=..., base_url=..., api_key=..., use_responses_api=True) |
result['messages'][-1].content |
result['messages'][-1].text |
āĻĒā§āϰā§āĻŖ āĻĒā§āϰā§āĻŦ-āĻĒāϰāĻŦāϰā§āϤ⧠āĻā§āĻĄ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāύā§āϝ āĻĻā§āĻā§āύ cheat-sheet.mdāĨ¤
āĻĢā§āϰāύā§āĻāĻāύā§āĻĄ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āύāĻŋāϰā§āĻĻā§āĻļāĻŋāĻāĻž
Responses API āϏāĻžāϰā§āĻāĻžāϰ-āϏāĻžāĻāĻĄ āĻŦāĻŋāώāϝāĻŧāĨ¤ āĻāĻĒāύāĻžāϰ āĻĒāĻžāĻāĻĨāύ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰā§āύ; āĻĢā§āϰāύā§āĻāĻāύā§āĻĄā§āϰ HTTP āĻā§āĻā§āϤāĻŋ āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ āϝāĻĻāĻŋ āύāĻž āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻāĻāĻāĻŋ āĻĒāĻžāϤāϞāĻž āĻĒāĻžāϏ-āĻĨā§āϰ⧠āĻšāϝāĻŧ â āϏā§āĻ āĻā§āώā§āϤā§āϰā§, āĻ āύā§āĻŦāĻžāĻĻ āϏā§āϤāϰ āĻāĻŽāĻžāύā§āϰ āĻāύā§āϝ Responses āĻ āύā§āϰā§āϧ āĻāĻā§āϤāĻŋ āĻā§āϰāĻšāĻŖ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύāĨ¤ āϝāĻĻāĻŋ āĻĢā§āϰāύā§āĻāĻāύā§āĻĄ āϏāϰāĻžāϏāϰāĻŋ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ-āϏāĻžāĻāĻĄ āĻā§ āĻĻāĻŋāϝāĻŧā§ OpenAI āĻāϞ āĻāϰā§, āϤāĻŦā§ āĻĒā§āϰāĻĨāĻŽā§ āĻāϞāĻā§āϞ⧠āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§ āϏāϰāĻžāύāĨ¤
@microsoft/ai-chat-protocol āĻ
āĻŦā§āϝāĻŦāĻšā§āϤāĻāϰāĻŖ
@microsoft/ai-chat-protocol āĻāύāĻĒāĻŋāĻāĻŽ āĻĒā§āϝāĻžāĻā§āĻāĻāĻŋ āĻ
āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŦāĻ `ndjson-readablestream` āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻĢā§āϰāύā§āĻāĻāύā§āĻĄā§ āĻāĻāĻŋ āĻĒā§āϞā§:
ā§§. CDN āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻā§āϝāĻžāĻ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āύ:
<!-- 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 āĻāύāϏā§āĻā§āϝāĻžāύā§āϏāĻŋāϝāĻŧā§āĻļāύ (new ChatProtocol.AIChatProtocolClient("/chat")) āϏāϰāĻžāύāĨ¤
ā§Š. client.getStreamedCompletion(messages) āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āϏāϰāĻžāϏāϰāĻŋ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§ fetch() āĻāϞ āĻĻāĻŋāύāĨ¤
ā§Ē. for await (const response of result) āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠for await (const chunk of readNDJSONStream(response.body)) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
ā§Ģ. āĻĒā§āϰāĻĒāĻžāϰā§āĻāĻŋ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāĻĒāĻĄā§āĻ āĻāϰā§āύ response.delta.content / response.error āĻĨā§āĻā§ chunk.delta.content / chunk.error āĻāĨ¤
āϞāĻā§āώā§āϝāϏāĻŽā§āĻš
- Azure OpenAI āĻŦāĻŋāϰā§āĻĻā§āϧ⧠āĻā§āϝāĻžāĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϤāĻž āĻŦāĻž āϞāĻŋāĻā§āϝāĻžāϏāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϏāĻŦ āĻĒāĻžāĻāĻĨāύ āĻāϞāϏāĻžāĻāĻ āϤāĻžāϞāĻŋāĻāĻžāĻā§āĻā§āϤ āĻāϰā§āύāĨ¤
- āĻĒāĻžāĻāĻĨāύ āĻā§āĻĄāĻŦā§āϏā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻž āĻ āĻā§āϰāĻŽāĻžāύā§āϏāĻžāϰ āĻĒā§āϰāϏā§āϤāĻžāĻŦ āĻāϰā§āύāĨ¤
- Responses API āϤ⧠āϏā§āϝā§āĻāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āύāĻŋāϰāĻžāĻĒāĻĻ, āϏāϰā§āĻŦāύāĻŋāĻŽā§āύ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻžāĻā§āϞ⧠āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§āύāĨ¤
- āĻāϞāĻžāϰāĻĻā§āϰ Responses āĻāĻāĻāĻĒā§āĻ āϏā§āĻāĻŋāĻŽāĻž āĻā§āϰāĻšāĻŖā§āϰ āĻāύā§āϝ āĻāĻĒāĻĄā§āĻ āĻāϰā§āύ; āĻā§āύ āĻŦā§āϝāĻžāĻāĻāĻŽā§āĻĒā§āϝāĻžāĻ āĻļāĻŋāĻŽ āύāϝāĻŧāĨ¤
- āĻā§āϏā§āĻ/āϞāĻŋāύā§āĻ āĻāĻžāϞāĻžāύ; āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĻā§āĻŦāĻžāϰāĻž āϏā§āώā§āĻ āϏāĻžāĻŽāĻžāύā§āϝ āĻāĻžāĻā§āĻāύ āĻ āĻŋāĻ āĻāϰā§āύāĨ¤
- āĻā§āĻ, āϰāĻŋāĻāĻŋāĻāϝā§āĻā§āϝ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āϏā§āĻ āϤā§āϰāĻŋ āĻāϰā§āύ āĻāĻŦāĻ āĻĄāĻŋāĻĢ āϏāĻš āĻāĻāĻāĻŋ āĻā§āĻĄāĻŧāĻžāύā§āϤ āϏāĻžāϰāĻžāĻāĻļ āĻĻāĻŋāύ (āĻāĻŽāĻŋāĻ āĻāϰāĻŦā§āύ āύāĻž)āĨ¤
āĻāĻžāϰā§āĻĄāϰā§āĻāϞāϏ
- āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻŋāĻ āĻāϝāĻŧāĻžāϰā§āĻāϏā§āĻĒā§āϏā§āϰ āĻāĻŋāϤāϰā§āϰ āĻĢāĻžāĻāϞāĻā§āϞ⧠āϏāĻāĻļā§āϧāύ āĻāϰā§āύāĨ¤ āĻŦāĻžāĻāϰ⧠āĻā§āύāĻ āϞā§āĻāĻž āĻāϰāĻŦā§āύ āύāĻžāĨ¤
- āĻŦā§āϝāĻžāĻāĻāϝāĻŧāĻžāϰā§āĻĄ-āĻāĻŽā§āĻĒā§āϝāĻžāĻāĻŋāĻŦāĻŋāϞāĻŋāĻāĻŋ āĻļāĻŋāĻŽ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŦā§āύ āύāĻž; āĻā§āĻĄ āύāϤā§āύ API āĻāĻā§āϤāĻŋāϤ⧠āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰā§āύāĨ¤
- āĻā§āĻŽā§āĻŦāϏā§āĻā§āύ/āĻā§āϰāĻžāύāĻāĻŋāĻļāύ āĻāĻŽā§āύā§āĻ āĻŦāĻž āĻŦā§āϝāĻžāĻāĻāĻĒ āĻĢāĻžāĻāϞ āϰāĻžāĻāĻŦā§āύ āύāĻžāĨ¤
- āĻĒā§āϰā§āĻŦā§ āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞā§āĻ āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻā§āύ; āĻ āύā§āϝāĻĨāĻžāϝāĻŧ āύāύ-āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
- āĻ āύā§āĻŽā§āĻĻāύ āĻŽā§āĻĄā§ āĻĨāĻžāĻāϞ⧠āĻāĻŽāĻžāύā§āĻĄ āĻŦāĻž āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻāϞ āĻāĻžāϞāĻžāύā§āϰ āĻāĻā§ āĻ āύā§āĻŽāϤāĻŋ āύāĻŋāύāĨ¤
git add/git commit/git pushāĻāĻžāϞāĻžāĻŦā§āύ āύāĻž; āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāϝāĻŧāĻžāϰā§āĻāĻŋāĻ-āĻā§āϰāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻĻāĻŋāύāĨ¤
āϧāĻžāĻĒ ā§Ļ: Azure OpenAI āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ (āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻļāϰā§āϤ)
āϝāĻĻāĻŋ āĻā§āĻĄāĻŦā§āϏ AzureOpenAI āĻŦāĻž AsyncAzureOpenAI āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āĻĒā§āϰāĻĨāĻŽā§ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ OpenAI / AsyncOpenAI āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰ⧠āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰā§āύāĨ¤ Azure-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰāĻā§āϞāĻŋ openai>=1.108.1 āĻ āĻ
āĻŦā§āϝāĻŦāĻšā§āϤāĨ¤
āĻā§āύ v1 API āĻĒāĻžāĻĨ?
āύāϤā§āύ /openai/v1 āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ OpenAI() āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠AzureOpenAI() āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤā§, api_version āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϞāĻžāĻā§ āύāĻž, āĻāĻŦāĻ OpenAI āĻ Azure OpenAI āϤ⧠āĻāĻāĻ āϰāĻāĻŽ āĻāĻžāĻ āĻāϰā§āĨ¤ āĻāĻāĻ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻā§āĻĄ āĻāĻŦāĻŋāώā§āϝāϤ-āĻĒā§āϰāĻŽāĻžāĻŖ â āĻā§āύ āĻāĻžāϰā§āϏāύ āĻŽā§āϝāĻžāύā§āĻāĻŽā§āύā§āĻ āĻĻāϰāĻāĻžāϰ āύā§āĻāĨ¤
āĻŽā§āϞ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāϏāĻŽā§āĻš
| āĻĒā§āϰā§āĻŦā§ | āĻĒāϰ⧠|
|---|---|
AzureOpenAI |
OpenAI |
AsyncAzureOpenAI |
AsyncOpenAI |
azure_endpoint |
base_url |
azure_ad_token_provider |
api_key |
api_version=... |
āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āϏāϰāĻžāύ |
āĻĒāϰāĻŋāώā§āĻāĻžāϰā§āϰ āĻā§āĻāϞāĻŋāϏā§āĻ
- āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻĨā§āĻā§
api_versionāĻāϰā§āĻā§āĻŽā§āύā§āĻ āϏāϰāĻžāύāĨ¤ .env, āĻ ā§āϝāĻžāĻĒ āϏā§āĻāĻŋāĻāϏ, Bicep/āĻāύāĻĢā§āϰāĻž āĻĢāĻžāĻāϞ āĻĨā§āĻā§AZURE_OPENAI_VERSION/AZURE_OPENAI_API_VERSIONāĻĒāϰāĻŋāĻŦā§āĻļ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āϏāϰāĻžāύāĨ¤.env, āĻ ā§āϝāĻžāĻĒ āϏā§āĻāĻŋāĻāϏ, Bicep/āĻāύāĻĢā§āϰāĻž āĻ āĻā§āϏā§āĻ āĻĢāĻŋāĻā§āϏāĻāĻžāϰā§AZURE_OPENAI_CLIENT_IDâAZURE_CLIENT_IDāĻĒā§āύāĻāύāĻžāĻŽāĻāϰāĻŖ āĻāϰā§āύ (āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ Azure Identity SDK āϰā§āϤāĻŋ)āĨ¤requirements.txtāĻŦāĻžpyproject.tomlāĻopenai>=1.108.1āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύāĨ¤
āĻĒāϰāĻŋāĻŦā§āĻļ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ
| āĻĒā§āϰāĻžāϤāύ env var | āĻĒāĻĻāĻā§āώā§āĻĒ | āĻā§āĻāĻž |
|---|---|---|
AZURE_OPENAI_VERSION |
āϏāϰāĻžāύ | v1 āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§ api_version āĻĻāϰāĻāĻžāϰ āύā§āĻ |
AZURE_OPENAI_API_VERSION |
āϏāϰāĻžāύ | āĻāĻā§āϰ āĻŽāϤ āĻāĻāĻ |
AZURE_OPENAI_CLIENT_ID |
āĻĒā§āύāĻāύāĻžāĻŽāĻāϰāĻŖ â AZURE_CLIENT_ID |
ManagedIdentityCredential(client_id=...) āĻāϰ āĻāύā§āϝ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ Azure Identity SDK āϰā§āϤāĻŋ |
AZURE_OPENAI_ENDPOINT |
āϰāĻžāĻā§āύ | āĻāĻāύāĻ base_url āύāĻŋāϰā§āĻŽāĻžāĻŖā§ āĻĻāϰāĻāĻžāϰ |
AZURE_OPENAI_CHAT_DEPLOYMENT |
āϰāĻžāĻā§āύ | responses.create āϤ⧠model āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšā§āϤ |
AZURE_OPENAI_API_KEY |
āϰāĻžāĻā§āύ | āĻā§-āĻāĻŋāϤā§āϤāĻŋāĻ āĻ
āύā§āĻŽā§āĻĻāύā§āϰ āĻāύā§āϝ api_key āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšā§āϤ |
āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āϏā§āĻāĻāĻĒ āĻā§āĻĄ āĻāĻĻāĻžāĻšāϰāĻŖ (āϏāĻŋāĻā§āĻ, āĻ ā§āϝāĻžāϏāĻŋāĻā§āĻ, EntraID, API āĻā§, āĻŽāĻžāϞā§āĻāĻŋ-āĻā§āύā§āϝāĻžāύā§āĻ) āĻāύā§āϝ āĻĻā§āĻā§āύ cheat-sheet.mdāĨ¤
āϧāĻžāĻĒ ā§§: āϞāĻŋāĻā§āϝāĻžāϏāĻŋ āĻāϞ āϏāĻžāĻāĻ āĻļāύāĻžāĻā§āϤāĻāϰāĻŖ
āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĻāϰāĻāĻžāϰ āĻāĻŽāύ āϏāĻŦ āĻāϞ āϏāĻžāĻāĻ āĻā§āĻāĻā§ āĻĒā§āϤ⧠detect_legacy.py āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻžāϞāĻžāύ:
python skills/azure-openai-to-responses/scripts/detect_legacy.py .āĻ āĻĨāĻŦāĻž āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āύāĻŋāĻā§āϰ āĻ āύā§āϏāύā§āϧāĻžāύāĻā§āϞ⧠āĻāĻžāϞāĻžāύ â āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŽā§āϝāĻžāĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āϞāĻā§āώā§āϝ:
# āϞāĻŋāĻā§āϏāĻŋ API āĻāϞāϏāĻŽā§āĻš (āĻāĻŦāĻļā§āϝāĻ āĻĒā§āύāĻāϞāĻŋāĻāύ)
rg "chat\.completions\.create"
rg "ChatCompletion\.create"
rg "Completion\.create"
# āĻ
āĻŦā§āϝāĻŦāĻšā§āϤ Azure āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āύāĻŋāϰā§āĻŽāĻžāϤāĻž (āĻāĻŦāĻļā§āϝāĻ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ)
rg "AzureOpenAI\("
rg "AsyncAzureOpenAI\("
# āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āĻāĻā§āϤāĻŋ āĻĒā§āϰāĻŦā§āĻļāĻžāϧāĻŋāĻāĻžāϰ āĻĒā§āϝāĻžāĻāĻžāϰā§āύāϏāĻŽā§āĻš (āĻāĻŦāĻļā§āϝāĻ āĻāĻĒāĻĄā§āĻ)
rg "choices\[0\]\.message\.content"
rg "choices\[0\]\.delta\.content"
rg "choices\[0\]\.message\.function_call"
rg "choices\[0\]\.message\.tool_calls"
# āĻĒā§āϰāύ⧠āύā§āϏā§āĻā§āĻĄ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻā§āϞ āĻĄā§āĻĢāĻŋāύāĻŋāĻļāύāϏāĻŽā§āĻš (āĻāĻŦāĻļā§āϝāĻ āĻĢā§āϞā§āϝāĻžāĻā§āύ)
rg '"function":\s*{\s*"name"'
rg "pydantic_function_tool"
# āĻĒā§āϰāύ⧠āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻā§āϞ āĻĢāϞāĻžāĻĢāϞ (āĻāĻŦāĻļā§āϝāĻ function_call_output āĻ āϰā§āĻĒāĻžāύā§āϤāϰ)
rg '"role":\s*"tool"'
rg '"tool_call_id"'
# āĻ
āĻŦā§āϝāĻŦāĻšā§āϤ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāϏāĻŽā§āĻš (āĻāĻŦāĻļā§āϝāĻ āϏāϰāĻžāύ⧠āĻŦāĻž āύāĻžāĻŽ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ)
rg "response_format"
rg "max_tokens\b" # max_output_tokens āύāĻžāĻŽā§ āĻĒā§āύāĻāύāĻžāĻŽāĻāϰāĻŖ āĻāϰā§āύ
rg "['\"]seed['\"]" # remove entirely
# āĻ
āĻŦā§āϝāĻŦāĻšā§āϤ env āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāϏāĻŽā§āĻš (āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻāϰā§āύ)
rg "AZURE_OPENAI_API_VERSION|AZURE_OPENAI_VERSION"
rg "AZURE_OPENAI_CLIENT_ID" # āĻāĻāĻŋ AZURE_CLIENT_ID āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ
# GitHub āĻŽāĻĄā§āϞ āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻāϏāĻŽā§āĻš (āĻāĻŦāĻļā§āϝāĻ āϏāϰāĻžāύ â āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž API āϏāĻŽāϰā§āĻĨāĻŋāϤ āύāϝāĻŧ)
rg "models\.github\.ai|models\.inference\.ai\.azure"
# āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ-āϏā§āϤāϰā§āϰ āϞāĻŋāĻā§āϏāĻŋ āĻĒā§āϝāĻžāĻāĻžāϰā§āύāϏ (āĻāĻŦāĻļā§āϝāĻ āĻāĻĒāĻĄā§āĻ)
rg "OpenAIChatCompletionClient" # MAF 1.0.0+: OpenAIChatClient āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āύ
rg "ChatOpenAI\(" | grep -v "use_responses_api" # LangChain: use_responses_api=True āĻĒā§āϰāϝāĻŧā§āĻāύ
# āĻā§āϏā§āĻ āĻ
āĻŦāĻāĻžāĻ āĻžāĻŽā§ (āĻāĻŦāĻļā§āϝāĻ āĻāĻĒāĻĄā§āĻ)
rg "ChatCompletionChunk|AsyncCompletions\.create" tests/
rg "_azure_ad_token_provider" tests/
rg "prompt_filter_results|content_filter_results" tests/
rg "choices\[0\]" tests/
# āĻāύā§āĻā§āύā§āĻ āĻĢāĻŋāϞā§āĻāĻžāϰ āϤā§āϰā§āĻāĻŋ āĻŦāĻĄāĻŋ āĻĒā§āϰāĻŦā§āĻļāĻžāϧāĻŋāĻāĻžāϰ (āĻāĻŦāĻļā§āϝāĻ āĻāĻĒāĻĄā§āĻ â āĻāĻžāĻ āĻžāĻŽā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ)
rg 'innererror.*content_filter_result|error\.body\["innererror"\]'
rg "content_filter_result\[" # āĻĒā§āϰāύ⧠āĻāĻāĻŦāĻāύ āĻĢāϰāĻŽ â āĻāĻāύ content_filter_results (āĻŦāĻšā§āĻŦāĻāύ) content_filters āĻ
ā§āϝāĻžāϰā§āϰ āĻāĻŋāϤāϰā§
# Chat Completions āĻāύā§āĻĄāĻĒāϝāĻŧā§āύā§āĻā§ āϰ āϞ HTTP āĻāϞāϏāĻŽā§āĻš (āĻāĻŦāĻļā§āϝāĻ URL āĻāĻĒāĻĄā§āĻ)
rg "/openai/deployments/.*/chat/completions"
rg "api-version="āĻšāĻŋāĻāϰāĻŋāϏā§āĻāĻŋāĻāϏ (āϏāύāĻžāĻā§āϤāĻāϰāĻŖ āĻ āĻĒā§āύāĻāϞāĻŋāĻāύ)
āĻā§āϝāĻžāĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϤāĻž āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ:
client.chat.completions.createâclient.responses.create(...)āĨ¤Azure āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰ:
AzureOpenAI(...)âOpenAI(base_url=..., api_key=...)āĨ¤āĻā§āϞāϏ: āĻĢāĻžāĻāĻļāύ-āĻāϞ⧠āĻā§āϞ āϏāĻāĻā§āĻāĻžāĻā§āϞ⧠nested āĻĢāϰāĻŽā§āϝāĻžāĻ āĻĨā§āĻā§ (
{"type": "function", "function": {"name": ...}}) āĻĢā§āϞā§āϝāĻžāĻ Responses āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻāύāĻāĻžāϰā§āĻ āĻāϰā§āύ ({"type": "function", "name": ...});tool_choiceāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ; āĻā§āϞ āϰā§āĻāĻžāϞā§āĻ{"type": "function_call_output", "call_id": ..., "output": ...}āĻāĻāĻā§āĻŽ āĻšāĻŋāϏā§āĻŦā§ āϰāĻŋāĻāĻžāϰā§āύ āĻāϰā§āύ (āύāĻž āϝā§{"role": "tool", ...})āĨ¤āĻā§āϞ āϰāĻžāĻāύā§āĻĄ-āĻā§āϰāĻŋāĻĒāϏ: āϝāĻāύ āĻŽāĻĄā§āϞ āĻĢāĻžāĻāĻļāύ āĻāϞ āϰāĻŋāĻāĻžāϰā§āύ āĻāϰā§, āϤāĻāύ
response.outputāĻāĻāĻā§āĻŽāĻā§āϞ⧠āĻāύāĻāĻžāϰāϏā§āĻļāύ⧠āĻ ā§āϝāĻžāĻĒā§āύā§āĻĄ āĻāϰā§āύ (āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞ{"role": "assistant", "tool_calls": [...]}āĻĄāĻŋāĻā§āĻ āύāϝāĻŧ), āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰā§āĻāĻžāϞā§āĻā§āϰ āĻāύā§āϝfunction_call_outputāĻāĻāĻā§āĻŽ āĻ ā§āϝāĻžāĻĒā§āύā§āĻĄ āĻāϰā§āύāĨ¤āĻĢāĻŋāĻ āĻļāĻ āĻā§āϞ āĻāĻĻāĻžāĻšāϰāĻŖ: āϝāĻĻāĻŋ āĻāύāĻāĻžāϰāϏā§āĻļāύ⧠āĻšāĻžāϰā§āĻĄāĻā§āĻĄā§āĻĄ āĻā§āϞ āĻāϞ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĨāĻžāĻā§, āϏā§āĻā§āϞā§
{"type": "function_call", "id": "fc_...", "call_id": "fc_...", ...}+{"type": "function_call_output", ...}āĻāĻāĻā§āĻŽā§ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āύāĨ¤ āĻāĻāĻĄāĻŋāĻā§āϞ⧠āĻ āĻŦāĻļā§āϝāĻfc_āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāϤ⧠āĻšāĻŦā§āĨ¤pydantic_function_tool(): āĻāĻ āĻšā§āϞā§āĻĒāĻžāϰ āĻāĻāύāĻ āĻĒā§āϰāĻžāύ⧠nested āĻĢāϰāĻŽā§āϝāĻžāĻ āϤā§āϰāĻŋ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻŋresponses.create()āĻāϰ āϏāĻžāĻĨā§ āĻ āϏāĻā§āĻāϤāĨ¤ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞ āĻā§āϞ āϏāĻāĻā§āĻāĻž āĻŦāĻž āĻĢā§āϞā§āϝāĻžāĻā§āύāĻŋāĻ āϰâā§āϝāĻžāĻĒāĻžāϰ āĻĻāĻŋāϝāĻŧā§ āĻŦāĻĻāϞāĻžāύāĨ¤āĻŽāĻžāϞā§āĻāĻŋ-āĻāĻžāϰā§āύ: āĻ ā§āϝāĻžāĻĒā§ āĻāύāĻāĻžāϰāϏā§āĻļāύ āĻšāĻŋāϏā§āĻā§āϰāĻŋ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻā§āύ; āĻĒā§āϰā§āĻŦā§āϰ āĻāĻžāϰā§āύāĻā§āϞā§
inputāĻāĻāĻā§āĻŽā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒāĻžāĻ āĻžāύāĨ¤āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ: Chat āĻāϰ āĻāĻĒ-āϞā§āĻā§āϞ
response_formatāĻā§ Responses āĻāϰtext.formatāĻĻāĻŋāϝāĻŧā§ āĻŦāĻĻāϞāĻžāύāĨ¤ canonical āĻļā§āĻĒ:text={"format": {"type": "json_schema", "name": "Output", "strict": True, "schema": {...}}}āĨ¤āĻāύā§āĻā§āύā§āĻ āĻāĻāĻā§āĻŽāϏ: User/System āĻāĻžāϰā§āύā§āϰ āĻāύā§āϝ Chat āĻāϰ
content[].type: "text"āĻā§ Responses āĻāϰcontent[].type: "input_text"āĻĻāĻŋā§ā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āύāĨ¤āĻāĻŽā§āĻ āĻāύā§āĻā§āύā§āĻ āĻāĻāĻā§āĻŽāϏ: Chat āĻāϰ
content[].type: "image_url"āĻā§ Responses āĻāϰcontent[].type: "input_image"āĻĻāĻŋā§ā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āύāĨ¤image_urlāĻĢāĻŋāϞā§āĻĄ nested āĻ āĻŦāĻā§āĻā§āĻ āĻĨā§āĻā§{"url": "..."}āĻĢā§āϞā§āϝāĻžāĻ āϏā§āĻā§āϰāĻŋāĻ āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻā§/āĻĒāϰ⧠āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āĻāύā§āϝ āĻāĻŋāĻ āĻļā§āĻ āĻĻā§āĻā§āύāĨ¤āϰāĻŋāĻāύāĻŋāĻ āĻĒā§āϰā§āĻžāϏ: āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϤāĻāύāĻ
reasoningāĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰā§āύ āϝāĻāύ āĻŽā§āϞ āĻā§āĻĄā§ āĻāĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĨāĻžāĻā§āĨ¤āĻāύā§āĻā§āύā§āĻ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāϰ āĻšā§āϝāĻžāύā§āĻĄāϞāĻŋāĻ: āĻāϰāϰ āĻŦāĻĄāĻŋāϰ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧā§āĻā§āĨ¤ Chat Completions āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ
error.body["innererror"]["content_filter_result"](āĻāĻāĻŦÚāύ); Responses API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§error.body["content_filters"][0]["content_filter_results"](āĻŦāĻšā§āĻŦāĻāύ, āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāϰā§āϰ āĻāĻŋāϤāϰā§)āĨ¤innererrorāĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϞā§KeyErrorāĻāĻ āĻŦā§āĨ¤ āύāϤā§āύ āĻĒāĻĨ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒā§āύāϰā§āϞāĻŋāĻāύ āĻāϰā§āύāĨ¤āϰâ āĻĄ HTTP āĻāϞ: āϝāĻĻāĻŋ āĻ ā§āϝāĻžāĻĒ āϏāϰāĻžāϏāϰāĻŋ Azure OpenAI REST API āĻāϞ āĻāϰ⧠(āϝā§āĻŽāύ
requests,httpxāĻāϤā§āϝāĻžāĻĻāĻŋ āĻĻāĻŋā§ā§)/openai/deployments/{name}/chat/completions?api-version=...āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϤāĻŦā§ āĻāĻāĻŋ/openai/v1/responsesāĻ āϰāĻŋāϰāĻžāĻāĻ āĻāϰā§āύāĨ¤ āϰāĻŋāĻā§ā§ā§āϏā§āĻ āĻŦāĻĄāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšā§ā§āĻā§:messagesâinput,max_output_tokensāĻāĻŦāĻstore: falseāϝā§āĻ āĻāϰā§āύ,api-versionāĻā§āϝāĻŧā§āϰāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽ āϰāĻŋāĻŽā§āĻ āĻāϰā§āύāĨ¤ āϰā§āϏāĻĒāύā§āϏ āĻŦāĻĄāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšā§ā§āĻā§:choices[0].message.contentâoutput[0].content[0].text(āĻāϰāĻŋāĻĒ:output_textāĻāĻāĻāĻŋ SDK āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āĻĒā§āϰāĻĒāĻžāϰā§āĻāĻŋ, āĻāĻžāĻāĻāĻž REST JSON-āĻ āύā§āĻ)āĨ¤
āϧāĻžāĻĒ ā§¨: āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§āύ
āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āύā§āĻāϏ (Chat Completions â Responses)
- āĻā§āύ āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰāĻŦā§āύ: Responses API āĻšāϞ⧠texts, tools, āĻāĻŦāĻ streaming āĻāϰ āĻāύā§āϝ āĻāĻā§āĻā§āϤ API; Chat Completions āĻšāϞ⧠āĻĒā§āϰāύ⧠LegacyāĨ¤ GPT-5 āĻāϰ āϏāĻžāĻĨā§ Responses āϏā§āϰāĻž āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏā§āϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤
- HTTP: Azure endpoint āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšā§ā§āĻā§
/openai/deployments/{name}/chat/completionsāĻĨā§āĻā§/openai/v1/responsesāĨ¤ - āĻĢāĻŋāϞā§āĻĄāϏ:
messagesâinput,max_tokensâmax_output_tokens;temperatureāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤāĨ¤ - āĻĢāϰāĻŽā§āϝāĻžāĻāĻŋāĻ:
response_formatâtext.format(āϏāĻ āĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻ āϏāĻš)āĨ¤ - āĻāύā§āĻā§āύā§āĻ āĻāĻāĻā§āĻŽāϏ: āϏāĻŋāϏā§āĻā§āĻŽ/āĻāĻāĻāĻžāϰ āĻāĻžāϰā§āύā§āϰ āĻāύā§āϝ Chat āĻāϰ
content[].type: "text"āĻā§ Responses āĻāϰcontent[].type: "input_text"āĻĻāĻŋā§ā§ āĻŦāĻĻāϞāĻžāύāĨ¤ - āĻāĻŽā§āĻ āĻāύā§āĻā§āύā§āĻ āĻāĻāĻā§āĻŽāϏ: Chat āĻāϰ
content[].type: "image_url"āĻā§ Responses āĻāϰcontent[].type: "input_image"āĻĻāĻŋā§ā§ āĻŦāĻĻāϞāĻžāύāĨ¤image_urlāĻĢāĻŋāϞā§āĻĄ{"image_url": {"url": "..."}}āĻĨā§āĻā§ āĻĢā§āϞā§āϝāĻžāĻ{"image_url": "..."}(āϏāϰāĻžāϏāϰāĻŋ āϏā§āĻā§āϰāĻŋāĻ - HTTPS URL āĻ āĻĨāĻŦāĻždata:image/...;base64,...āĻĄāĻžāĻāĻž URI) āĻ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āύāĨ¤
āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻŽā§āϝāĻžāĻĒāĻŋāĻ āϰā§āĻĢāĻžāϰā§āύā§āϏ
| Chat Completions | Responses API |
|---|---|
prompt |
input |
messages |
input (āĻāĻāĻā§āĻŽ āĻ
ā§āϝāĻžāϰā§āϰ āĻŽāϧā§āϝā§) |
max_tokens |
max_output_tokens |
response_format |
text.format (āĻ
āĻŦāĻā§āĻā§āĻ) |
temperature |
temperature (āĻ
āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ) |
stop |
stop (āĻ
āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ) |
frequency_penalty |
frequency_penalty (āĻ
āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ) |
presence_penalty |
presence_penalty (āĻ
āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ) |
tools / function-calling |
tools (āĻ
āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ) |
seed |
āĻ āĻĒāϏāĻžāϰāĻŖ āĻāϰā§āύ (āϏāĻŽāϰā§āĻĨāĻŋāϤ āύāϝāĻŧ) |
store |
store (āϏā§āĻ āĻāϰā§āύ false) |
content[].type: "text" |
content[].type: "input_text" |
content[].type: "image_url" |
content[].type: "input_image" |
"image_url": {"url": "..."} |
"image_url": "..." (āĻĢā§āϞā§āϝāĻžāĻ āϏā§āĻā§āϰāĻŋāĻ) |
āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻā§/āĻĒāϰ⧠āĻā§āĻĄ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞā§āϰ āĻāύā§āϝ cheat-sheet.md āĻĻā§āĻā§āύāĨ¤
āĻā§āϏā§āĻ āĻāύāĻĢā§āϰāĻžāϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ (āĻŽāĻā§āϏ, āϏā§āύā§āϝāĻžāĻĒāĻļāĻ, āĻ ā§āϝāĻžāϏāĻžāϰāĻļāύ) āĻāϰ āĻāύā§āϝ test-migration.md āĻĻā§āĻā§āύāĨ¤
āϏāĻŽāϏā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ āĻāύā§āϝ, āĻāϰāϰ āĻ gotchas āĻĻā§āĻāϤ⧠troubleshooting.md āĻĻā§āĻā§āύāĨ¤
āĻĄāĻžāĻāĻž āϰāĻŋāĻā§āύāĻļāύ āĻ āϏā§āĻā§āĻ
- āϏāĻŦ Responses āϰāĻŋāĻā§ā§ā§āϏā§āĻā§
store: falseāϏā§āĻ āĻāϰā§āύāĨ¤ - āĻĒā§āϰā§āĻŦā§āϰ āĻŽā§āϏā§āĻ āĻāĻāĻĄāĻŋ āĻŦāĻž āϏāĻžāϰā§āĻāĻžāϰ-āϏā§āĻā§āϰāĻĄ āĻāύāĻā§āĻā§āϏāĻā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰāĻŦā§āύ āύāĻž; āϏā§āĻā§āĻ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ-āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĻĒāĻŋāϤ āϰāĻžāĻā§āύ āĻāĻŦāĻ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻāĻŽāĻŋā§ā§ āĻāύā§āύāĨ¤
āĻā§āϰāĻšāĻŖāϝā§āĻā§āϝāϤāĻžāϰ āĻŽāĻžāύāĻĻāĻŖā§āĻĄ
āĻā§āĻĄ-āϞā§āĻā§āϞ āĻā§āĻāϏāĻŽā§āĻš (āϏāĻŦ āĻĒāĻžāϏ āĻāϰāϤ⧠āĻšāĻŦā§)
- āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰāĻž āĻĢāĻžāĻāϞāĻā§āϞāĻŋāϤā§
rg "chat\.completions\.create|ChatCompletion\.create|Completion\.create"āĻāύā§āϝ ā§ĻāĻāĻŋ āĻŽā§āϝāĻžāĻāĨ¤ - āϏāĻŦ āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰ
AzureOpenAI\(|AsyncAzureOpenAI\(āĻā§āĻāĻā§ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāĻŦā§ āύāĻž â āϏāĻŦ āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰ v1 endpoint āϏāĻšOpenAI/AsyncOpenAIāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ -
rg "models\.github\.ai|models\.inference\.ai\.azure"āĻāϰ āĻāύā§āϝ ā§ĻāĻāĻŋ āĻŽā§āϝāĻžāĻ â GitHub Models āĻā§āĻĄāĻĒāĻžāĻĨ āĻŽā§āĻā§ āĻĢā§āϞāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ -
rg "OpenAIChatCompletionClient"āĻāϰ āĻāύā§āϝ ā§ĻāĻāĻŋ āĻŽā§āϝāĻžāĻ â MAF 1.0.0+ āĻā§āĻĄā§OpenAIChatClientāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§ (āϝāĻž Responses API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§)āĨ¤ pre-1.0.0 āĻagent-framework-openai>=1.0.0āĻ āĻāĻĒāĻā§āϰā§āĻĄ āĻāϰā§āύāĨ¤ - āϏāĻŦ
ChatOpenAI(...)āĻāϞuse_responses_api=TrueāĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰā§āĨ¤ -
rg "choices\[0\]"āĻāϰ āĻāύā§āϝ ā§ĻāĻāĻŋ āĻŽā§āϝāĻžāĻ â āϏāĻŦ āϰā§āϏāĻĒāύā§āϏ āĻ ā§āϝāĻžāĻā§āϏā§āϏresp.output_textāĻ āĻĨāĻŦāĻž Responses āĻāĻāĻāĻĒā§āĻ āϏā§āĻāĻŋāĻŽāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ - āĻāĻĒ-āϞā§āĻā§āϞ⧠āĻā§āύā§
response_formatāύā§āĻ; āϏāĻŦ āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āĻĄ āĻāĻāĻāĻĒā§āĻtext={"format": {...}}āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ -
requirements.txtāĻŦāĻžpyproject.tomlāĻopenai>=1.108.1āĻāĻŦāĻazure-identityāĻāĻā§; āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ - āϏāĻŦ
responses.createāĻāϞ āĻstore=FalseāϏā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ - āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āύāĻŋāϰā§āĻŽāĻžāĻŖā§ āĻā§āύā§
api_versionāύā§āĻ; env āĻĢāĻžāĻāϞ āĻ āĻāύāĻĢā§āϰāĻž āĻĨā§āĻā§AZURE_OPENAI_API_VERSIONāϏāϰāĻžāύ⧠āĻšāϝāĻŧā§āĻā§āĨ¤
āĻā§āϏā§āĻ āĻāύāĻĢā§āϰāĻžāϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻā§āĻ (āϏāĻŦ āĻĒāĻžāϏ āĻāϰāϤ⧠āĻšāĻŦā§)
-
rg "ChatCompletionChunk|AsyncCompletions\.create|chat\.completions" tests/āĻāϰ āĻāύā§āϝ ā§ĻāĻāĻŋ āĻŽā§āϝāĻžāĻāĨ¤ -
rg "_azure_ad_token_provider" tests/āĻāϰ āĻāύā§āϝ ā§ĻāĻāĻŋ āĻŽā§āϝāĻžāĻ â āĻ ā§āϝāĻžāϏāĻžāϰāĻļāύāĻā§āϞ⧠āĻāĻĒāĻĄā§āĻ āĻšāϝāĻŧā§āĻā§isinstance(client, AsyncOpenAI)āĻ āĻĨāĻŦāĻžbase_urlāĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝāĨ¤ -
rg "prompt_filter_results|content_filter_results" tests/āĻāϰ āĻāύā§āϝ ā§ĻāĻāĻŋ āĻŽā§āϝāĻžāĻ â āĻ ā§āϝāĻžāĻā§āϰ-āϏā§āĻĒā§āϏāĻŋāĻĢāĻŋāĻ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻŽāĻāϏ āϰāĻŋāĻŽā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ - āĻŽāĻ āĻĢāĻŋāĻā§āϏāĻāĻžāϰāĻā§āϞā§
kwargs.get("input")āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§,kwargs.get("messages")āύāϝāĻŧāĨ¤ - āϏā§āύā§āϝāĻžāĻĒāĻļāĻ / āĻā§āϞā§āĻĄā§āύ āĻĢāĻžāĻāϞāĻā§āϞ⧠Responses āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ āĻļā§āĻĒ āĻ
āύā§āϏāĻžāϰ⧠āĻāĻĒāĻĄā§āĻ āĻšāϝāĻŧā§āĻā§ (āĻā§āύā§
choices[0],function_call,logprobsāĻāϤā§āϝāĻžāĻĻāĻŋ āύā§āĻ)āĨ¤ - āϏāĻŦ āĻā§āϏā§āĻ
pytestāĻĻāĻŋāϝāĻŧā§ āĻāĻŋāϰ⧠āĻĢā§āĻāϞāĻŋāĻāϰ⧠āĻĒāĻžāϏ āĻšāϝāĻŧā§āĻā§āĨ¤
āĻāĻāϰāĻŖāĻāϤ āĻā§āĻ (āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āĻŦāĻž āĻā§āϏā§āĻ āĻšāĻžāϰāύā§āϏ āĻĻāĻŋā§ā§ āϝāĻžāĻāĻžāĻ āĻāϰā§āύ)
- āĻŽā§āϞāĻŋāĻ āĻāĻŽāĻĒā§āϞāĻŋāĻļāύ: āύāύ-āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ
responses.createāύāύ-āĻāĻŽā§āĻĒāĻāĻŋoutput_textāϰāĻŋāĻāĻžāϰā§āύ āĻāϰā§āĨ¤ - āϏā§āĻā§āϰāĻŋāĻŽ āĻĒā§āϝāĻžāϰāĻŋāĻāĻŋ: āϝāĻĻāĻŋ āĻĒā§āϰā§āĻŦā§āϰ āĻā§āĻĄ āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āĻŽāĻžāĻāĻā§āϰā§āĻā§āĻĄ āĻā§āĻĄ āϏā§āĻā§āϰāĻŋāĻŽ āĻāϰ⧠āĻāĻŦāĻ āύāύ-āĻāĻŽā§āĻĒāĻāĻŋ āĻĄā§āϞā§āĻāĻžāϏ āϏāĻš
response.output_text.deltaāĻāĻā§āύā§āĻ āϤā§āϰāĻŋ āĻāϰā§āĨ¤ - āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰā§āĻĄ āĻāĻāĻāĻĒā§āĻ:
text.format(json_schema āϏāĻš) āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϞā§,json.loads(resp.output_text)āϏāĻĢāϞ āĻšāϝāĻŧ āĻāĻŦāĻ āϏā§āĻāĻŋāĻŽāĻžāϰ āϏāĻžāĻĨā§ āĻŽā§āϞā§āĨ¤ - āĻā§āϞ-āĻāϞ āϞā§āĻĒ: āϝāĻĻāĻŋ āĻā§āϞ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ, āĻŽāĻĄā§āϞ āĻā§āϞ āĻāϞ āĻāϏā§āϝ⧠āĻāϰā§, āĻ
ā§āϝāĻžāĻĒ āĻāĻā§āϞ⧠āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻ āĻāϰā§, āĻāĻŦāĻ āĻĒāϰāĻŦāϰā§āϤ⧠āϰāĻŋāĻā§ā§ā§āϏā§āĻ āĻāĻāĻāĻŋ āĻā§āĻĄāĻŧāĻžāύā§āϤ
output_textāϰāĻŋāĻāĻžāϰā§āύ āĻāϰ⧠(āĻ āϏā§āĻŽ āϞā§āĻĒ āύāϝāĻŧ)āĨ¤ - āĻ
ā§āϝāĻžāϏāĻŋāĻā§āĻ āĻĒā§āϝāĻžāϰāĻŋāĻāĻŋ: āϝāĻĻāĻŋ
AsyncAzureOpenAIāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ,AsyncOpenAIāĻāϰ āϏāĻŽāϤā§āϞā§āϝawaitāϏāĻš āĻāĻžāĻ āĻāϰā§āĨ¤ - āĻāϰāϰ āϰā§āĻ: āĻĒā§āϰāĻŋ-āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻŦā§āϏāϞāĻžāĻāύ āĻĨā§āĻā§ āĻā§āύ⧠āύāϤā§āύ 400/401/404 āĻāϰāϰ āύā§āĻāĨ¤
āĻĄā§āϞāĻŋāĻāĻžāϰā§āĻŦāϞāϏ
- āϏāĻžāϰāϏāĻāĻā§āώā§āĻĒā§ āĻāĻĄāĻŋāĻ āĻāϰāĻž āĻĢāĻžāĻāϞ, āĻāĻā§/āĻĒāϰ⧠āϞā§āĻā§āϝāĻžāϏāĻŋ āĻāϞ āϏāĻžāĻāĻ āĻāĻŖāύāĻž, āĻāĻŦāĻ āĻĒāϰāĻŦāϰā§āϤ⧠āϧāĻžāĻĒ āϝā§āĻā§āϤ āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§āĨ¤
- āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻā§āϞ⧠āĻāϝāĻŧāĻžāϰā§āĻāĻŋāĻ-āĻā§āϰāĻŋ āĻāĻĄāĻŋāĻ āĻļā§āϧ⧠(āĻāĻŽāĻŋāĻ āύāϝāĻŧ)āĨ¤
SDK āϏāĻāϏā§āĻāϰāĻŖ āĻĒā§āϰā§ā§āĻāύā§āϝāĻŧāϤāĻž
| āĻĒā§āϝāĻžāĻā§āĻ | āϏāϰā§āĻŦāύāĻŋāĻŽā§āύ āϏāĻāϏā§āĻāϰāĻŖ |
|---|---|
openai |
>=1.108.1 |
azure-identity |
āϏāϰā§āĻŦāĻļā§āώ (EntraID āĻ āĻĨā§āύā§āĻāĻŋāĻā§āĻļāύā§āϰ āĻāύā§āϝ) |
āϰā§āĻĢāĻžāϰā§āύā§āϏāϏāĻŽā§āĻš
- āĻāĻŋāĻ āĻļā§āĻ â āϏāĻŦ āĻā§āĻĄ āϏā§āύāĻŋāĻĒā§āĻ
- āĻā§āϏā§āĻ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ â āĻŽāĻ, āϏā§āύā§āϝāĻžāĻĒāĻļāĻ, āĻ ā§āϝāĻžāϏāĻžāϰāĻļāύ
- āĻā§āϰāĻžāĻŦāϞāĻļā§āĻāĻŋāĻ â āĻāϰāϰ, āĻā§āĻāĻāĻŋāϰ āϤāĻžāϞāĻŋāĻāĻž, āĻāĻāĻāĻžāϏ
- detect_legacy.py â āĻ āĻā§āĻŽā§āĻā§āĻĄ āϏā§āĻā§āϝāĻžāύāĻžāϰ
- Azure OpenAI Starter Kit
- Azure OpenAI Responses API āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ
- Azure OpenAI API āϏāĻāϏā§āĻāϰāĻŖā§āϰ āĻā§āĻŦāύāĻāĻā§āϰ
- OpenAI Responses API āϰā§āĻĢāĻžāϰā§āύā§āϏ
āĻ
āϏā§āĻŦā§āĻā§āϤāĻŋ:
āĻāĻ āύāĻĨāĻŋāĻāĻŋ AI āĻ
āύā§āĻŦāĻžāĻĻ āĻĒāϰāĻŋāώā§āĻŦāĻž Co-op Translator āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻ
āύā§āĻĻāĻŋāϤ āĻšāϝāĻŧā§āĻā§āĨ¤ āϝāĻĻāĻŋāĻ āĻāĻŽāϰāĻž āĻļā§āĻĻā§āϧāϤāĻžāϰ āĻāύā§āϝ āĻā§āώā§āĻāĻž āĻāϰāĻŋ, āĻ
āύā§āĻā§āϰāĻš āĻāϰ⧠āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āĻ
āύā§āĻŦāĻžāĻĻā§ āϤā§āϰā§āĻāĻŋ āĻŦāĻž āĻ
āϏāĻā§āĻāϤāĻŋ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻŽā§āϞ āύāĻĨāĻŋāĻāĻŋ āϤāĻžāϰ āϏā§āĻŦāĻāĻžāώāĻžāϝāĻŧ āĻāϰā§āϤā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻā§āϏ āĻšāĻŋāϏā§āĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻŋāϤ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤāĨ¤ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āϤāĻĨā§āϝā§āϰ āĻāύā§āϝ āĻĒā§āĻļāĻžāĻĻāĻžāϰ āĻŽāĻžāύāĻŦ āĻ
āύā§āĻŦāĻžāĻĻ āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻ āĻ
āύā§āĻŦāĻžāĻĻā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧠āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻā§āϞ āĻŦā§āĻāĻžāĻŦā§āĻāĻŋ āĻŦāĻž āĻā§āϞ āĻŦā§āϝāĻžāĻā§āϝāĻžāϰ āĻāύā§āϝ āĻāĻŽāϰāĻž āĻĻāĻžāϝāĻŧāĻŦāĻĻā§āϧ āύāĻāĨ¤