DeepSeek V4 Pro (0813): Thinking Passback ve 3-API Matrisi

DeepSeek V4 Pro (0813) uygulamalı rehberi: düşünme anahtarı ve reasoning_effort seviyeleri, zorunlu düşünme geçmişi geri gönderimi, araçlar, önbellekleme ve 3-API matrisi.

AIHubMix15 dk okuma
DeepSeek V4 Pro (0813): Thinking Passback ve 3-API Matrisi

Bu makale deepseek-v4-pro-0813 için kullanım notlarını ve dikkat edilmesi gereken tuzakları ele alıyor. AIHubMix üzerinde model; Chat Completions, Responses ve Claude uyumlu Messages API'leri üzerinden kullanılabilir. Ayrıca bakınız: DeepSeek resmi API dokümantasyonu.

Her bölümdeki "Doğrulandı" sonuçları ve örnek yanıtlar, 2026-08-13 tarihinde AIHubMix API'leri (Chat Completions / Responses / Messages) üzerinden yapılan gerçek çağrılardan gelmektedir; "Doğrulandı" olarak işaretlenmeyen teknik özellikler DeepSeek'in resmi dokümantasyonundandır.

1. Model Konumu ve Özelliklerin Özeti

V4 Pro, DeepSeek'in V4 neslinin üst düzey sürümüdür (hafif sürüm deepseek-v4-flash ise kardeş modeldir). Sürüm hattı 2026-04-24 tarihli DeepSeek-V4 Preview'a uzanır ve 0813, DeepSeek'in mevcut yapıya atadığı MODEL SÜRÜM etiketidir. Ham özelliklerin ötesinde, onu öne çıkaran dört unsur var:

  • Seyrek bir öncü model: 1.6T toplam parametre / 49B etkinleştirilmiş parametre (MoE, yani uzman karışımı mimarisi — her çıkarım geçişinde yalnızca uzman ağların bir alt kümesi devreye girer: toplam parametreler bilgi kapasitesini, etkinleştirilmiş parametreler çağrı başına hesaplama maliyetini belirler). Model kartı CSA+HCA hibrit dikkat mekanizmasını, mHC'yi ve Muon optimizasyon algoritmasını listeler.
  • MIT lisansı altında açık ağırlıklar: deepseek-ai/DeepSeek-V4-Pro, HuggingFace'te MIT lisansı altında yayınlanmıştır (en izin verici açık kaynak lisanslarından biri — ticari kullanım ve kapalı kaynaklı yeniden dağıtım her ikisi de serbesttir) ve kendi sunucunuzda barındırılabilir. Bu büyüklükteki bir model için MIT lisansı alışılmadık bir tercihtir. Model kartındaki kendi sunucuda barındırma notları, Think Max (en yüksek düşünme seviyesi) modunda çalışırken ≥384K token bağlam penceresi önermektedir — bu, barındırılan API'nin bir özelliği değil, kendi sunucuda kurulum için bir dağıtım rehberidir.
  • Çok protokollü destek birinci taraf sunulmaktadır, üçüncü taraf çeviri değildir: DeepSeek'in kendisi bir OpenAI Chat API'si, Anthropic uyumlu bir uç nokta (/anthropic, bu uç nokta claude-opus* isteklerini bu modele yönlendirir) ve Responses API'si sunar (DeepSeek bu formata yerel destek verdiğini ve Codex için uyarlamalar yaptığını belirtir). Ayrıca ayrı bir uç noktada Beta özellik olarak FIM (ortayı doldurma) tamamlama da sunar; bu, AIHubMix'in üç API'sinin parçası değildir.
  • Önbellek isabeti ve önbellek ıskası fiyatlandırması arasında yaklaşık 120× fark: DeepSeek'in yayımladığı fiyatlandırma mekanizması, önbellek isabeti için $0.003625/M, önbellek ıskası için $0.435/M (çıktı $0.87/M) şeklindedir ve önbellekleme otomatiktir; ayarlanacak bir parametre yoktur. Uzun önekleri yeniden kullanan iş yükleri (sistem istemleri, uzun belgeler) için bu fark faturayı belirler. Gerçek perakende fiyat, model sayfasında gösterilen fiyattı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 (tam token sayısı ve varsayılan değer yayımlanmamıştır)
Giriş modaliteleri Yalnızca metin. Responses uyumluluk sayfası görüntü ve dosya girişlerinin desteklenmediğini açıkça belirtir; Messages sayfası type="image" bloklarını Desteklenmiyor olarak işaretler; Chat Completions'ta kullanıcı mesajındaki content yalnızca dize kabul eder, çok modlu içerik parçalarını kabul etmez
Düşünme modu Hibrit (düşünme / düşünmeme), düşünme varsayılan olarak açık
Düşünme seviyeleri reasoning_effort değeri low / high / max kabul eder, varsayılan high; uyumluluk için medium ve xhigh high değerine eşlenir
Kullanılabilir API'ler Chat Completions, Responses, Messages (Claude uyumlu)
Doğrulandı: max_tokens değerini aşmak sessizce kesilmek yerine doğrulama tarafından reddedilir — max_tokens=9999999 göndermek HTTP 400 döndürür ve hata gövdesi alanı belirtir ve üst sınırı 393216 olarak verir.
# max_tokens=9999999 -> HTTP 400
"...max_tokens... 393216"
❗ Görseller hata vermez, ancak düşürülür: Responses API için resmi ifade şöyledir: "Görüntü ve dosya girişleri desteklenmemektedir (input_image parçaları hata oluşturmaz, bunun yerine yer tutucu metinle değiştirilir)" — yani bir input_image parçası isteği başarısız kılmaz, yer tutucu metinle değiştirilir. Chat Completions'ta kullanıcı mesajındaki content yalnızca dize kabul eder, Messages'ta type="image" blokları Desteklenmiyor olarak işaretlenir. Çok modlu yönlendirme kurarken, "hata yok" durumunu modelin görseli gerçekten gördüğünün kanıtı olarak asla kabul etmeyin.

2. Düşünme Modunu Nasıl Kapatırsınız? Üç API, Üç Alan Biçimi

V4 Pro varsayılan olarak düşünür: hiç parametre göndermezseniz yanıt düşünme içeriğiyle birlikte döner. Kapatmak için her üç API'de farklı bir alan biçimi kullanılır.

Chat Completions

Ü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": "What is 2 + 2?"}],
    extra_body={"thinking": {"type": "disabled"}},
)

# Thinking on  (default): message.reasoning_content present, reasoning_tokens = 43
# Thinking off (disabled): reasoning_content absent, reasoning_tokens absent
Doğrulandı: thinking.type="disabled" ile birlikte message.reasoning_content ve usage.completion_tokens_details.reasoning_tokens birlikte kaybolur; bu da anahtarın etkili olduğunu doğrular.

Responses

Responses'ta ayrı bir anahtar yoktur; düşünmeyi kapatmak, seviyeyi none olarak ayarlamak anlamına gelir.

response = client.responses.create(
    model="deepseek-v4-pro-0813",
    input="What is 2 + 2?",
    reasoning={"effort": "none"},
)

# effort="none": usage.output_tokens_details.reasoning_tokens = 0
#                output[0] is the message item directly (no reasoning item)
# effort unset : output always starts with a reasoning item
Doğrulandı: reasoning.effort="none", varsayılan seviyeden gözle görülür biçimde farklıdır (düşünme token'ları sıfıra düşer, reasoning çıktı öğesi kaybolur), bu da etkili olduğunu doğrular.

Messages

Chat Completions ile aynı ad ve aynı biçim: ü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": "What is 2 + 2?"}],
    extra_body={"thinking": {"type": "disabled"}},
)

# Thinking on  (default): content = [thinking block, text block]
# Thinking off (disabled): content = [text block]
Doğrulandı: devre dışı bırakıldıktan sonra thinking bloğu tamamen kaybolur ve yalnızca text bloğu kalır.
Düşünme seviyeleri hakkında: Testlerde Chat Completions üzerinde low ve max her ikisi de 200 döndü (high varsayılandır ve alan atlandığında uygulanır), ancak aynı soru için düşünme token sayıları seviyeler arasında monoton bir fark göstermedi (kolay soru: low=43 / max=27; zor soru: low=114 / max=92) ve yanıtta hiçbir şey geri yansıtılmıyor — seviyeler kabul ediliyor, ancak yanıttan ayırt edici bir sinyal gözlemlenemiyor. Responses'ta yalnızca none seviyesi (düşünme kapalı) yanıt tarafından doğrulanabilir.

3. Çok Turlu Bir Konuşma Neden Aniden 400 Döndürüyor? Düşünme Geçmişi Kelimesi Kelimesine Geri Gönderilmelidir

Bu, bu modelde en yaygın tuzaktır: düşünme modunda çok turlu bir konuşma, önceki turun düşünme içeriğini kelimesi kelimesine geri göndermelidir; aksi halde istek reddedilir. Düşük kaliteli değil, daha az iyi değil — doğrudan bir HTTP 400.

Üç API, aynı düşünme içeriğini farklı alan adlarıyla taşır:

API Geri gönderim biçimi Eksik olduğunda hata gövdesi
Chat Completions Asistan mesajındaki reasoning_content alanı The `reasoning_content` in the thinking mode must be passed back to the API.
Responses input dizisinde type="reasoning" değerine sahip çıktı öğesi The `reasoning_text` in the thinking mode must be passed back to the API.
Messages Asistan içerik bloklarındaki thinking bloğu The `content[].thinking` in the thinking mode must be passed back to the API.
Doğrulandı (tetikleyici koşullar): bu doğrulama, tools içeren çok turlu isteklerde tutarlı biçimde tetiklenir (model bir araç çağrısı yapar, ardından araç sonucu geri gönderilir). Modelin doğrudan yanıt verdiği, araç içermeyen basit çok turlu isteklerde bu turdaki testte doğrulama tetiklenmedi ve istek 200 döndü. Başka bir deyişle, bu sorunla en sık araç orkestrasyonunda (ajan / fonksiyon çağırma iş yüklerinde) karşılaşılır; bu yüzden düşünme içeriğini, kalıcı tutulan ve tekrar oynatılan konuşma durumunun bir parçası gibi ele alın.

Chat Completions

# Multi-turn: pass the previous assistant message back verbatim, including reasoning_content
messages = [
    {"role": "user", "content": "What is 1 + 1? Remember the result."},
    {
        "role": "assistant",
        "content": "2",
        "reasoning_content": "<reasoning_content from the previous response>",
    },
    {"role": "user", "content": "Add 1 to the result."},
]

# Dropping reasoning_content -> HTTP 400 invalid_request_error
Doğrulandı: reasoning_content alanı eksik olan geçmiş bir asistan mesajı 400 döndürür; bu alanı geri eklemek, aynı isteği 200 döndürür hale getirir ve konuşma doğru biçimde devam eder.

Responses

# Multi-turn: input = previous input + response.output (reasoning item included) + new message
input = previous_input + response.output + [
    {"role": "user", "content": "Add 1 to the result."}
]

# Filtering out the type="reasoning" item -> HTTP 400
Doğrulandı: response.output değerini olduğu gibi geri eklemek yeterlidir. Geçmişi oluştururken çıktı öğelerini type == "message" ile filtrelemek reasoning öğesini düşürür ve 400 hatasını tetikler — en sık yaşanan hata budur.

Messages

# Multi-turn: pass response.content back verbatim as the assistant message
messages = [
    {"role": "user", "content": "What's the weather in Paris?"},
    {"role": "assistant", "content": response.content},   # thinking + tool_use blocks
    {"role": "user", "content": [tool_result_block]},
]

# Stripping the thinking block -> HTTP 400
Doğrulandı: içerik dizisinden thinking bloğunu çıkarmak 400 döndürür (error.type değeri invalid_request_error olarak ayarlanmış).

4. Araç Çağırma

Her API, araçları kendi protokol biçiminde tanımlar; bu biçimler birbirinin yerine kullanılamaz.

Chat Completions

İç içe biçim (name / parameters alanlarını saran bir function nesnesi). Adlandırılmış bir fonksiyon tool_choice çağrıyı zorlar.

completion = client.chat.completions.create(
    model="deepseek-v4-pro-0813",
    messages=[{"role": "user", "content": "What's the weather in Paris?"}],
    tools=[{
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get weather for a city",
            "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
        },
    }],
    tool_choice={"type": "function", "function": {"name": "get_weather"}},
)

# Observed: finish_reason "tool_calls", tool_calls[0].function.arguments = {"city": "Paris"}
❗ Doğrulandı: düşünme açıkken tool_choice: "required" kullanılamaz — Thinking mode does not support this tool_choice hatasıyla 400 döndürür; düşünmeyi kapatmak (thinking.type="disabled") aynı isteği 200 döndürür hale getirir. "Mutlaka bir araç çağır" anlamına ihtiyacınız olduğunda, bunun yerine adlandırılmış fonksiyon tool_choice kullanın (yukarıdaki gibi, düşünme açıkken de çalışır) ya da önce düşünmeyi kapatıp sonra required kullanın.

Responses

Düz biçim (type / name / parameters aynı düzeyde).

response = client.responses.create(
    model="deepseek-v4-pro-0813",
    input="What's the weather in Paris?",
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Get weather for a city",
        "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
)

# Observed output items: ["reasoning", "function_call"]; arguments = {"city": "Paris"}
Doğrulandı: Chat Completions iç içe biçimini (function: {...}) Responses'a kopyalamak 400 döndürür — düz biçimi kullanın. tool_choice: "required", Chat'teki ile aynı düşünme modu kısıtlamasına tabidir.

Messages

Anthropic'e özgü biçim (input_schema), ç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": "Get weather for a city",
        "input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
    tool_choice={"type": "any"},
    messages=[{"role": "user", "content": "What's the weather in Paris?"}],
)

# Observed: content contains a tool_use block, name = get_weather, input = {"city": "Paris"}
❗ Paralel araç çağırma kapatılamaz; bu, DeepSeek'in kendi tasarım tercihidir — resmi Anthropic uyumluluk sayfası, tool_choice satırında disable_parallel_tool_use is ignored ifadesini belirtir; Responses sayfası da benzer şekilde parallel_tool_calls | Ignored (parallel tool calling is always enabled) ifadesini belirtir. Testler bunu doğrular: disable_parallel_tool_use: true ile iki şehir hakkında aynı anda soru sorulduğunda hâlâ iki tool_use bloğu döner. Sıralı yürütmeye ihtiyacınız varsa ilk çağrıyı alın ya da çağrıları istemci tarafında kendiniz kuyruğa alın.
Araç sayısı ve bağlam maliyeti: Tek bir istekte 200 işlev tanımı göndermek yine 200 yanıtı ve normal bir cevap döndürdü, herhangi bir sayı doğrulamasına takılmadı (yalnızca bu yolda gözlemlendi; daha yüksek sayılar test edilmedi). Ancak bu istek için prompt_tokens değeri 6.105'e ulaştı — araç tanımları bağlama tamamen eklenir ve ücretlendirilir. Çok sayıda aracınız olduğunda, her şeyi koşulsuz olarak bildirmek yerine araç kümesini senaryoya göre daraltın.

5. Yapılandırılmış Çıktı

Chat Completions

response_format JSON modunu destekler.

completion = client.chat.completions.create(
    model="deepseek-v4-pro-0813",
    messages=[{"role": "user", "content": "Return {\"a\": 1} as JSON."}],
    response_format={"type": "json_object"},
)

# Observed response content: {"a":1}
Doğrulandı: çıktı geçerli JSON'dur.

Responses

text.format üzerinden bir JSON Şeması tanımlanır ve strict modu desteklenir.

response = client.responses.create(
    model="deepseek-v4-pro-0813",
    input="Return the number 1 under key a.",
    text={
        "format": {
            "type": "json_schema",
            "name": "extract",
            "strict": True,
            "schema": {"type": "object", "properties": {"a": {"type": "integer"}}, "required": ["a"]},
        }
    },
)

# Observed output text: {"a":1}
Doğrulandı: çıktı verilen şemaya tam olarak uyar.

Messages

Messages (Anthropic) protokolünde response_format / text.format karşılığı yoktur. Yaygın geçici çözüm, şemayı bir araç içinde taşımaktır — input_schema değeri hedef şemanız olan bir araç tanımlayın, tool_choice: {"type": "any"} ayarlayın ve yapılandırılmış sonucu tool_use bloğunun input alanından okuyun. Bu test turunda bu desen özel olarak doğrulanmadı; kesin şema garantisine ihtiyacınız olduğunda Chat Completions veya Responses tercih edin.

6. Bağlam Önbelleğini Nasıl Etkinleştirirsiniz? Etkinleştirmezsiniz, Otomatiktir

Bağlam önbellekleme (aynı önekler yeniden kullanılır ve önbelleğe alınan kısım daha düşük bir oranla ücretlendirilir) varsayılan olarak açıktır ve hiçbir parametre gerektirmez. Aynı uzun önekle yapılan ikinci bir istek, isabeti usage içinde raporlar; alan adı API'ye göre değişir. Önbellekleme ayrıntıları ve güncel fiyatlandırma için model sayfasına bakın; modeller arası önbellekleme stratejisi ve isabet oranı teknikleri için prompt önbellekleme uygulamalarına bakın.

Chat Completions

# usage of the second call with an identical long prefix
"prompt_tokens_details": {"cached_tokens": 640}   # first call: 0
Doğrulandı: aynı kanalda, aynı uzun önekle arka arkaya yapılan iki çağrı, cached_tokens değerini 0'dan 640'a çıkardı.

Responses

# usage of the second call with identical long instructions
"input_tokens_details": {"cached_tokens": 896}    # first call: 0

Messages

# usage of a call whose long system prefix was already warmed
"cache_read_input_tokens": 896
Doğrulandı: yukarıdaki önek, aynı içeriğe sahip bir Responses isteğiyle ısıtıldı ve ilk Messages çağrısı hemen 896 isabet aldı — önbelleklemenin içerik öneki üzerinden anahtarlandığı ve protokol yüzeyleri arasında paylaşıldığıyla tutarlı.

7. logprobs: Chat İki Kanal Döndürür

logprobs (log olasılıkları — modelin aday token başına güven ayrıntısı), iki API'de farklı biçimlerde döner ve ayrıştırma kodunun bunları ayrı ayrı ele alması gerekir.

Chat Completions

completion = client.chat.completions.create(
    model="deepseek-v4-pro-0813",
    messages=[{"role": "user", "content": "Say hi."}],
    logprobs=True,
    top_logprobs=2,
)

# Observed: choices[0].logprobs contains TWO arrays
#   logprobs.content[]            -> tokens of the final answer
#   logprobs.reasoning_content[]  -> tokens of the thinking text
❗ Doğrulandı: Chat, hem content hem de reasoning_content için log olasılıkları döndürür. Standart OpenAI yanıt biçimine göre yalnızca logprobs.content alanını okuyan kod hata vermez ama düşünme kanalını sessizce kaçırır; kodunuz logprobs altında tek bir dizi varsaydığında, önce bir biçim kontrolü ekleyin.

Responses

response = client.responses.create(
    model="deepseek-v4-pro-0813",
    input="Say hi.",
    top_logprobs=3,
)

# Observed: logprobs only on the final message item
#   output[-1].content[0].logprobs[] with logprob + top_logprobs details
Doğrulandı: Responses, logprobs bilgisini yalnızca son metin öğesine ekler — Chat'te görülen çift kanallı biçimin hiçbiri yoktur.

Messages

Messages (Anthropic) protokolünde eşdeğer bir alan yoktur. Token düzeyinde olasılık ayrıntısı için Chat Completions veya Responses kullanın.

8. Hangi API'ler Web'de Arama Yapabilir?

Buradaki web araması sunucu tarafı bir araçtır (erişim sunucuda çalışır; istemci isteği kendisi göndermez) ve testlerde hem Responses hem de Messages API'lerinde gerçekten çalışır.

Responses

response = client.responses.create(
    model="deepseek-v4-pro-0813",
    input="What is the latest stable version of Python?",
    tools=[{"type": "web_search"}],
)

# Observed output item sequence:
# ["reasoning", "web_search_call", "reasoning", "message"]
Doğrulandı: çıktı dizisinde bir web_search_call öğesi görünür; bu, sunucunun gerçekten bir erişim gerçekleştirdiği anlamına gelir.

Messages

response = client.messages.create(
    model="deepseek-v4-pro-0813",
    max_tokens=1024,
    tools=[{"type": "web_search_20250305", "name": "web_search"}],
    messages=[{"role": "user", "content": "What is the latest stable version of Python?"}],
)

# Observed content block sequence:
# ["thinking", "server_tool_use", "web_search_tool_result", "thinking", "text"]
# usage.server_tool_use.web_search_requests = 1
Doğrulandı: usage.server_tool_use.web_search_requests değeri 1 sayar — erişim isteği gerçekten gerçekleşti ve ölçüldü.

Chat Completions

Chat üzerinde web araması tetiklenemez. DeepSeek'in resmi Chat API referansı, istek şemasında hiçbir yerde arama aracı alanı içermez (bu, alan listesi tek tek incelenerek tespit edilen bir yokluktur; DeepSeek desteklemediğini açıkça belirtmiş değildir). Sunucu tarafı aramayı resmi olarak açıkça destekleyen API Responses'tır (web_search) ve resmi Messages uyumluluk sayfası da arama ile ilgili içerik bloklarını listeler.

# Three control groups, same question requiring live information, all HTTP 200:
# A no search field       -> "cannot retrieve", annotations = null
# B web_search_options    -> "cannot retrieve", annotations = null, usage identical to A
# C enable_search         -> "cannot retrieve", annotations = null, usage identical to A
Doğrulandı: web_search_options veya enable_search göndermek hata vermez, ama hiçbir şey de getirmez — yanıtta annotations (web araması çalıştığında yanıta eklenen atıf listesi) bulunmaz ve kullanım, kontrol grubuyla alan alan eşleşir. Web erişimi için bunun yerine Responses veya Messages API'sini kullanın.

9. Kullanım Notları: DeepSeek'in Tasarımı ve Yolumuzdaki Sapmalar

Aşağıdakilerin tümü HTTP 200 döndürür ama sezgiye aykırı davranır. Nedenler farklıdır ve bunlara yönelik yapılacaklar da farklıdır; bu yüzden ayrı listelenmişlerdir: ilk grup DeepSeek'in modeli nasıl tasarladığıdır ve sağlayıcı değiştirmek bunu değiştirmez; ikinci grup ise AIHubMix yolundaki mevcut davranıştır ve üzerinde çalışmaktayız.

9.1 DeepSeek Tasarımına Göre

Davranış Resmi ifade Yapılacaklar
Responses oturum durumunu ve meta verileri saklamaz Resmi Responses uyumluluk sayfası, satır satır, store | Not supported. The response always carries store: false, metadata | Not supported ve safety_identifier | Not supported belirtir (bu dört alandan yalnızca user desteklenir). Testler bunu doğrular: istek 200 döner, ancak metadata null'dur, safety_identifier yoktur ve store her zaman false değerindedir İstek korelasyon verilerini istemci tarafında tutun; sunucu tarafı saklamaya güvenmeyin
Düşünme modunda örnekleme parametrelerinin etkisi yoktur DeepSeek, düşünme modunda temperature ve top_p değerlerinin sessizce etkisiz olduğunu açıkça belirtir. Testte her ikisi de 200 döndü, geri yansıtılan bir şey yoktu ve yanıt biçiminde değişiklik olmadı Düşünme modunda çıktı kararlılığı için örnekleme parametrelerine güvenmeyin; kesinlik gerektiğinde yapılandırılmış çıktı kullanın
Önek devamı / FIM yalnızca resmi beta uç noktasındadır prefix için resmi açıklama şöyledir: "(Beta) … Bu özelliği kullanmak için base_url="https://api.deepseek.com/beta" ayarlamanız gerekir" ve FIM tamamlama da benzer şekilde bir Beta özelliğidir. AIHubMix üretim ortamında doğrulandı: standart uç noktaya prefix: true göndermek 200 döndürür ama önek sessizce atılır; bu, resmi ifadeyle yön olarak tutarlıdır Kontrollü çıktı biçimi için yapılandırılmış çıktıyı (bölüm 5) veya stop ile kesmeyi kullanın
Paralel araç çağrısı devre dışı bırakılamaz Bkz. bölüm 4: DeepSeek, hem Responses hem de Anthropic sayfalarında, bu anahtarın yok sayıldığını ve paralel çağrının her zaman açık olduğunu belirtir Seri yürütmeye ihtiyaç duyduğunuzda çağrıları istemci tarafında sıraya koyun

9.2 AIHubMix Yolundaki Mevcut Davranış

Davranış Testlerin gösterdiği Yapılacaklar
Responses hata nesnelerinde standart dışı type 4xx yanıtlarındaki error.type değeri Aihubmix_api_error iken, aynı sınıf hata Messages'ta standart invalid_request_error döndürür Dallanmayı error.type metnine göre değil, HTTP durum koduna göre yapın
Messages'ta düşünme token'ları 0 sayılıyor Yanıt bir thinking bloğu içerir, ancak usage.output_tokens_details.thinking_tokens her zaman 0'dır; bu, üretilen düşünme içeriğiyle çelişir. Entegre ettiğimiz Anthropic sözleşmesine göre bu alan zorunludur ve output_tokens değerine eşit veya daha küçük olmalıdır Düşünme maliyeti hesabı için Chat'te completion_tokens_details.reasoning_tokens veya Responses'ta output_tokens_details.reasoning_tokens kullanın
Messages, model değerini deepseek-v4-pro olarak geri döndürür İstek deepseek-v4-pro-0813 gönderir, yanıt ise deepseek-v4-pro döndürür. Neden adlandırmadır: DeepSeek'in tek resmi API model adı deepseek-v4-pro'dur ve 0813 sürüm etiketidir Yanıttaki model alanını model yönlendirme kontrolleri veya kullanım ataması için tek dayanak yapmayın

9.3 DeepSeek Tanımlamadığı İçin Kesin Hüküm Yok

reasoning_effort için enum dışında bir değer göndermek (ör. bogus_xyz) hata vermeden, normal bir cevapla 200 döndürür ve gözlemlenebilir bir etkisi olmaz. Gerçek açık: bu yol şu anda reasoning_effort enum'unu doğrulamıyor. Belirsiz olan ise bunun yapması gerekip gerekmediği: DeepSeek geçerli enum'u yayımlıyor ama geçersiz bir düzeyin reddedilip reddedilmeyeceğini hiçbir zaman belirtmiyor, dolayısıyla karşılaştırılacak bir temel yok. Bu nedenle bu durum ne resmi davranış ne de yolumuzdaki bir kusur olarak sayılır. Güvenli istemci tarafı yaklaşımı: düzeyi 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 ifadesi olarak işaretlenenler dışında, her sonuç 2026-08-13 tarihinde AIHubMix üretim API'lerine yapılan gerçek çağrılardan elde edilmiştir.

Yetenek Chat Completions Responses Messages
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 düzeyi 🟡 reasoning_effort kabul edilir, ayırt edici bir sinyal yok ✅ reasoning.effort (yalnızca none doğrulanabilir) 🟡 output_config.effort kabul edilir, geri yansıtılan bir şey yok
Düşünme içeriği döndürülür ✅ reasoning_content alanı ✅ reasoning çıktı öğesi ✅ thinking içerik bloğu
Zorunlu düşünme geçmişinin geri gönderilmesi ✅ reasoning_content eksikse → 400 ✅ reasoning öğesi eksikse → 400 ✅ thinking bloğu eksikse → 400
Araç çağırma ✅ iç içe tools + adlandırılmış tool_choice ✅ düz tools ✅ input_schema + tool_choice: {"type":"any"}
required ile çağrıyı zorlamak ❗ Düşünme açıkken 400; önce düşünmeyi kapatın ❗ soldakiyle aynı ✅ {"type": "any"}
Paralel araç çağrısı (devre dışı bırakılamaz) ➖ resmi Chat API'de böyle bir alan yok ❗ DeepSeek, parallel_tool_calls değerinin yok sayıldığını ve paralel çağrının her zaman açık olduğunu belirtir ❗ DeepSeek, disable_parallel_tool_use değerinin yok sayıldığını belirtir; testte yine iki tool_use bloğu döner
Yapılandırılmış çıktı ✅ response_format (json_object) ✅ text.format (json_schema + strict) ➖ protokol alanı yok; şemayı bir araç içinde taşıyın
Otomatik önbellek isabeti ö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 ✅ top_logprobs yalnızca son metin öğesinde ➖
Web araması ➖ resmi Chat API'de arama alanı yok; bir tane göndermek de arama yapmaz ✅ tools: [{"type": "web_search"}] ✅ web_search_20250305
Durdurma dizileri ✅ stop ➖ protokolde durdurma dizisi alanı yok (uzunluğu yalnızca max_output_tokens sınırlar) ✅ stop_sequences (stop_reason: "stop_sequence")

Açıklama: ✅ doğrulanmış şekilde çalışıyor · 🟡 kabul ediliyor ancak etkisi doğrulanamıyor · ❗ dikkat gerektirir (yukarıdaki notlara bakın) · ➖ bu API'de böyle bir kavram yok

SSS

deepseek-v4-pro-0813, AIHubMix üzerinde hangi API'leri destekliyor?
Chat Completions (/v1/chat/completions), Responses (/v1/responses) ve Claude uyumlu Messages API (/v1/messages).

Çok turlu bir konuşma neden aniden 400 döndürüyor?
En yaygın neden, geri gönderilmeyen düşünme geçmişidir. Düşünme modunda, önceki turun düşünme içeriği aynen yeniden gönderilmelidir: Chat için asistan mesajındaki reasoning_content, Responses için type="reasoning" çıktı öğesi ve Messages için thinking içerik bloğu. Araçlarla çok turlu kullanımda bu sorun en çok hissedilir; birçok çerçeve geçmişi oluştururken çıktı öğelerini type == "message" koşuluyla filtreler ve bu da reasoning öğesini düşürür.

Düşünme kapatılabilir mi?
Evet. Chat veya Messages'ta thinking: {"type": "disabled"}, Responses'ta ise reasoning: {"effort": "none"} gönderin. Kapatıldığında hem düşünme içeriği hem de düşünme token'ları ortadan kalkar.

Üç reasoning_effort seviyesi birbirinden farklı mı?
low / high / max seviyelerinin tümü kabul edilir (varsayılan high; medium ve xhigh uyumluluk için high değerine eşlenir). Testlerde aynı soru için düşünme token sayıları seviyeler arasında monoton bir fark göstermedi ve hiçbir şey geri yansıtılmadı; dolayısıyla fark çağıran taraftan doğrulanamıyor. Yalnızca Responses'taki none seviyesi (düşünme kapalı) net ve gözlemlenebilir bir fark yaratıyor.

tool_choice: "required" neden 400 döndürüyor?
Düşünme açıkken bu değer kabul edilmez (hata gövdesinde Thinking mode does not support this tool_choice yazar). Düşünme açıkken belirli bir çağrıyı zorlamak için adlandırılmış işlevli bir tool_choice kullanın ({"type": "function", "function": {"name": "..."}}); ya da önce düşünmeyi kapatın ve ardından required kullanın.

Bağlam önbelleği nasıl etkinleştirilir?
Etkinleştirmeniz gerekmez; otomatiktir. Sabit, değişmeyen içerikleri (sistem istemleri, bilgi parçacıkları, araç tanımları) isteğin başına koyun; isabet sayısı usage içinde raporlanır: Chat'te prompt_tokens_details.cached_tokens, Responses'ta input_tokens_details.cached_tokens ve Messages'ta 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 galerisini ziyaret edin.

İlgili uygulamalı rehberler: Kimi K3 uygulamalı rehberi (yeni parametreler ve üç API destek matrisi) ve GPT-5.6 istem önbellekleme ve faturalandırma değişiklikleri.

Birden çok yapay zekâ sağlayıcısına tek ağ geçidi. Üretim için tasarlandı.

AIHubMix sitesini ziyaret edin