Sohbet

Sohbet tamamlamaları

OpenAI'ın Chat Completions API'si, tüm metin modelleri için: aynı istek ve yanıt, aynı akış, aynı SDK'lar.

POST/v1/chat/completions

İstek

modelstringzorunlu
Modeller sayfasından bir model kimliği, örneğin claude-opus-5-5 veya gpt-6-sol.
messagesarrayzorunlu
Konuşma: system (veya developer), user, assistant ve tool mesajları. content bir metin dizesi veya görsel, PDF, ses ya da video eklemek için parçalardan oluşan bir dizidir.
streamboolean
Yanıtı oluşturulurken sunucu tarafından gönderilen olaylar olarak iletir. Aşağıdaki Akış bölümüne bakın.
stream_optionsobject
{ "include_usage": true }, token kullanımını içeren son bir parça ekler.
max_completion_tokensinteger
Akıl yürütme dahil, üretilecek en fazla token sayısı. max_tokens da kullanılabilir.
temperaturenumber
0 ile 2 arasında. Düşük değerler daha odaklı, yüksek değerler daha çeşitli yanıtlar üretir. Bazı akıl yürütme modelleri bunu dikkate almaz. Opus 4.7 ve sonrasındaki Claude modelleri (Opus 5 ve 5.5, Fable 5 ve 5.1, Sonnet 5.5, Haiku 5.5) bunu kabul etmediği için bu modellerde isteğe eklemiyoruz.
top_pnumber
Çekirdek örnekleme, 0 ile 1 arasında. Ya bunu ya da temperature değerini değiştirin, ikisini birden değil. Aynı Claude modellerinde isteğe eklenmez; top_k da bu modellerde ve Muse Wonder'da isteğe eklenmez.
stopstring | array
Üretimi durduran en fazla 4 dizi.
toolsarray
Modelin çağırabileceği fonksiyonlar. Aşağıdaki Araç çağırma bölümüne bakın.
tool_choicestring | object
auto, none, required veya belirli bir fonksiyon. Modelin geliştiricisi bunlardan birini reddediyor ya da dikkate almıyorsa (Claude Opus 5.5, Sonnet 5.5 ve Fable 5.1'de zorunlu araç kullanımı; Muse Wonder'da auto dışındaki her seçenek; bazı Gemini, DeepSeek Flash, MiMo, HY4 ve MiniMax modellerinde none), bunu modelin uyacağı bir biçimde gönderir ve modelden ne istediğinizi belirtiriz; adıyla zorunlu kılınan bir fonksiyon, sunulan tek fonksiyon olarak gönderilir.
response_formatobject
JSON çıktısı: { "type": "json_object" } veya bir şemayla birlikte json_schema. Aşağıdaki Yapılandırılmış çıktı bölümüne bakın.
reasoning_effortstring
Bir akıl yürütme modelinin ne kadar yoğun düşüneceği: none, minimal, low, medium, high, xhigh veya max. Her model bunların bazılarını kabul eder (aşağıdaki Akıl yürütme bölümüne bakın); başka bir düzey seçilirse desteklediği en yakın düzeyde çalışır. Daha yüksek düzeyler daha uzun düşünür ve daha fazla çıktı token'ı harcar.
seedinteger
Destekleyen modellerde, mümkün olduğunca tekrarlanabilir sonuçlar.
modelsarray
Bu istek için akıllı yönlendirme: model kullanılamıyorsa sırayla denenecek alternatifler. Bkz. Akıllı yönlendirme.
Diğer OpenAI parametreleri, bizde kalan user ve metadata dışında modele değiştirilmeden iletilir. Modelin hangilerini uyguladığı (araçlar, JSON şemaları, akıl yürütme), kendi sağlayıcısında olduğu gibi modele bağlıdır. OpenAI Python SDK ile models değerini extra_body={"models": [...]} olarak gönderin.

Yanıt

Yanıt
{
"id": "chatcmpl-AbC123...",
"object": "chat.completion",
"created": 1790870400,
"model": "claude-opus-5-5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Here's the summary..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1204,
"completion_tokens": 312,
"total_tokens": 1516,
"prompt_tokens_details": { "cached_tokens": 1024 },
"completion_tokens_details": { "reasoning_tokens": 128 }
}
}
  • model, yanıt veren modeldir. Akıllı yönlendirme bir alternatifle yanıt vermediyse, istediğiniz modeldir.
  • Akıl yürüten modeller mesaja reasoning_content ekleyebilir: modelin paylaştığı düşünme sürecidir.
  • usage, ücretlendirilen kullanımdır. cached_tokens, modelin istem önbelleğinden okunan girdi tokenlarıdır; modelin önbellek fiyatı varsa bu fiyat üzerinden ücretlendirilir.

Her yanıtta şu başlıklar da bulunur:

BaşlıkDeğer
x-request-idİstek günlüğünüzde görünen istek kimliği. Destek ekibiyle iletişime geçerken bu kimliği belirtin.
x-zurelay-modelYanıt veren model.
x-zurelay-routed-fromYalnızca akıllı yönlendirme sonrasında: istediğiniz model.
x-zurelay-reasoning-effortYalnızca istekte bir akıl yürütme seviyesi belirtildiyse: modelin çalıştığı seviye, yani desteklediği en yakın seviye (bkz. Akıl yürütme).
x-zurelay-stoppedYalnızca bakiye veya anahtarın bütçesi işlem sırasında tükendiyse ya da daha fazlasını karşılayamadıkları için düşürülen max_tokens sınırına ulaşıldıysa: insufficient_quota, key_budget_exceeded veya key_daily_budget_exceeded. Yanıt, o ana kadar yazılanları finish_reason: "length" ile içerir.

Akış

stream: true ile yanıt, OpenAI’ın parça biçiminde sunucu tarafından gönderilen olaylar olarak gelir ve data: [DONE] ile biter. Tüm SDK’lar bunları sizin için okur.

import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.zurelay.com/v1",
api_key=os.environ["ZURELAY_API_KEY"],
)
stream = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[
{
"role": "user",
"content": "Write a limerick about databases."
}
],
stream=True,
stream_options={
"include_usage": True
},
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
  • Model ilk tokenını üretmeden yanıt gönderilmez; böylece yeniden deneme veya başka bir yola geçiş sizin tarafınızda görünmez.
  • Sessiz aralıklarda (model adımlar arasında düşünürken) her 15 saniyede bir SSE yorum satırları (: keep-alive) gönderilir. İstemciler bunları yok sayar; bu satırlar proxy’lerin bağlantıyı kapatmasını önler. İlk tokenın gelmesi 20 saniyeden uzun sürerse (uzun bir istem veya takılıp değiştirilen bir yol nedeniyle), akış o anda açılır: siz beklerken başlıklar ve bağlantıyı açık tutan yorumlar gelir. Sonraki yol denenmeden önce her yola başlaması için en fazla 3 dakika (yüksek akıl yürütme çabasında 5) tanınır; bu nedenle istemcinizin zaman aşımını 10 dakika olarak ayarlayın.
  • İlk tokenından önce açılan bir akış, yalnızca başka bir model yanıt veremiyorsa (akıllı yönlendirme kapalıysa) x-zurelay-model içerir. Akış açıldıktan sonra oluşan bir hata ise hata durum kodu yerine akış içinde bir hata olayı olarak gelir (hata gövdesiyle aynı yapıda).
  • include_usage ile [DONE] öncesindeki son parça, boş bir choices listesi ve usage içerir.

Araç çağırma

Fonksiyonları tools içinde tanımlayın; model birini çağırmak istediğinde metin yerine tool_calls ile yanıt verir. Fonksiyonu çalıştırın, sonucu çağrının kimliğiyle birlikte bir tool mesajı olarak geri gönderin; model devam eder.

import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.zurelay.com/v1",
api_key=os.environ["ZURELAY_API_KEY"],
)
response = client.chat.completions.create(
model="gpt-6-sol",
messages=[
{
"role": "user",
"content": "What's the weather in Lisbon right now?"
}
],
tools=[
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Current weather for a city",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
]
}
}
}
],
)
print(response.choices[0].message.content)

Yapılandırılmış çıktı

response_format ile JSON isteyin. json_schema, destekleyen modellerin şemanıza uymasını sağlar; json_object ise geçerli herhangi bir JSON ister (bunu isteminizde de belirtin).

import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.zurelay.com/v1",
api_key=os.environ["ZURELAY_API_KEY"],
)
response = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[
{
"role": "user",
"content": "Extract the people: 'Ana met Ben and Chloe in Porto.'"
}
],
response_format={
"type": "json_schema",
"json_schema": {
"name": "people",
"schema": {
"type": "object",
"properties": {
"names": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"names"
]
}
}
},
)
print(response.choices[0].message.content)

Akıl yürütme

Akıl yürüten modeller yanıt vermeden önce düşünür. Hız ve maliyet ile derinlik arasındaki dengeyi reasoning_effort ile ayarlayın: daha yüksek seviye, daha uzun düşünür, daha fazla zaman alır ve daha çok çıktı tokenı kullanır. Her model, kendi sağlayıcısının belgelediği seviyeleri destekler: none (düşünme yok) ile başlayıp minimal, low, medium, high ve xhigh (ekstra yüksek) üzerinden max seviyesine uzanır; aşağıdaki tabloda bunlar listelenmiştir. Belirtmezseniz model varsayılan seviyesini kullanır. Tüm OpenAI SDK’larında aynı şekilde çalışır; her seviyeyi kontrol panelindeki Deneme Alanı bölümünde deneyebilirsiniz.

from openai import OpenAI
client = OpenAI(base_url="https://api.zurelay.com/v1", api_key="YOUR_ZURELAY_KEY")
response = client.chat.completions.create(
model="zurelay-auto",
reasoning_effort="high",
messages=[{"role": "user", "content": "How many primes are there below 1,000?"}],
)
message = response.choices[0].message
print(getattr(message, "reasoning_content", None)) # the thinking, when the model shares it
print(message.content)

Düşünme sürecini paylaşan modellerde bu süreç, yanıtla birlikte message.reasoning_content içinde (akış sırasında delta.reasoning_content içinde) döner; bazıları bu alanı reasoning olarak adlandırır. Çıktı tokenı olarak ücretlendirilir ve her zaman completion_tokens kapsamındadır; model ayrıca raporluyorsa completion_tokens_details.reasoning_tokens bunu ayrı sayar. Yüksek çaba seviyesinde yanıtın başlaması dakikalar alabilir; bu nedenle istemcinize yeterince uzun bir zaman aşımı tanıyın (bkz. Güvenilirlik ve zaman aşımları).

Model bazında seviyeler

Her sağlayıcının kendi belgelerine dayanır. Modelin desteklemediği bir seviye, desteklediği en yakın seviyede çalışır (eşit uzaklıktaki iki seviyeden düşük olan seçilir; düşünme ise yalnızca none gönderdiğinizde kapanır). Böylece tek bir istek, akıllı yönlendirme dahil tüm modellerde çalışır. x-zurelay-reasoning-effort yanıt başlığı, hangi seviyenin kullanıldığını belirtir. Seviye olmayan bir kelime, modelin seviyelerini listeleyen bir 400 ile reddedilir.

ModelIDSeviyelerVarsayılan
Abliterated Large V2abliterated-large-v2low, high, maxmax
Claude Fable 5claude-fable-5low, medium, high, xhigh, maxhigh
Claude Fable 5.1claude-fable-5-1low, medium, high, xhigh, maxhigh
Claude Haiku 5.5claude-haiku-5-5low, medium, high, xhigh, maxmedium
Claude Opus 4.6claude-opus-4-6low, medium, high, maxBir düzey seçene kadar kapalı
Claude Opus 4.7claude-opus-4-7low, medium, high, xhigh, maxBir düzey seçene kadar kapalı
Claude Opus 4.8claude-opus-4-8low, medium, high, xhigh, maxBir düzey seçene kadar kapalı
Claude Opus 5claude-opus-5low, medium, high, xhigh, maxhigh
Claude Opus 5.5claude-opus-5-5low, medium, high, xhigh, maxmedium
Claude Sonnet 5.5claude-sonnet-5-5low, medium, high, xhigh, maxhigh
DeepSeek V4 Flashdeepseek-v4-flashnone, high, maxhigh
DeepSeek V4 Flash 0731deepseek-v4-flash-0731none, low, high, maxhigh
DeepSeek V4 Pro 0813deepseek-v4-pro-0813none, low, high, maxhigh
DeepSeek V4.1 Flashdeepseek-v4.1-flashnone, high, maxhigh
DeepSeek V4.1 Flash 1017deepseek-v4.1-flash-1017none, high, maxhigh
Gemini 3.1 Flash-Litegemini-3.1-flash-liteminimal, low, medium, highminimal
Gemini 3.1 Progemini-3.1-prolow, medium, highhigh
Gemini 3.5 Flash-Litegemini-3.5-flash-liteminimal, low, medium, highminimal
Gemini 3.7 Flashgemini-3.7-flashlow, medium, highmedium
Gemini 3.8 Flashgemini-3.8-flashlow, medium, highmedium
Gemini 4 Argongemini-4-argonlow, medium, highmedium
GLM-5.2glm-5.2none, high, maxmax
GLM-5.3glm-5.3low, high, maxmax
GLM-5.3 Flashglm-5.3-flashlow, high, maxmax
GLM-5.3 FlashXglm-5.3-flashxlow, high, maxmax
GPT-5.6 Lunagpt-5.6-lunanone, low, medium, high, xhigh, maxmedium
GPT-5.6 Solgpt-5.6-solnone, low, medium, high, xhigh, maxmedium
GPT-5.6 Terragpt-5.6-terranone, low, medium, high, xhigh, maxmedium
GPT-6 Astragpt-6-astralow, medium, high, xhigh, maxmedium
GPT-6 Lunagpt-6-lunanone, low, medium, high, xhigh, maxmedium
GPT-6 Solgpt-6-solnone, low, medium, high, xhigh, maxmedium
GPT-6.1 Solgpt-6.1-sollow, medium, high, xhigh, maxmedium
GPT-6.1 Terragpt-6.1-terranone, low, medium, high, xhigh, maxmedium
Grok 4.7grok-4.7low, medium, high, xhighhigh
HY4 Previewhy4-previewnone, highhigh
Kimi K2.5kimi-k2.5none, highhigh
Kimi K2.6kimi-k2.6none, highhigh
Kimi K3kimi-k3low, high, maxmax
Kimi K3.1 Prokimi-k3.1-prolow, high, maxmax
Kimi K3.1 Pro Highspeedkimi-k3.1-pro-highspeedlow, high, maxmax
MiMo V2.6 Flashmimo-v2.6-flashnone, highhigh
MiMo V2.6 Promimo-v2.6-pronone, highhigh
MiniMax M3minimax-m3none, highhigh
MiniMax M3.1 Flashminimax-m3.1-flashlow, medium, high, xhigh, maxmax
Muse Spark 1.3 Contributormuse-spark-1.3-contributorminimal, low, medium, high, xhighmedium
Muse Wondermuse-wonder-1.0minimal, low, medium, high, xhigh, maxhigh
Qwen 3.8 Flashqwen3.8-flashnone, low, medium, xhighxhigh
Qwen 3.8 Maxqwen3.8-maxnone, low, medium, xhighxhigh
Qwen 3.8 Omni Flashqwen3.8-omni-flashnone, low, medium, xhighxhigh
Adım 5 Previewstep-5-previewlow, medium, highmedium
Zurelay Autozurelay-autonone, minimal, low, medium, high, xhigh, maxBir düzey seçene kadar kapalı
MiniMax M2.5minimax-m2.5Ayarlanacak bir şey yokHer zaman düşünür
Claude Haiku 4.5claude-haiku-4-5Yok (Anthropic formatında bir düşünme bütçesi)Kapalı
Ministral 3 14Bministral-3-14bYokKapalı
Ministral 3 3Bministral-3-3bYokKapalı

Claude’un düşünme süreci

Bu uç noktada Claude, diğer modeller gibi reasoning_effort kabul eder: low, medium, high, xhigh veya max (Opus 4.6, xhigh desteklemez). Anthropic’in kendi biçiminde Claude, belirlenen seviyede uyarlamalı olarak düşünür: thinking: { type: "adaptive", display: "summarized" } ile birlikte output_config: { effort: "xhigh" } gönderin ve düşünme bloklarını okuyun. Bkz. Anthropic Messages.

Sorunuz mu var, yoksa bir şey mi eksik? Destek ekibimize sorun, genellikle bir dakika içinde e-postayla yanıtlayalım.