Tanpa KYC — tanpa ID, tanpa selfie, tanpa dokumen. Bayar dengan kripto: BTC, USDT, USDC, ETH, SOL, LTC
Bahasa: Bahasa Indonesia
Dapatkan API key

Docs · streaming

Streaming response: jawaban saat ditulis

Dengan stream: true, jawaban tiba dalam potongan kecil saat model menulisnya, seperti antarmuka chat menampilkan teks yang muncul. Formatnya format OpenAI: server-sent events, satu chunk JSON per event, lalu [DONE].

Terakhir diperbarui: · 3 menit baca

Jawaban singkat

Bagaimana cara melakukan streaming chat completion dari LLMwithCrypto?

Tambahkan "stream": true ke body POST https://llmwithcrypto.com/api/v1/chat/completions. LLMwithCrypto lalu menjawab dengan server-sent events: setiap baris data: memuat chat.completion.chunk dengan sepotong teks di delta.content, dan stream berakhir dengan data: [DONE]. Tambahkan "stream_options": {"include_usage": true} untuk mendapatkan jumlah token di chunk terakhir. Ini berfungsi di setiap model, sebagaimana didokumentasikan pada 23 Oktober 2026.

Mengapa perlu streaming sama sekali?

Untuk manusia, karena kata-kata pertama muncul seketika alih-alih setelah seluruh jawaban selesai ditulis. Jawaban panjang dari model besar bisa butuh banyak detik untuk selesai; dengan streaming, pembaca langsung mulai membaca.

Untuk program, ini kurang penting: skrip yang membutuhkan teks lengkap tidak mendapat apa pun dari streaming dan malah punya lebih banyak parsing. Lakukan streaming saat ada manusia yang menonton, dan kirim permintaan biasa jika tidak. Harganya sama saja. Anda membayar per token dari saldo Anda: token input dan output dihitung oleh tokenizer model itu sendiri dan ditagih sesuai harga model tersebut per 1M token. Panggilan yang berakhir dengan error tidak dikenai biaya.

curl: -N menjaga koneksi tetap tidak ter-buffer
curl -sN "https://llmwithcrypto.com/api/v1/chat/completions" \
  -H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [{"role": "user", "content": "Write a haiku about latency."}],
    "stream": true,
    "stream_options": {"include_usage": true},
    "max_tokens": 120
  }'
Python: cetak teks saat tiba
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
)

stream = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "Write a haiku about latency."}],
    stream=True,
    stream_options={"include_usage": True},
    max_tokens=120,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:
        print("\n", chunk.usage.prompt_tokens, "in,", chunk.usage.completion_tokens, "out")
Node.js: for await atas chunk-nya
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://llmwithcrypto.com/api/v1',
  apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});

const stream = await client.chat.completions.create({
  model: 'deepseek-v4.1-flash',
  messages: [{ role: 'user', content: 'Write a haiku about latency.' }],
  stream: true,
  stream_options: { include_usage: true },
  max_tokens: 120,
});
for await (const chunk of stream) {
  const text = chunk.choices[0]?.delta?.content;
  if (text) process.stdout.write(text);
  if (chunk.usage) console.log(`\n${chunk.usage.prompt_tokens} in, ${chunk.usage.completion_tokens} out`);
}

Seperti apa stream di wire?

Setiap event adalah satu baris yang dimulai dengan data: , diikuti baris kosong. Chunk pertama biasanya membawa role, chunk berikutnya beberapa karakter content masing-masing, dan chunk dengan finish_reason menutup jawaban. Dengan include_usage, satu chunk lagi menyusul dengan array choices kosong dan objek usage. Stream selalu berakhir dengan data: [DONE]. Id dan jumlah di bawah ini bersifat ilustratif.

Server-sent events dari satu jawaban singkat (ilustratif)
data: {"id":"chatcmpl-5a1e","object":"chat.completion.chunk","created":1792742400,"model":"deepseek-v4.1-flash","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null}]}

data: {"id":"chatcmpl-5a1e","object":"chat.completion.chunk","created":1792742400,"model":"deepseek-v4.1-flash","choices":[{"index":0,"delta":{"content":"Packets"},"finish_reason":null}]}

data: {"id":"chatcmpl-5a1e","object":"chat.completion.chunk","created":1792742400,"model":"deepseek-v4.1-flash","choices":[{"index":0,"delta":{"content":" cross the"},"finish_reason":null}]}

data: {"id":"chatcmpl-5a1e","object":"chat.completion.chunk","created":1792742400,"model":"deepseek-v4.1-flash","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: {"id":"chatcmpl-5a1e","object":"chat.completion.chunk","created":1792742400,"model":"deepseek-v4.1-flash","choices":[],"usage":{"prompt_tokens":14,"completion_tokens":19,"total_tokens":33}}

data: [DONE]

Bagaimana jika stream terputus?

Error yang ditemukan sebelum token pertama, seperti key salah atau saldo kosong, kembali sebagai error HTTP normal dengan body JSON, bukan sebagai stream; halaman error mencantumkannya. Error selama generasi mengakhiri stream lebih awal, tanpa finish_reason.

Jika Anda menutup koneksi sendiri, generasi berhenti. Anda lalu membayar input dan token yang sudah dihasilkan, seperti pada panggilan apa pun. Kode Anda harus menganggap stream yang berakhir tanpa finish_reason dan tanpa [DONE] sebagai tidak lengkap, dan mengirim ulang permintaan jika membutuhkan jawaban lengkap.

Streaming: pertanyaan umum

Apakah streaming lebih mahal?

Tidak. Token yang sama ditagih dengan harga yang sama. Anda membayar per token dari saldo Anda: token input dan output dihitung oleh tokenizer model itu sendiri dan ditagih sesuai harga model tersebut per 1M token. Panggilan yang berakhir dengan error tidak dikenai biaya.

Bisakah saya melakukan streaming dengan tool calling?

Bisa, pada model yang mendukung tool: nama fungsi dan argumen tiba dalam potongan di delta.tool_calls dan harus digabung sebelum digunakan. Halaman tool calling menunjukkan loop tanpa streaming, yang lebih sederhana untuk memulai.

Mengapa saya tidak mendapat usage dalam panggilan yang di-stream?

Tambahkan "stream_options": {"include_usage": true}. Tanpanya, stream tidak membawa jumlah token; dasbor tetap menampilkannya.

DeepSeek V4 Pro mulai $1.254 per 1M token input · tanpa KYC

Dapatkan API key