Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yanıtlar API'si, Azure OpenAI'den durum bilgisi olan yeni bir API'dir. Sohbet tamamlamaları ve yardımcılar API'sindeki en iyi özellikleri tek bir birleşik deneyimde bir araya getirir. Yanıtlar API'si, computer-use-preview özelliğini destekleyen yeni model için de destek ekler.
Yanıtlar API'si
API desteği
Bölge Kullanılabilirliği
Yanıtlar API'si şu anda aşağıdaki bölgelerde kullanılabilir:
- australiaeast
- Brezilya'nın güneyi
- Kanada Merkezi
- Kanada'nın Doğusu
- eastus
- eastus2
- francecentral
- AlmanyaBatıMerkezi
- italynorth
- japaneast
- Kore Merkezi
- northcentralus
- norwayeast
- polandcentral
- southafricanorth
- southcentralus
- southeastasia
- southindia
- spaincentral
- swedencentral
- switzerlandnorth
- uaenorth
- uksouth
- westus
- westus3
Model desteği
-
gpt-5.1-codex-max(Sürüm:2025-12-04) -
gpt-5.1(Sürüm:2025-11-13) -
gpt-5.1-chat(Sürüm:2025-11-13) -
gpt-5.1-codex(Sürüm:2025-11-13) -
gpt-5.1-codex-mini(Sürüm:2025-11-13) -
gpt-5-pro(Sürüm:2025-10-06) -
gpt-5-codex(Sürüm:2025-09-11) -
gpt-5(Sürüm:2025-08-07) -
gpt-5-mini(Sürüm:2025-08-07) -
gpt-5-nano(Sürüm:2025-08-07) -
gpt-5-chat(Sürüm:2025-08-07) -
gpt-5-chat(Sürüm:2025-10-03) -
gpt-5-codex(Sürüm:2025-09-15) -
gpt-4o(Sürümler:2024-11-20,2024-08-06,2024-05-13) -
gpt-4o-mini(Sürüm:2024-07-18) computer-use-preview-
gpt-4.1(Sürüm:2025-04-14) -
gpt-4.1-nano(Sürüm:2025-04-14) -
gpt-4.1-mini(Sürüm:2025-04-14) -
gpt-image-1(Sürüm:2025-04-15) -
gpt-image-1-mini(Sürüm:2025-10-06) -
o1(Sürüm:2024-12-17) -
o3-mini(Sürüm:2025-01-31) -
o3(Sürüm:2025-04-16) -
o4-mini(Sürüm:2025-04-16)
Yanıtlar API'sinin desteklediği bölgelerde her model kullanılamaz. Model bölgesi kullanılabilirliği için modeller sayfasına bakın.
Note
Şu anda desteklenmiyor:
- Sıkıştırma ile
/responses/compact - Çok aşamalı düzenleme ve akış kullanarak görüntü oluşturma.
- Görüntüler dosya olarak karşıya yüklenemez ve ardından giriş olarak referans gösterilemez.
Aşağıdakilerle ilgili bilinen bir sorun vardır:
- Giriş dosyası olarak PDF artık destekleniyor ancak dosya karşıya yükleme amacını
user_dataolarak ayarlamak şu anda desteklenmiyor. - Arka plan modu akışla kullanıldığında performans sorunları. Sorunun yakında çözülmesi bekleniyor.
Başvuru belgeleri
Yanıtlar API'sini kullanmaya başlama
Yanıtlar API komutlarına erişmek için OpenAI kitaplığı sürümünüzü yükseltmeniz gerekir.
pip install --upgrade openai
Metin yanıtı oluşturma
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
)
response = client.responses.create(
model="gpt-4.1-nano", # Replace with your model deployment name
input="This is a test.",
)
print(response.model_dump_json(indent=2))
Important
API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarı kullanıyorsanız, bunu Azure Key Vault'ta güvenli bir şekilde depolayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
Bir yanıt al
Yanıtlar API'sine önceki bir çağrıdan yanıt almak için.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
)
response = client.responses.retrieve("resp_67cb61fa3a448190bcf2c42d96f0d1a8")
Important
API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarı kullanıyorsanız, bunu Azure Key Vault'ta güvenli bir şekilde depolayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile API anahtarları.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
Yanıtı silme
Varsayılan olarak yanıt verileri 30 gün boyunca saklanır. Bir yanıtı silmek için response.delete ("{response_id}") kullanabilirsiniz
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.delete("resp_67cb61fa3a448190bcf2c42d96f0d1a8")
print(response)
Yanıtları birbirine zincirleme
Önceki yanıttan response.id'yı previous_response_id parametresine geçirerek yanıtları birbirine zincirleyebilirsiniz.
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model="gpt-4o", # replace with your model deployment name
input="Define and explain the concept of catastrophic forgetting?"
)
second_response = client.responses.create(
model="gpt-4o", # replace with your model deployment name
previous_response_id=response.id,
input=[{"role": "user", "content": "Explain this at a level that could be understood by a college freshman"}]
)
print(second_response.model_dump_json(indent=2))
Çıktıdan, second_response API çağrısıyla ilk giriş sorusunu hiç paylaşmamış olsak da, previous_response_id'i ileterek modelin yeni soruyu yanıtlamak için önceki sorunun ve yanıtın bağlamının tamamına sahip olduğunu görebiliriz.
Output:
{
"id": "resp_67cbc9705fc08190bbe455c5ba3d6daf",
"created_at": 1741408624.0,
"error": null,
"incomplete_details": null,
"instructions": null,
"metadata": {},
"model": "gpt-4o-2024-08-06",
"object": "response",
"output": [
{
"id": "msg_67cbc970fd0881908353a4298996b3f6",
"content": [
{
"annotations": [],
"text": "Sure! Imagine you are studying for exams in different subjects like math, history, and biology. You spend a lot of time studying math first and get really good at it. But then, you switch to studying history. If you spend all your time and focus on history, you might forget some of the math concepts you learned earlier because your brain fills up with all the new history facts. \n\nIn the world of artificial intelligence (AI) and machine learning, a similar thing can happen with computers. We use special programs called neural networks to help computers learn things, sort of like how our brain works. But when a neural network learns a new task, it can forget what it learned before. This is what we call \"catastrophic forgetting.\"\n\nSo, if a neural network learned how to recognize cats in pictures, and then you teach it how to recognize dogs, it might get really good at recognizing dogs but suddenly become worse at recognizing cats. This happens because the process of learning new information can overwrite or mess with the old information in its \"memory.\"\n\nScientists and engineers are working on ways to help computers remember everything they learn, even as they keep learning new things, just like students have to remember math, history, and biology all at the same time for their exams. They use different techniques to make sure the neural network doesn’t forget the important stuff it learned before, even when it gets new information.",
"type": "output_text"
}
],
"role": "assistant",
"status": null,
"type": "message"
}
],
"parallel_tool_calls": null,
"temperature": 1.0,
"tool_choice": null,
"tools": [],
"top_p": 1.0,
"max_output_tokens": null,
"previous_response_id": "resp_67cbc96babbc8190b0f69aedc655f173",
"reasoning": null,
"status": "completed",
"text": null,
"truncation": null,
"usage": {
"input_tokens": 405,
"output_tokens": 285,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 690
},
"user": null,
"reasoning_effort": null
}
Yanıtları elle bağlama
Alternatif olarak, aşağıdaki yöntemi kullanarak yanıtları el ile zincirleyebilirsiniz:
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
inputs = [{"type": "message", "role": "user", "content": "Define and explain the concept of catastrophic forgetting?"}]
response = client.responses.create(
model="gpt-4o", # replace with your model deployment name
input=inputs
)
inputs += response.output
inputs.append({"role": "user", "type": "message", "content": "Explain this at a level that could be understood by a college freshman"})
second_response = client.responses.create(
model="gpt-4o",
input=inputs
)
print(second_response.model_dump_json(indent=2))
Streaming
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
input = "This is a test",
model = "o4-mini", # replace with model deployment name
stream = True
)
for event in response:
if event.type == 'response.output_text.delta':
print(event.delta, end='')
Fonksiyon çağırma
Yanıtlar API'si işlev çağrısını destekler.
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model="gpt-4o", # replace with your model deployment name
tools=[
{
"type": "function",
"name": "get_weather",
"description": "Get the weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"},
},
"required": ["location"],
},
}
],
input=[{"role": "user", "content": "What's the weather in San Francisco?"}],
)
print(response.model_dump_json(indent=2))
# To provide output to tools, add a response for each tool call to an array passed
# to the next response as `input`
input = []
for output in response.output:
if output.type == "function_call":
match output.name:
case "get_weather":
input.append(
{
"type": "function_call_output",
"call_id": output.call_id,
"output": '{"temperature": "70 degrees"}',
}
)
case _:
raise ValueError(f"Unknown function call: {output.name}")
second_response = client.responses.create(
model="gpt-4o",
previous_response_id=response.id,
input=input
)
print(second_response.model_dump_json(indent=2))
Kod Yorumlayıcı
Kod Yorumlayıcı aracı, modellerin güvenli, korumalı bir ortamda Python kodu yazmasına ve yürütmesine olanak tanır. Aşağıdakiler dahil olmak üzere bir dizi gelişmiş görevi destekler:
- Çeşitli veri biçimlerine ve yapılara sahip dosyaları işleme
- Veri ve görselleştirmeler içeren dosyalar oluşturma (örneğin, grafikler)
- Sorunları çözmek için kodu yinelemeli olarak yazma ve çalıştırma— modeller başarılı olana kadar kodun hatalarını ayıklayabilir ve yeniden deneyebilir
- Kırpma, yakınlaştırma ve döndürme gibi görüntü dönüşümlerini etkinleştirerek desteklenen modellerde görsel mantığı geliştirme (örneğin, o3, o4-mini)
- Bu araç özellikle veri analizi, matematiksel hesaplama ve kod oluşturma gibi senaryolar için kullanışlıdır.
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses?api-version=preview \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "gpt-4.1",
"tools": [
{ "type": "code_interpreter", "container": {"type": "auto"} }
],
"instructions": "You are a personal math tutor. When asked a math question, write and run code using the python tool to answer the question.",
"input": "I need to solve the equation 3x + 11 = 14. Can you help me?"
}'
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
instructions = "You are a personal math tutor. When asked a math question, write and run code using the python tool to answer the question."
response = client.responses.create(
model="gpt-4.1",
tools=[
{
"type": "code_interpreter",
"container": {"type": "auto"}
}
],
instructions=instructions,
input="I need to solve the equation 3x + 11 = 14. Can you help me?",
)
print(response.output)
Containers
Important
Kod Yorumlayıcısı'nda, Azure OpenAI kullanımı için alınan belirteç tabanlı ücretlerin ötesinde ek ücretler söz konusudur. Yanıtlar API'niz kod yorumlayıcıyı aynı anda iki farklı iş parçacığında çağırırsa, iki kod yorumlayıcı oturumu oluşturulur. Her oturum varsayılan olarak 1 saat boyunca etkindir ve boşta kalma süresi 20 dakikadır.
Kod Yorumlayıcı aracı, modelin Python kodunu yürütebildiği tam korumalı bir sanal makine olan bir kapsayıcı gerektirir. Kapsayıcılar, karşıya yüklenen dosyaları veya yürütme sırasında oluşturulan dosyaları içerebilir.
Kapsayıcı oluşturmak için, yeni bir Yanıt nesnesi oluştururken araç yapılandırmasında belirtin "container": { "type": "auto", "file_ids": ["file-1", "file-2"] } . Bu, otomatik olarak yeni bir kapsayıcı oluşturur veya modelin bağlamında önceki bir code_interpreter_call etkin bir kapsayıcıyı yeniden kullanır. API'nin çıkışında code_interpreter_call oluşturulan öğeyi içerir. 20 dakika boyunca kullanılmazsa bu kapsayıcının süresi sona erer.
Dosya girişleri ve çıkışları
Kod Yorumlayıcı'yı çalıştırırken model kendi dosyalarını oluşturabilir. Örneğin, çizim oluşturmasını veya CSV oluşturmasını isterseniz, bu görüntüler doğrudan kapsayıcınızda oluşturulur. Bu dosyaları sonraki iletisinin ek açıklamalarında alıntı yapacaktır.
Model girişindeki tüm dosyalar kapsayıcıya otomatik olarak yüklenir. Kapsayıcıya açıkça yüklemeniz gerekmez.
Desteklenen Dosyalar
| Dosya biçimi | MIME type |
|---|---|
.c |
text/x-c |
.cs |
text/x-csharp |
.cpp |
text/x-c++ |
.csv |
metin/csv |
.doc |
application/msword |
.docx |
application/vnd.openxmlformats-officedocument.wordprocessingml.document |
.html |
text/html |
.java |
text/x-java |
.json |
application/json |
.md |
text/markdown |
.pdf |
application/pdf |
.php |
text/x-php |
.pptx |
application/vnd.openxmlformats-officedocument.presentationml.presentation |
.py |
text/x-python |
.py |
text/x-script.python |
.rb |
text/x-ruby |
.tex |
text/x-tex |
.txt |
text/plain |
.css |
text/css |
.js |
text/JavaScript |
.sh |
application/x-sh |
.ts |
application/TypeScript |
.csv |
application/csv |
.jpeg |
image/jpeg |
.jpg |
image/jpeg |
.gif |
image/gif |
.pkl |
application/octet-stream |
.png |
image/png |
.tar |
application/x-tar |
.xlsx |
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
.xml |
application/xml veya "text/xml" |
.zip |
application/zip |
Giriş öğelerini listeleme
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.input_items.list("resp_67d856fcfba0819081fd3cffee2aa1c0")
print(response.model_dump_json(indent=2))
Output:
{
"data": [
{
"id": "msg_67d856fcfc1c8190ad3102fc01994c5f",
"content": [
{
"text": "This is a test.",
"type": "input_text"
}
],
"role": "user",
"status": "completed",
"type": "message"
}
],
"has_more": false,
"object": "list",
"first_id": "msg_67d856fcfc1c8190ad3102fc01994c5f",
"last_id": "msg_67d856fcfc1c8190ad3102fc01994c5f"
}
Görüntü girişi
Görüntü işleme özellikli modeller için PNG (.png), JPEG (.jpeg ve .jpg), WEBP (.webp) içindeki görüntüler desteklenir.
Resim url'si
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model="gpt-4o",
input=[
{
"role": "user",
"content": [
{ "type": "input_text", "text": "what is in this image?" },
{
"type": "input_image",
"image_url": "<image_URL>"
}
]
}
]
)
print(response)
Base64 kodlanmış görüntüsü
import base64
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# Path to your image
image_path = "path_to_your_image.jpg"
# Getting the Base64 string
base64_image = encode_image(image_path)
response = client.responses.create(
model="gpt-4o",
input=[
{
"role": "user",
"content": [
{ "type": "input_text", "text": "what is in this image?" },
{
"type": "input_image",
"image_url": f"data:image/jpeg;base64,{base64_image}"
}
]
}
]
)
print(response)
Dosya girişi
Görüntü işleme özelliklerine sahip modeller PDF girişini destekler. PDF dosyaları Base64 ile kodlanmış veriler veya dosya kimlikleri olarak sağlanabilir. Modellerin PDF içeriğini yorumlamasına yardımcı olmak için hem ayıklanan metin hem de her sayfanın görüntüsü modelin bağlamında yer alır. Bu, önemli bilgiler diyagramlar veya metinsel olmayan içerik aracılığıyla iletildiğinde kullanışlıdır.
Note
Ayıklanan tüm metinler ve görüntüler modelin bağlamına yerleştirilir. PDF'leri giriş olarak kullanmanın fiyatlandırma ve belirteç kullanımı üzerindeki etkilerini anladığınızdan emin olun.
Tek bir API isteğinde, birden çok girişe (dosyalar) yüklenen içeriğin boyutu modelin bağlam uzunluğu içinde olmalıdır.
Yalnızca hem metin hem de görüntü girişlerini destekleyen modeller PDF dosyalarını giriş olarak kabul edebilir.
purposeiçinuser_dataşu anda desteklenmiyor. Geçici bir çözüm olarak amacıassistantsolarak ayarlamanız gerekir.
PDF'yi Base64'e dönüştürme ve analiz etme
import base64
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
with open("PDF-FILE-NAME.pdf", "rb") as f: # assumes PDF is in the same directory as the executing script
data = f.read()
base64_string = base64.b64encode(data).decode("utf-8")
response = client.responses.create(
model="gpt-4o-mini", # model deployment name
input=[
{
"role": "user",
"content": [
{
"type": "input_file",
"filename": "PDF-FILE-NAME.pdf",
"file_data": f"data:application/pdf;base64,{base64_string}",
},
{
"type": "input_text",
"text": "Summarize this PDF",
},
],
},
]
)
print(response.output_text)
PDF Yükle ve Analiz Et
PDF dosyasını yükleyin.
purpose için user_data şu anda desteklenmiyor. Geçici bir çözüm olarak amacı assistants olarak ayarlamanız gerekir.
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
# Upload a file with a purpose of "assistants"
file = client.files.create(
file=open("nucleus_sampling.pdf", "rb"), # This assumes a .pdf file in the same directory as the executing script
purpose="assistants"
)
print(file.model_dump_json(indent=2))
file_id = file.id
Output:
{
"id": "assistant-KaVLJQTiWEvdz8yJQHHkqJ",
"bytes": 4691115,
"created_at": 1752174469,
"filename": "nucleus_sampling.pdf",
"object": "file",
"purpose": "assistants",
"status": "processed",
"expires_at": null,
"status_details": null
}
Ardından, değeri id alırsınız ve file_id altında işlenmesi için bir modele geçirirsiniz.
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model="gpt-4o-mini",
input=[
{
"role": "user",
"content": [
{
"type": "input_file",
"file_id":"assistant-KaVLJQTiWEvdz8yJQHHkqJ"
},
{
"type": "input_text",
"text": "Summarize this PDF",
},
],
},
]
)
print(response.output_text)
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/files \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-F purpose="assistants" \
-F file="@your_file.pdf" \
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "gpt-4.1",
"input": [
{
"role": "user",
"content": [
{
"type": "input_file",
"file_id": "assistant-123456789"
},
{
"type": "input_text",
"text": "ASK SOME QUESTION RELATED TO UPLOADED PDF"
}
]
}
]
}'
Uzak MCP sunucularını kullanma
Modelinizi uzak Model Bağlam Protokolü (MCP) sunucularında barındırılan araçlara bağlayarak özelliklerini genişletebilirsiniz. Bu sunucular geliştiriciler ve kuruluşlar tarafından korunur ve Yanıtlar API'si gibi MCP uyumlu istemciler tarafından erişilebilen araçları kullanıma sunar.
Model Bağlam Protokolü (MCP), uygulamaların büyük dil modellerine (LLM) nasıl araç ve bağlamsal veri sağladığını tanımlayan açık bir standarttır. Dış araçların model iş akışlarıyla tutarlı ve ölçeklenebilir bir şekilde tümleştirilmesini sağlar.
Aşağıdaki örnekte, Azure REST API hakkındaki bilgileri sorgulamak için kurgusal MCP sunucusunun nasıl kullanılacağı gösterilmektedir. Bu, modelin depo içeriğini gerçek zamanlı olarak almasına ve bu içerik üzerinde mantık yürütmesine olanak tanır.
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "gpt-4.1",
"tools": [
{
"type": "mcp",
"server_label": "github",
"server_url": "https://contoso.com/Azure/azure-rest-api-specs",
"require_approval": "never"
}
],
"input": "What is this repo in 100 words?"
}'
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model="gpt-4.1", # replace with your model deployment name
tools=[
{
"type": "mcp",
"server_label": "github",
"server_url": "https://contoso.com/Azure/azure-rest-api-specs",
"require_approval": "never"
},
],
input="What transport protocols are supported in the 2025-03-26 version of the MCP spec?",
)
print(response.output_text)
MCP aracı yalnızca Yanıtlar API'sinde çalışır ve tüm yeni modellerde (gpt-4o, gpt-4.1 ve akıl yürütme modellerimiz) kullanılabilir. MCP aracını kullanırken yalnızca araç tanımlarını içeri aktarırken veya araç çağrıları yaparken kullanılan belirteçler için ödeme yapılır; ek ücret uygulanmaz.
Approvals
Varsayılan olarak, Yanıtlar API'si herhangi bir veri uzak bir MCP sunucusuyla paylaşılmadan önce açık bir şekilde onay gerektirir. Bu onay adımı saydamlığı sağlamaya yardımcı olur ve dışarıdan gönderilen bilgiler üzerinde size denetim sağlar.
Uzak MCP sunucularıyla paylaşılan tüm verileri gözden geçirmenizi ve isteğe bağlı olarak denetim amacıyla günlüğe kaydetmenizi öneririz.
Onay gerektiğinde, model yanıt çıkışında bir mcp_approval_request öğe döndürür. Bu nesne bekleyen isteğin ayrıntılarını içerir ve devam etmeden önce verileri incelemenize veya değiştirmenize olanak tanır.
{
"id": "mcpr_682bd9cd428c8198b170dc6b549d66fc016e86a03f4cc828",
"type": "mcp_approval_request",
"arguments": {},
"name": "fetch_azure_rest_api_docs",
"server_label": "github"
}
Uzak MCP çağrısına devam etmek için, mcp_approval_response öğe içeren yeni bir yanıt nesnesi oluşturarak onay isteğine yanıt vermelisiniz. Bu nesne, modelin belirtilen verileri uzak MCP sunucusuna göndermesine izin verme amacınızı onaylar.
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "gpt-4.1",
"tools": [
{
"type": "mcp",
"server_label": "github",
"server_url": "https://contoso.com/Azure/azure-rest-api-specs",
"require_approval": "never"
}
],
"previous_response_id": "resp_682f750c5f9c8198aee5b480980b5cf60351aee697a7cd77",
"input": [{
"type": "mcp_approval_response",
"approve": true,
"approval_request_id": "mcpr_682bd9cd428c8198b170dc6b549d66fc016e86a03f4cc828"
}]
}'
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model="gpt-4.1", # replace with your model deployment name
tools=[
{
"type": "mcp",
"server_label": "github",
"server_url": "https://contoso.com/Azure/azure-rest-api-specs",
"require_approval": "never"
},
],
previous_response_id="resp_682f750c5f9c8198aee5b480980b5cf60351aee697a7cd77",
input=[{
"type": "mcp_approval_response",
"approve": True,
"approval_request_id": "mcpr_682bd9cd428c8198b170dc6b549d66fc016e86a03f4cc828"
}],
)
Authentication
Important
- Yanıtlar API'sinin içindeki MCP istemcisi TLS 1.2 veya üzerini gerektirir.
- karşılıklı TLS (mTLS) şu anda desteklenmemektedir.
- Azure hizmet etiketleri şu anda MCP istemci trafiği için desteklenmiyor.
GitHub MCP sunucusunun aksine, uzak MCP sunucularının çoğu kimlik doğrulaması gerektirir. Yanıtlar API'sindeki MCP aracı, özel üst bilgileri destekler ve ihtiyaç duydukları kimlik doğrulama düzenini kullanarak bu sunuculara güvenli bir şekilde bağlanmanızı sağlar.
API anahtarları, OAuth erişim belirteçleri veya diğer kimlik bilgileri gibi üst bilgileri doğrudan isteğinizde belirtebilirsiniz. En yaygın kullanılan üst bilgi Authorization üst bilgisidir.
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "gpt-4.1",
"input": "What is this repo in 100 words?"
"tools": [
{
"type": "mcp",
"server_label": "github",
"server_url": "https://contoso.com/Azure/azure-rest-api-specs",
"headers": {
"Authorization": "Bearer $YOUR_API_KEY"
}
]
}'
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model="gpt-4.1",
input="What is this repo in 100 words?",
tools=[
{
"type": "mcp",
"server_label": "github",
"server_url": "https://gitmcp.io/Azure/azure-rest-api-specs",
"headers": {
"Authorization": "Bearer $YOUR_API_KEY"
}
]
)
print(response.output_text)
Arka plan görevleri
Arka plan modu, o3 ve o1-pro gibi modelleri kullanarak uzun süre çalışan görevleri zaman uyumsuz olarak çalıştırmanızı sağlar. Bu özellikle Codex veya Deep Research gibi aracılar tarafından işlenenler gibi tamamlanması birkaç dakika sürebilen karmaşık akıl yürütme görevleri için kullanışlıdır.
Arka plan modunu etkinleştirerek, zaman aşımlarından kaçınabilir ve genişletilmiş işlemler sırasında güvenilirliği koruyabilirsiniz.
"background": true ile bir istek gönderildiğinde, görev eşzamansız olarak işlenir ve durumunu periyodik olarak kontrol edebilirsiniz.
Bir arka plan görevi başlatmak için isteğinizde background parametresini true olarak ayarlayın:
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "o3",
"input": "Write me a very long story",
"background": true
}'
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model = "o3",
input = "Write me a very long story",
background = True
)
print(response.status)
GET Arka plan yanıtının durumunu denetlemek için uç noktayı kullanın. Sıra veya işlem devam ederken anket yapmaya devam edin. Yanıt son (terminal) durumuna ulaştığında alınabilir.
curl GET https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses/resp_1234567890 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN"
from time import sleep
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model = "o3",
input = "Write me a very long story",
background = True
)
while response.status in {"queued", "in_progress"}:
print(f"Current status: {response.status}")
sleep(2)
response = client.responses.retrieve(response.id)
print(f"Final status: {response.status}\nOutput:\n{response.output_text}")
Uç noktayı kullanarak cancel devam eden bir arka plan görevini iptal edebilirsiniz. İptal işlemi idempotenttir; sonraki çağrılar son yanıt nesnesini döndürür.
curl -X POST https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses/resp_1234567890/cancel \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN"
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.cancel("resp_1234567890")
print(response.status)
Arka plandaki yanıtları yayınlama
Arka plan yanıt akışını başlatmak için hem background hem de stream değerlerini true olarak ayarlayın. Bağlantının bırakılması durumunda akışı daha sonra sürdürmek istiyorsanız bu yararlı olur. Konumunuzu takip etmek için olayların sequence_number'ını kullanın.
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "o3",
"input": "Write me a very long story",
"background": true,
"stream": true
}'
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
# Fire off an async response but also start streaming immediately
stream = client.responses.create(
model="o3",
input="Write me a very long story",
background=True,
stream=True,
)
cursor = None
for event in stream:
print(event)
cursor = event["sequence_number"]
Note
Arka plan tepkileri, şu anda eşzamanlı yanıtlar ile karşılaştırıldığında daha uzun bir ilk belirteç için yanıt süresine sahiptir. Bu açığı azaltmaya yönelik iyileştirmeler devam ediyor.
Limitations
- Arka plan modu gerektirir
store=true. Durum bilgisi olmayan istekler desteklenmez. - Akışı yalnızca, özgün istek
stream=trueiçeriyorsa sürdürebilirsiniz. - Zaman uyumlu yanıtı iptal etmek için bağlantıyı doğrudan sonlandırın.
Akışı belirli bir noktadan sürdürme
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses/resp_1234567890?stream=true&starting_after=42 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN"
Şifrelenmiş Akıl Yürütme Öğeleri
Yanıtlar API'sini durumsuz modda kullanırken — c0'yı false olarak ayarlayarak veya kuruluşunuzun sıfır veri saklama politikasına kaydolması durumunda — konuşma turlarında mantık bağlamını korumaya devam etmeniz gerekir. Bunu yapmak için API isteklerinize şifreli mantık öğeleri ekleyin.
Öğeler arasındaki mantığı korumak için isteğinizin reasoning.encrypted_content parametresine include ekleyin. Bu, yanıtın, gelecekteki taleplerle aktarılabilecek, akıl yürütme izlemesinin şifreli bir sürümünü içermesini sağlar.
curl https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "o4-mini",
"reasoning": {"effort": "medium"},
"input": "What is the weather like today?",
"tools": [<YOUR_FUNCTION GOES HERE>],
"include": ["reasoning.encrypted_content"]
}'
Görüntü oluşturma (önizleme)
Yanıtlar API'si, konuşmaların ve çok adımlı iş akışlarının bir parçası olarak görüntü oluşturmayı etkinleştirir. Bağlam içindeki görüntü girişlerini ve çıkışlarını destekler ve görüntü oluşturmak ve düzenlemek için yerleşik araçlar içerir.
Tek başına Görüntü API'sine kıyasla Yanıtlar API'sinin çeşitli avantajları vardır:
- Akış: Algılanan gecikme süresini geliştirmek için oluşturma sırasında kısmi görüntü çıkışlarını görüntüleyin.
- Esnek girişler: Ham görüntü baytlarına ek olarak görüntü Dosya Kimliklerini giriş olarak kabul edin.
Note
Yanıtlar API'sinin gpt-image-1-series modelleri tarafından desteklenen görüntü oluşturma aracı yalnızca bu modeller tarafından kullanılır. Ancak bu modeli desteklenen modeller listesinden çağırabilirsiniz: , , , , , , gpt-4ogpt-4o-minive gpt-4.1 serisi modelleri. gpt-4.1-minigpt-4.1-nanoo3gpt-5gpt-5.1
Yanıtlar API'sinin görüntü oluşturma aracı şu anda akış modunu desteklemiyor. Akış modunu kullanmak ve kısmi görüntüler oluşturmak için, doğrudan Yanıtlar API'sinin dışında görüntü oluşturma API'sini çağırın.
GPT Görüntüsü ile konuşma görüntüsü deneyimleri oluşturmak istiyorsanız Yanıtlar API'sini kullanın.
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
default_headers={"x-ms-oai-image-generation-deployment":"gpt-image-1", "api_version":"preview"}
)
response = client.responses.create(
model="o3",
input="Generate an image of gray tabby cat hugging an otter with an orange scarf",
tools=[{"type": "image_generation"}],
)
# Save the image to a file
image_data = [
output.result
for output in response.output
if output.type == "image_generation_call"
]
if image_data:
image_base64 = image_data[0]
with open("otter.png", "wb") as f:
f.write(base64.b64decode(image_base64))
Akıl yürütme modelleri
Yanıtlar API'siyle akıl yürütme modellerinin nasıl kullanılacağına ilişkin örnekler için neden modelleri kılavuzuna bakın.
Bilgisayar kullanımı
Playwright ile bilgisayar kullanımı ayrılmış bilgisayar kullanım modeli kılavuzuna taşındı