İçeriğe atla
Tüm belgeler

Rehberler

Akış

stream: true ayarla; yanıt kelime kelime, OpenAI’nin sunucu tarafı olayları olarak gelir. Kullanım bilgisini istersen son parça çağrının ne kadara mal olduğunu söyler.

26 Ekim 2026 tarihinde kontrol edildi

Yanıtı akışla al

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
)

stream = client.chat.completions.create(
    model="deepseek-v4.1-flash-uncensored",
    messages=[{"role": "user", "content": "Tell me a story in three lines."}],
    stream=True,
    stream_options={"include_usage": True},
)
for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="", flush=True)
    if chunk.usage:
        print("\ncredits:", chunk.usage.model_extra.get("nokeep_credits"))

Ne gelir

The stream
data: {"choices":[{"index":0,"delta":{"role":"assistant","content":""}}]}
data: {"choices":[{"index":0,"delta":{"content":"The"}}]}
data: {"choices":[{"index":0,"delta":{"content":" lighthouse"}}]}
…
data: {"choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: {"choices":[],"usage":{"prompt_tokens":18,"completion_tokens":61,"nokeep_credits":0}}
data: [DONE]
  • Kelimeler delta.content içinde gelir. Düşünme açıksa, önce düşünme delta.reasoning_content içinde gelir.
  • Araç çağrıları delta.tool_calls içinde gelir; argümanları OpenAI’nin gönderdiği gibi parça parça gelir.
  • stream_options.include_usage ile boş bir choices listesi taşıyan son parça usage bilgisini taşır; buna nokeep_credits de dahildir, yani çağrının maliyeti.
  • Akış data: [DONE] ile biter.

Yanıtı erken durdur

Bağlantıyı kapat, model yazmayı bırakır. Durdurmadan önce gönderilen için ödersin, sonrası için ödemezsin. SDK’larda döngüden çık ve akışı kapat; bir uygulamada Durdur düğmesine bas.

Python
for chunk in stream:
    text = chunk.choices[0].delta.content if chunk.choices else ""
    if text and "THE END" in text:
        stream.close()  # the model stops here, and so does the bill
        break

Model önce durursa

Model bir akışı bitirmeden sonlandırırsa, [DONE]’dan önceki son olay OpenAI biçiminde bir hatadır ve kodu stream_cut’tır. Yazdığı kısım faturalandırılır, başka bir şey değil. Yeniden dene ya da gelenlerden devam et.

A cut stream
data: {"error":{"type":"api_error","code":"stream_cut","message":"The model stopped before it finished. What it wrote is billed, nothing more."}}
data: [DONE]

Sorular

Akış daha mı pahalı?

Hayır. Akışla gelen yanıt, tamamı gelen yanıtla aynı token’a mal olur.

Akışta neden x-nokeep-credits başlığı yok?

Başlıklar ilk kelimeden önce gönderilir; o zaman maliyet henüz bilinmez. Kullanım bilgisini iste ve son parçadaki nokeep_credits’i oku.