Bu makale, deepseek-v4-pro-0813 için kullanım notları ve dikkat edilmesi gereken noktaları kapsar. AIHubMix'te, model Chat Tamamlamaları, Yanıtlar ve Claude-uyumlu Mesajlar API'leri aracılığıyla mevcuttur. Ayrıca bakınız: DeepSeek resmi API belgeleri.
Her bölümdeki "Doğrulanmış" sonuçlar ve örnek yanıtlar, 2026-08-13 tarihinde AIHubMix API'leri (Chat Tamamlamaları / Yanıtlar / Mesajlar) üzerinden yapılan gerçek çağrılardan gelmektedir; "Doğrulanmış" olarak işaretlenmemiş öğeler ise DeepSeek'in resmi belgelerinden alınmıştır.
1. Modelin Konumlandırılması ve Özellikleri
V4 Pro, DeepSeek'in V4 neslinin yüksek seviye katmanıdır (hafif deepseek-v4-flash onun kardeşidir). Yayın hattı, 2026-04-24'teki DeepSeek-V4 Önizlemesine kadar uzanır ve 0813, DeepSeek'in mevcut yapı için atadığı MODEL VERSION etiketidir. Ham özelliklerin ötesinde, onu farklı kılan dört şey vardır:
- Seyrek bir sınır modeli: 1.6T toplam parametre / 49B etkin (bir MoE, yani uzmanların karışımı mimarisi — her çıkarım geçişi yalnızca bir uzman ağları alt kümesini aydınlatır: toplam parametreler bilgi kapasitesini, etkin parametreler ise çağrı başına hesaplama maliyetini belirler). Model kartı, CSA+HCA hibrit dikkati, mHC ve Muon optimizasyonunu listeler.
- MIT altında açık ağırlıklar:
deepseek-ai/DeepSeek-V4-ProMIT lisansı altında HuggingFace'te yayımlanmıştır (en izin verici açık kaynak lisanslarından biri — ticari kullanım ve kapalı kaynak yeniden dağıtım her ikisi de izinlidir) ve kendi kendine barındırılabilir. Bu boyuttaki bir model için MIT alışılmadık bir durumdur. Model kartındaki kendi kendine barındırma notları, Think Max'te (en yüksek düşünme seviyesi) çalışırken ≥384K token'lık bir bağlam penceresi önerir — bu, kendi kendine barındırma için dağıtım kılavuzudur, barındırılan API'nin bir özelliği değildir. - Çok protokollü destek birinci taraf, üçüncü taraf çeviri değildir: DeepSeek kendisi bir OpenAI Chat API'si, bir Anthropic-uyumlu uç nokta (
/anthropic, bu modeliclaude-opus*ile eşleştirir) ve Yanıtlar API'si sunar (DeepSeek, format için yerel destek sağladığını, Codex için uyarlamalarla birlikte belirtir). Ayrıca, ayrı bir uç noktada Beta özelliği olarak FIM (orta kısım doldurma) tamamlama sunar, bu üç AIHubMix API'sinin bir parçası değildir. - Önbellek vuruşu ve önbellek vuruşu fiyatlandırması arasında yaklaşık 120 kat fark: DeepSeek'in yayımlanan fiyatlandırma mekanizması, önbellek vuruşu için $0.003625/M ve önbellek vuruşu olmayan için $0.435/M (çıktı $0.87/M) olarak belirlenmiştir ve önbellekleme otomatik olup ayarlanacak bir parametre yoktur. Uzun önekleri (sistem istemleri, uzun belgeler) yeniden kullanan iş yükleri için, bu fark faturayı belirler. Gerçek perakende fiyatı, model sayfasında gösterilen fiyatlardır.
| Öğe | Değer |
|---|---|
| AIHubMix'teki model adı | deepseek-v4-pro-0813 |
| Bağlam penceresi | 1M token (1,000,000) |
| Maksimum çıktı | Resmi ifade MAX OUTPUT MAXIMUM: 384K (kesin token sayısı ve varsayılan yayınlanmamıştır) |
| Girdi modları | Sadece metin. Yanıtlar uyumluluk sayfası, görüntü ve dosya girdilerinin desteklenmediğini açıkça belirtir; Mesajlar sayfası açıkça type="image" bloklarını Desteklenmiyor olarak işaretler; Chat Tamamlamaları'nda kullanıcı mesajı content yalnızca bir dize kabul eder, çok modlu içerik parçaları yoktur |
| Düşünme modu | Hibrit (düşünme / düşünmeme), varsayılan olarak açık |
| Düşünme seviyeleri | reasoning_effort low / high / max kabul eder, varsayılan high; medium ve xhigh uyumluluk için high'a eşlenmiştir |
| Mevcut API'ler | Chat Tamamlamaları, Yanıtlar, Mesajlar (Claude-uyumlu) |
Doğrulanmış:max_tokens'un aşılması, sessizce kesilmek yerine doğrulama tarafından reddedilir —max_tokens=9999999göndermek HTTP 400 döner ve hata gövdesi alanı adını verir ve tavanı393216olarak belirtir.
# max_tokens=9999999 -> HTTP 400
"...max_tokens... 393216"
❗ Görüntüler hata oluşturmaz, ancak düşürülür: Yanıtlar API'si için resmi ifade "Görüntü ve dosya girdileri desteklenmiyor (input_image parçaları hata oluşturmaz, ancak yer tutucu metinle değiştirilir)" — birinput_imageparçası isteği başlatmaz, yer tutucu metinle değiştirilir. Chat Tamamlamaları'nda kullanıcı mesajıcontentyalnızca bir dize alır ve Mesajlar'datype="image"blokları Desteklenmiyor olarak işaretlenir. Çok modlu yönlendirme oluştururken, "hata yok" durumunu modelin gerçekten görüntüyü gördüğü kanıtı olarak asla değerlendirmeyin.
2. Düşünmeyi Nasıl Kapatırsınız? Üç API, Üç Alan Şekli
V4 Pro varsayılan olarak düşünür: hiç parametre göndermeyin ve yanıt düşünme içeriği ile geri gelir. Düşünmeyi kapatmak, her üç API'de farklı bir alan şekli kullanır.
Chat Tamamlamaları
Üst düzey thinking nesnesini kullanın.
from openai import OpenAI
client = OpenAI(
base_url="https://aihubmix.com/v1",
api_key="<AIHUBMIX_API_KEY>",
)
completion = client.chat.completions.create(
model="deepseek-v4-pro-0813",
messages=[{"role": "user", "content": "2 + 2 nedir?"}],
extra_body={"thinking": {"type": "disabled"}},
)
# Düşünme açık (varsayılan): message.reasoning_content mevcut, reasoning_tokens = 43
# Düşünme kapalı (devre dışı): reasoning_content yok, reasoning_tokens yok
Doğrulanmış:thinking.type="disabled"ile, hemmessage.reasoning_contenthem deusage.completion_tokens_details.reasoning_tokensbirlikte kaybolur, bu da geçişin etkili olduğunu doğrular.
Yanıtlar
Yanıtlar üzerinde ayrı bir anahtar yoktur; düşünmeyi kapatmak, seviyeyi none olarak ayarlamak anlamına gelir.
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="2 + 2 nedir?",
reasoning={"effort": "none"},
)
# effort="none": usage.output_tokens_details.reasoning_tokens = 0
# output[0] doğrudan mesaj öğesidir (akıl yürütme öğesi yok)
# effort ayarlanmamış: çıktı her zaman bir akıl yürütme öğesi ile başlar
Doğrulanmış:reasoning.effort="none"varsayılan seviyeden gözle görülür şekilde farklıdır (düşünme token'ları sıfıra düşer,reasoningçıktı öğesi kaybolur), bu da etkili olduğunu doğrular.
Mesajlar
Chat Tamamlamaları ile aynı isim ve aynı şekle sahiptir: üst düzey thinking nesnesi.
from anthropic import Anthropic
client = Anthropic(
api_key="<AIHUBMIX_API_KEY>",
base_url="https://aihubmix.com",
)
response = client.messages.create(
model="deepseek-v4-pro-0813",
max_tokens=1024,
messages=[{"role": "user", "content": "2 + 2 nedir?"}],
extra_body={"thinking": {"type": "disabled"}},
)
# Düşünme açık (varsayılan): içerik = [düşünme bloğu, metin bloğu]
# Düşünme kapalı (devre dışı): içerik = [metin bloğu]
Doğrulanmış: devre dışı bırakıldığında,thinkingbloğu tamamen kaybolur ve yalnızcatextbloğu kalır.
Düşünme seviyeleri hakkında:lowvemaxher ikisi de testlerde Chat Tamamlamaları'nda 200 döndürdü (highvarsayılandır ve alan atlandığında uygulanır), ancak düşünme token sayıları aynı soru için seviyeler arasında monoton bir fark göstermez (kolay soru: low=43 / max=27; zor soru: low=114 / max=92) ve yanıt içinde hiçbir şey yankılanmaz — seviyeler kabul edilir, ancak yanıtın içinden gözlemlenebilir bir ayırt edici sinyal yoktur. Yanıtlar üzerinde yalnızcanoneseviyesi (düşünme kapalı) yanıt tarafında doğrulanabilir.
3. Neden Çok Dönüşlü Bir Konuşma Aniden 400 Dönüyor? Düşünme Geçmişi Harfiyen Geri Gönderilmelidir
Bu modelle ilgili en yaygın tuzak budur: düşünme modunda, çok dönüşlü bir konuşma, önceki dönüşün düşünme içeriğini harfiyen geri göndermelidir, aksi takdirde istek reddedilir. Kalite düşüklüğü değil, sert bir HTTP 400.
Üç API, farklı alan adları altında aynı düşünme içeriğini taşır:
| API | Geçiş şekli | Eksik olduğunda hata gövdesi |
|---|---|---|
| Chat Tamamlamaları | Asistan mesajındaki reasoning_content alanı |
Düşünme modundaki `reasoning_content` API'ye geri gönderilmelidir. |
| Yanıtlar | Girdi dizisindeki type="reasoning" ile çıktı öğesi |
Düşünme modundaki `reasoning_text` API'ye geri gönderilmelidir. |
| Mesajlar | Asistan içerik blokları içindeki thinking bloğu |
Düşünme modundaki `content[].thinking` API'ye geri gönderilmelidir. |
Doğrulanmış (tetikleme koşulları): bu doğrulama, araçları taşıyan çok dönüşlü isteklerde sürekli olarak tetiklenir (model bir araç çağrısı yapar, ardından araç sonucu geri gönderilir). Araç olmadan doğrudan yanıt veren düz çok dönüşlü isteklerde, bu test turunda doğrulama tetiklenmedi ve istek 200 döndü. Başka bir deyişle, araç orkestrasyonu (ajan / fonksiyon çağırma iş yükleri) en çok karşılaşacağınız yer, bu nedenle düşünme içeriğini kalıcı hale getirin ve yeniden oynatın.
Chat Tamamlamaları
# Çok dönüşlü: önceki asistan mesajını harfiyen geri gönderin, reasoning_content dahil
messages = [
{"role": "user", "content": "1 + 1 nedir? Sonucu hatırla."},
{
"role": "assistant",
"content": "2",
"reasoning_content": "<önceki yanıttan reasoning_content>",
},
{"role": "user", "content": "Sonuca 1 ekle."},
]
# reasoning_content'ı düşürmek -> HTTP 400 invalid_request_error
Doğrulanmış: bir tarihsel asistan mesajının eksik reasoning_content ile 400 döndürmesi; onu geri eklemek, aynı isteğin 200 döndürmesini ve doğru şekilde devam etmesini sağlar.Yanıtlar
# Çok dönüşlü: girdi = önceki girdi + response.output (akıl yürütme öğesi dahil) + yeni mesaj
input = previous_input + response.output + [
{"role": "user", "content": "Sonuca 1 ekle."}
]
# type="reasoning" öğesini filtrelemek -> HTTP 400
Doğrulanmış:response.output'ı olduğu gibi geri eklemek yeterlidir. Geçmişi oluştururkentype == "message"ile çıktı öğelerini filtrelemek,reasoningöğesini düşürür ve 400'ü tetikler — bu, en yaygın şekilde karşılaşacağınız durumdur.
Mesajlar
# Çok dönüşlü: yanıt içeriğini asistan mesajı olarak harfiyen geri gönderin
messages = [
{"role": "user", "content": "Paris'te hava durumu nedir?"},
{"role": "assistant", "content": response.content}, # düşünme + araç kullanma blokları
{"role": "user", "content": [tool_result_block]},
]
# düşünme bloğunu çıkarmak -> HTTP 400
Doğrulanmış: içerik dizisindenthinkingbloğunu çıkarmak 400 döndürür (hata türüinvalid_request_errorolarak ayarlanmıştır).
4. Araç Çağırma
Her API, araçları kendi protokol şekliyle bildirir; şekiller birbirinin yerine geçmez.
Chat Tamamlamaları
İç içe şekil (bir function nesnesi name / parameters sarmalayan). İsimli bir tool_choice çağrıyı zorlar.
completion = client.chat.completions.create(
model="deepseek-v4-pro-0813",
messages=[{"role": "user", "content": "Paris'te hava durumu nedir?"}],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Bir şehir için hava durumu al",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
},
}],
tool_choice={"type": "function", "function": {"name": "get_weather"}},
)
# Gözlemlenen: finish_reason "tool_calls", tool_calls[0].function.arguments = {"city": "Paris"}
❗ Doğrulanmış:tool_choice: "required"düşünme açıkken kullanılamaz — bu, 400 döndürürDüşünme modu bu tool_choice'u desteklemiyor; düşünmeyi devre dışı bırakmak (thinking.type="disabled") aynı isteğin 200 döndürmesini sağlar. "Bir aracı çağırmak zorunda" anlamlarını gerektiğinde, yukarıdaki gibi bir isimli fonksiyontool_choicekullanın (düşünme açıkken çalışır) veya önce düşünmeyi kapatın ve ardındanrequiredkullanın.
Yanıtlar
Düz şekil (type / name / parameters aynı seviyede).
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="Paris'te hava durumu nedir?",
tools=[{
"type": "function",
"name": "get_weather",
"description": "Bir şehir için hava durumu al",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
)
# Gözlemlenen çıktı öğeleri: ["reasoning", "function_call"]; arguments = {"city": "Paris"}
Doğrulanmış: Chat Tamamlamaları iç içe şekli (function: {...}) Yanıtlar üzerinde kopyalamak 400 döndürür — düz şekli kullanın.tool_choice: "required"Chat'teki düşünme modu kısıtlamasına tabidir.
Mesajlar
Anthropic-yerel şekil (input_schema), bir çağrıyı zorlamak için tool_choice: {"type": "any"} ile.
response = client.messages.create(
model="deepseek-v4-pro-0813",
max_tokens=1024,
tools=[{
"name": "get_weather",
"description": "Bir şehir için hava durumu al",
"input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
tool_choice={"type": "any"},
messages=[{"role": "user", "content": "Paris'te hava durumu nedir?"}],
)
# Gözlemlenen: içerik bir araç kullanma bloğu içerir, adı = get_weather, girdi = {"city": "Paris"}
❗ Paralel araç çağırma, DeepSeek'in kendi tasarımıyla kapatılamaz — resmi Anthropic-uyumluluk sayfasında,tool_choicesatırındadisable_parallel_tool_use ignoredolarak belirtilmiştir ve Yanıtlar sayfası daparallel_tool_calls | Ignored (paralel araç çağırma her zaman etkin)olarak belirtmektedir. Testler de bunu doğruluyor:disable_parallel_tool_use: trueile iki şehir hakkında aynı anda sormak, yine de ikitool_usebloğu döndürmektedir. Seri yürütme gerekiyorsa, ilk çağrıyı alın veya bunları istemci tarafında kendiniz sıraya koyun.
Araç sayısı ve bağlam maliyeti: tek bir istekte 200 fonksiyon tanımı göndermek, normal bir yanıtla 200 döndürdü ve hiçbir sayım doğrulamasını tetiklemedi (bu yolda gözlemlendi; daha yüksek sayımlar test edilmedi). Ancak o isteğin prompt_tokens değeri 6,105'e ulaştı — araç tanımları tam olarak bağlama dahil edilir ve faturalandırılır. Birçok aracınız olduğunda, her duruma göre araç setini daraltın, her şeyi koşulsuz olarak tanımlamayın.5. Yapılandırılmış Çıktı
Chat Tamamlamaları
response_format JSON modunu destekler.
completion = client.chat.completions.create(
model="deepseek-v4-pro-0813",
messages=[{"role": "user", "content": "{"a": 1} JSON olarak döndür."}],
response_format={"type": "json_object"},
)
# Gözlemlenen yanıt içeriği: {"a":1}
Doğrulanmış: çıktı geçerli JSON'dur.
Yanıtlar
Bir JSON Şeması tanımlayın text.format aracılığıyla, strict modu desteklenir.
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="Anahtar a altında 1 sayısını döndür.",
text={
"format": {
"type": "json_schema",
"name": "extract",
"strict": True,
"schema": {"type": "object", "properties": {"a": {"type": "integer"}}, "required": ["a"]},
}
},
)
# Gözlemlenen çıktı metni: {"a":1}
Doğrulanmış: çıktı verilen şemaya kesinlikle uyar.
Mesajlar
Mesajlar (Anthropic) protokolünün response_format / text.format eşdeğeri yoktur. Alışılmış çözüm, şemayı bir araçta taşımaktır — hedef şemanız input_schema olan bir araç tanımlayın, tool_choice: {"type": "any"} ayarlayın ve yapılandırılmış sonucu tool_use bloğunun input kısmından okuyun. Bu test turu, o deseni özel olarak doğrulamadı; katı şema garantileri gerektiğinde, Chat Tamamlamaları veya Yanıtları tercih edin.
6. Bağlam Önbelleklemesini Nasıl Etkinleştirirsiniz? Etkinleştiremezsiniz, Otomatik
Bağlam önbelleklemesi (aynı önekler yeniden kullanılır ve önbelleğe alınan kısım daha düşük bir oranda faturalandırılır) varsayılan olarak açıktır ve parametre gerektirmez. Aynı uzun önekle yapılan ikinci bir istek, usage altında, API'ye göre değişen bir alan adı altında vuruşu bildirir. Önbellekleme ayrıntıları ve güncel fiyatlandırma için model sayfasına bakın; model çapraz önbellekleme stratejisi ve vuruş oranı teknikleri için istek önbellekleme uygulamalarına bakın.
Chat Tamamlamaları
# aynı uzun önekle ikinci çağrının kullanımı
"prompt_tokens_details": {"cached_tokens": 640} # ilk çağrı: 0
Doğrulanmış: aynı kanalda aynı uzun önekle yapılan iki ardışık çağrı, cached_tokens'u 0'dan 640'a taşımıştır.Yanıtlar
# aynı uzun talimatlarla ikinci çağrının kullanımı
"input_tokens_details": {"cached_tokens": 896} # ilk çağrı: 0
Mesajlar
# uzun sistem öneki zaten ısıtılmış bir çağrının kullanımı
"cache_read_input_tokens": 896
Doğrulanmış: yukarıdaki önek, aynı içeriğe sahip bir Yanıtlar isteği ile ısıtılmıştır ve ilk Mesajlar çağrısı hemen 896'ya ulaştı — bu, önbelleklemenin içerik öneki üzerinde anahtarlama yapıldığı ve protokol yüzeyleri arasında paylaşıldığı ile tutarlıdır.
7. logprobs: Chat İki Kanal Döndürür
logprobs (log olasılıkları — modelin her aday token için güven düzeyi ayrıntısı) iki API'de farklı şekillerde geri döner ve ayrıştırma kodu bunları ayrı ayrı ele almalıdır.
Chat Tamamlamaları
completion = client.chat.completions.create(
model="deepseek-v4-pro-0813",
messages=[{"role": "user", "content": "Merhaba de."}],
logprobs=True,
top_logprobs=2,
)
# Gözlemlenen: choices[0].logprobs iki dizi içerir
# logprobs.content[] -> son cevabın token'ları
# logprobs.reasoning_content[] -> düşünme metninin token'ları
❗ Doğrulanmış: Chat, hemcontenthem dereasoning_contentiçin log olasılıkları döndürür. Sadecelogprobs.content'ı okuyan bir kod, standart OpenAI yanıt şekline göre hata vermez, ancak düşünme kanalını sessizce atlar; eğer kodunuzlogprobsaltında tek bir dizi varsayıyorsa, önce bir şekil kontrolü ekleyin.
Yanıtlar
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="Merhaba de.",
top_logprobs=3,
)
# Gözlemlenen: logprobs yalnızca son mesaj öğesinde
# output[-1].content[0].logprobs[] logprob + top_logprobs ayrıntıları ile
Doğrulanmış: Yanıtlar yalnızca son metin öğesine logprobs ekler — Chat'teki çift kanal şekli yoktur.
Mesajlar
Mesajlar (Anthropic) protokolünün eşdeğer alanı yoktur. Token düzeyinde olasılık ayrıntısı için, Chat Tamamlamaları veya Yanıtları kullanın.
8. Hangi API'ler Web'i Arayabilir?
Web araması burada sunucu tarafı bir araçtır (geri alma sunucuda çalışır; istemci kendisi isteği asla vermez) ve testlerde hem Yanıtlar hem de Mesajlar API'lerinde gerçekten çalışır.
Yanıtlar
response = client.responses.create(
model="deepseek-v4-pro-0813",
input="Python'un en son kararlı sürümü nedir?",
tools=[{"type": "web_search"}],
)
# Gözlemlenen çıktı öğesi dizisi:
# ["reasoning", "web_search_call", "reasoning", "message"]
Doğrulanmış: çıktı dizisinde bir web_search_call öğesi görünür, bu da sunucunun gerçekten bir geri alma işlemi gerçekleştirdiği anlamına gelir.Mesajlar
response = client.messages.create(
model="deepseek-v4-pro-0813",
max_tokens=1024,
tools=[{"type": "web_search_20250305", "name": "web_search"}],
messages=[{"role": "user", "content": "Python'un en son kararlı sürümü nedir?"}],
)
# Gözlemlenen içerik bloğu dizisi:
# ["düşünme", "sunucu_araç_kullanma", "web_search_tool_result", "düşünme", "metin"]
# usage.server_tool_use.web_search_requests = 1
Doğrulanmış: usage.server_tool_use.web_search_requests 1 olarak sayılır — geri alma isteği gerçekten gerçekleşti ve ölçüldü.Chat Tamamlamaları
Web araması Chat'te tetiklenemez. DeepSeek'in resmi Chat API referansı, istek şemasında hiçbir yerde arama aracı alanı içermez (bu, alan listesini tek tek gözden geçirerek belirlenen bir yokluktur; DeepSeek destek sağlamadığına dair açık bir ifade yapmamıştır). Sunucu tarafı arama için açık bir resmi destek beyanı olan API Yanıtlar'dır (web_search), ve resmi Mesajlar uyumluluk sayfası da arama ile ilgili içerik bloklarını listeler.
# Üç kontrol grubu, canlı bilgi gerektiren aynı soru, tümü HTTP 200:
# A arama alanı yok -> "geri alma yapılamıyor", notlar = null
# B web_search_options -> "geri alma yapılamıyor", notlar = null, kullanım A ile aynı
# C enable_search -> "geri alma yapılamıyor", notlar = null, kullanım A ile aynı
Doğrulanmış:web_search_optionsveyaenable_searchgöndermek hata oluşturmaz, ancak hiçbir şey geri almaz — yanıt, web araması çalıştığında eklenenannotationstaşımaz ve kullanım, kontrol grubu ile alan alanı için eşleşir. Web erişimi için, bunun yerine Yanıtlar veya Mesajlar API'sini kullanın.
9. Kullanım Notları: DeepSeek'in Tasarımı vs Yolda Sapmalar
Aşağıdaki her şey HTTP 200 döndürürken, sezgisel olarak davranır. Sebep farklıdır, ve bunlarla ilgili ne yapmanız gerektiği de, bu nedenle ayrı olarak listelenmiştir: ilk grup, DeepSeek'in modeli nasıl tasarladığıdır ve sağlayıcıları değiştirmek bunu değiştirmeyecektir; ikinci grup, AIHubMix yolundaki mevcut davranıştır, üzerinde çalışıyoruz.
9.1 DeepSeek'in Tasarımıyla
| Davranış | Resmi ifade | Ne yapmalı |
|---|---|---|
| Yanıtlar oturum durumunu veya meta verileri saklamaz | Resmi Yanıtlar uyumluluk sayfası, satır satır, store | Desteklenmiyor. Yanıt her zaman store: false taşır, metadata | Desteklenmiyor, ve safety_identifier | Desteklenmiyor (bu dört alandan yalnızca user Destekleniyor). Testler de bunu doğruluyor: istek 200 döner, ancak metadata null, safety_identifier yok ve store her zaman false'dır. |
İstek-korelasyon verilerini istemcide saklayın; sunucu tarafı saklamaya güvenmeyin |
| Örnekleme parametreleri düşünme modunda etkili değildir | DeepSeek, temperature ve top_p'nin düşünme modunda sessizce etkisiz olduğunu açıkça belirtmektedir. Testlerde her ikisi de 200 döner, ancak hiçbir şey yankılanmaz ve yanıt şekli değişmez. |
Düşünme modunda çıktı kararlılığı için örnekleme parametrelerine güvenmeyin; deterministik olduğunda yapılandırılmış çıktıyı kullanın |
| Önek devamı / FIM yalnızca resmi beta uç noktasında mevcuttur | Resmi prefix tanımında "(Beta) … Bu özelliği kullanmak için base_url="https://api.deepseek.com/beta" ayarlamalısınız" denmektedir ve FIM tamamlama da bir Beta özelliğidir. AIHubMix üretiminde doğrulandı: standart uç noktaya karşı prefix: true göndermek 200 döner, ancak önek sessizce atılır, resmi ifadeyle tutarlıdır. |
Kontrollü çıktı formatı için yapılandırılmış çıktıyı kullanın (bölüm 5) veya stop kesmesini kullanın |
| Paralel araç çağırma devre dışı bırakılamaz | Bölüm 4'te görün: DeepSeek, Yanıtlar ve Anthropic sayfalarında anahtarın göz ardı edildiğini ve paralel çağrının her zaman açık olduğunu belirtmektedir. | Seri yürütme gerektiğinde istemcide çağrıları sıraya koyun |
9.2 AIHubMix Yolundaki Mevcut Davranış
| Davranış | Testler ne gösteriyor | Ne yapmalı |
|---|---|---|
Yanıtlar hata nesnelerinde standart dışı type |
4xx yanıtlarındaki error.type Aihubmix_api_error'dır, oysa Mesajlar'daki aynı hata sınıfı, kanonik invalid_request_error döndürmektedir. |
HTTP durum koduna göre dallanın, error.type dizesine göre değil |
Mesajlar, model'ı deepseek-v4-pro olarak yankılar |
İstek deepseek-v4-pro-0813 gönderir ve yanıt deepseek-v4-pro olarak yankılanır. Sebep isimlendirmedir: DeepSeek'in tek resmi API model adı deepseek-v4-pro'dur ve 0813 onun sürüm etiketidir. |
Yanıtın model alanını model yönlendirme kontrolleri veya kullanım atıfları için tek temel olarak almayın |
9.3 DeepSeek Tarafından Tanımsız, Bu Yüzden Hiçbir Yargı Yok
reasoning_effort için enum dışındaki bir değer göndermek (örneğin bogus_xyz) 200 döndürür, normal bir yanıtla, hata olmadan ve gözlemlenebilir bir etki olmadan. Gerçek şu ki — bu yol şu anda reasoning_effort enumunu doğrulamıyor. Ne olduğu belirsizdir: DeepSeek yasal enumu yayımlar, ancak bir yasadışı seviyenin reddedilmesi gerektiğini asla belirtmez, bu nedenle karşılaştırılacak bir temel yoktur, bu da bunu ne resmi bir davranış ne de yolumuzda bir hata olarak sayar. Güvenli istemci tarafı yaklaşımı: seviyeyi kendiniz doğrulayın ve API'nin bunu yakalayacağına güvenmeyin.
10. Yetenek × API Destek Matrisi
Aşağıdaki hücreler, her API için parametre / alan yazımını verir. DeepSeek'in açık ifadeleri olarak işaretlenmediği yerler dışında, her sonuç 2026-08-13 tarihinde AIHubMix üretim API'lerine yapılan gerçek çağrılardan gelmektedir.
| Yetenek | Chat Tamamlamaları | Yanıtlar | Mesajlar |
|---|---|---|---|
| Temel sohbet / sistem talimatları | ✅ messages |
✅ input + instructions |
✅ messages + üst düzey system |
| Akış | ✅ stream + stream_options |
✅ stream (response.created … response.completed) |
✅ stream (message_start … message_stop) |
| Çıktı tavanı | ✅ max_tokens (aşıldığında 400, tavan 393216) |
✅ max_output_tokens |
✅ max_tokens |
| Düşünmeyi devre dışı bırakma | ✅ thinking: {"type": "disabled"} |
✅ reasoning: {"effort": "none"} |
✅ thinking: {"type": "disabled"} |
| Düşünme seviyesi | 🟡 reasoning_effort kabul edilir, ayırt edici sinyal yok |
✅ reasoning.effort (yalnızca none doğrulanabilir) |
🟡 output_config.effort kabul edilir, hiçbir şey yankılanmaz |
| Düşünme içeriği döndürüldü | ✅ reasoning_content alanı |
✅ reasoning çıktı öğesi |
✅ thinking içerik bloğu |
| Zorunlu düşünme geçmişi geçişi | ✅ eksik reasoning_content → 400 |
✅ eksik reasoning öğesi → 400 |
✅ eksik thinking bloğu → 400 |
| Araç çağırma | ✅ iç içe tools + isimli tool_choice |
✅ düz tools |
✅ input_schema + tool_choice: {"type":"any"} |
Bir çağrıyı required ile zorlamak |
❗ düşünme açıkken 400; önce düşünmeyi devre dışı bırakın | ❗ soldaki ile aynı | ✅ {"type": "any"} |
| Paralel araç çağırma (devre dışı bırakılamaz) | ➖ resmi Chat API'sinde böyle bir alan yok | ❗ DeepSeek, parallel_tool_calls'un göz ardı edildiğini ve paralel çağrının her zaman açık olduğunu belirtmektedir |
❗ DeepSeek, disable_parallel_tool_use'un göz ardı edildiğini belirtmektedir; testler yine de iki tool_use bloğu döndürmektedir |
| Yapılandırılmış çıktı | ✅ response_format (json_object) |
✅ text.format (json_schema + strict) |
➖ protokol alanı yok; şemayı bir araçta taşıyın |
| Otomatik önbellek-vuruşu ölçümü | ✅ usage.prompt_tokens_details.cached_tokens |
✅ usage.input_tokens_details.cached_tokens |
✅ usage.cache_read_input_tokens |
| logprobs | ❗ çift kanal: content + reasoning_content |
✅ yalnızca son metin öğesinde top_logprobs |
➖ |
| Web araması | ➖ resmi Chat API'sinde arama alanı yok; göndermek de geri almaz | ✅ tools: [{"type": "web_search"}] |
✅ web_search_20250305 |
| Durdurma dizileri | ✅ stop |
➖ protokolde durdurma dizisi alanı yok (yalnızca max_output_tokens uzunluğu sınırlar) |
✅ stop_sequences (stop_reason: "stop_sequence") |
Legend: ✅ doğrulanmış çalışıyor · 🟡 kabul edildi ancak etkili olduğu doğrulanamıyor · ❗ dikkat gerektiriyor (yukarıdaki notlara bakın) · ➖ bu API'de böyle bir kavram yok
SSS
deepseek-v4-pro-0813, AIHubMix'te hangi API'leri destekliyor?
Chat Tamamlamaları (/v1/chat/completions), Yanıtlar (/v1/responses) ve Claude-uyumlu Mesajlar API'si (/v1/messages).
Neden çok dönüşlü bir konuşma aniden 400 döner?
En yaygın sebep, geri gönderilmeyen düşünme geçmişidir. Düşünme modunda, önceki dönüşün düşünme içeriği harfiyen yeniden oynatılmalıdır: Chat için asistan mesajındaki reasoning_content, Yanıtlar için type="reasoning" çıktı öğesi ve Mesajlar için thinking içerik bloğu. Araçlarla çok dönüşlü isteklerde bu durum en çok sorun yaratır — birçok çerçeve, geçmişi oluştururken çıktı öğelerini type == "message" ile filtreler, bu da akıl yürütme öğesinin düşmesine neden olur.
Düşünme kapatılabilir mi?
Evet. Chat veya Mesajlar üzerinde thinking: {"type": "disabled"} ve Yanıtlar üzerinde reasoning: {"effort": "none"} gönderin. Kapandığında, hem düşünme içeriği hem de düşünme token'ları kaybolur.
Üç reasoning_effort seviyesi farklı mı?low / high / max hepsi kabul edilir (varsayılan high; medium ve xhigh uyumluluk için high'a eşlenmiştir). Testlerde, aynı soru için düşünme token sayıları seviyeler arasında monoton bir fark göstermez ve hiçbir şey yankılanmaz, bu nedenle fark çağıranın tarafında doğrulanamaz. Sadece Yanıtlar üzerindeki none seviyesi (düşünme kapalı) belirgin bir gözlemlenebilir fark üretir.
Neden tool_choice: "required" 400 döndürür?
Bu değer, düşünme açıkken kabul edilmez (hata gövdesi Düşünme modu bu tool_choice'u desteklemiyor olarak okunur). Düşünme açıkken belirli bir çağrıyı zorlamak için bir isimli fonksiyon tool_choice ({"type": "function", "function": {"name": "..."}}) kullanın veya önce düşünmeyi kapatın ve ardından required kullanın.
Bağlam önbelleklemesini nasıl etkinleştirirsiniz?
Etkinleştiremezsiniz — otomatik. Stabil, değişmeyen içeriği (sistem istemleri, bilgi parçaları, araç tanımları) isteğin başına koyun ve vuruş sayısı kullanımda bildirilir: Chat'te prompt_tokens_details.cached_tokens, Yanıtlar'da input_tokens_details.cached_tokens ve Mesajlar'da cache_read_input_tokens.
Fiyatlandırma ve gerçek zamanlı durum için deepseek-v4-pro-0813 model sayfasına bakın; daha fazla model için model galerisine gidin.
İlgili uygulamalı kılavuzlar: Kimi K3 uygulamalı kılavuzu (yeni parametreler ve üç API destek matrisi) ve GPT-5.6 istek önbellekleme ve faturalandırma değişiklikleri.




