Kembali ke blog

RAG & dataPanduan

Berapa biaya satu pertanyaan RAG: berapa banyak chunk yang dikirim

Estimasi token dalam satu pertanyaan RAG, lihat biaya 1.000 dan 100.000 pertanyaan berdasarkan harga live, dan pilih jumlah chunk yang sesuai anggaran Anda.

Oleh CheapTokens TeamDiterbitkan 6 menit baca

Diagram: pertanyaan dan chunk hasil retrieval mengalir ke model, biaya bergantung pada jumlah chunk
Di halaman ini
  1. Apa saja yang masuk ke satu permintaan RAG
  2. Berapa biaya 1.000 pertanyaan
  3. Top-k: setiap chunk menambahkan jumlah yang sama
  4. Seluruh dokumen di prompt, atau empat chunk
  5. Kirim permintaannya
  6. Empat cara memperkecil input

Chatbot dokumen Anda berjalan, invoice pertama datang, dan nilainya lebih besar daripada yang pantas dibayar untuk pertanyaan-pertanyaan itu. Di hampir setiap setup RAG, uangnya mengalir ke satu tempat: chunk hasil retrieval yang Anda tempelkan di depan setiap pertanyaan. Satu pertanyaan RAG memakan token dari pertanyaan, instruksi Anda, dan N chunk di sisi input, ditambah jawaban singkat di sisi output. Chunk adalah bagian yang Anda kendalikan, dan setiap chunk menambahkan jumlah token yang sama ke setiap permintaan.

Panduan ini menghitung satu permintaan, memberi harga untuk 1.000 dan 100.000 permintaan berdasarkan harga live, dan menunjukkan apa yang berubah saat Anda memindahkan top-k dari 3 ke 10. Retrieval itu sendiri (vector store Anda, chunking Anda) tetap di sisi Anda; hanya panggilan generasi akhir yang masuk ke API model. Jika penagihan input dan output masih baru bagi Anda, mulailah dengan input vs output tokens.

Apa saja yang masuk ke satu permintaan RAG#

Misalkan Anda menjalankan bot dukungan atas dokumen perusahaan. Seorang pelanggan bertanya, "Bagaimana cara mereset login dua faktor?", retriever Anda mengembalikan lima bagian terbaik, dan Anda mengirim ini ke model:

  • system prompt: "Jawab hanya dari konteks. Jika tidak ada, katakan demikian." — sekitar 300 token setelah Anda menambahkan aturan format;
  • pertanyaan dengan sedikit konteks chat — sekitar 200 token;
  • 5 chunk masing-masing sekitar 500 token — 5 × 500 = 2.500 token;
  • jawaban: dua atau tiga paragraf pendek — sekitar 300 token keluar.

Sisi input adalah 2.500 + 300 + 200 = 3.000 token, sisi output sekitar 300. Ini adalah asumsi penulis untuk bot dukungan tipikal; ganti dengan angka Anda sendiri. Semua di bawah ini menggunakan satu permintaan ini sebagai unit.

Cara cepat melihat bentuknya: chunk kira-kira lima per enam dari seluruh input, dan input sepuluh kali lipat jawaban. Coba estimasinya sendiri:

Tebak angkanya

Berapa banyak token input yang dikirim oleh permintaan di atas?

Tampilkan jawaban

Jawaban: 3.000

3.000: 5 chunk × 500 = 2.500, ditambah 300 untuk system prompt dan 200 untuk pertanyaan. Chunk mendominasi.

Berapa biaya 1.000 pertanyaan#

Satu permintaan terlalu kecil untuk terasa, jadi skalakan. Dengan 3.000 token masuk dan 300 keluar, 1.000 pertanyaan mengirim 3.000.000 token input dan menghasilkan 300.000 token output. Geser slider di bawah untuk menyesuaikan dengan bot Anda sendiri; situs menghitung ulang berdasarkan harga live untuk setiap model.

Kalkulator biaya

Satu hari bot dukungan

Token input per permintaan: 3.000 · Token output per permintaan: 300 · Permintaan per hari: 1.000

ModelPer hariPer bulan
GLM-5.3-Flash$0.072$2.16
DeepSeek-V4-Flash$0.075$2.25
MiniMax-M2.7$0.195$5.85

Tabel menunjukkan beban kerja yang sama untuk ketiga model, dengan referensi OpenRouter di sebelahnya. Dihitung secara total, dengan input dan output digabung, masing-masing lebih murah daripada OpenRouter di sini.

Model Per permintaan 1.000 permintaan OpenRouter, 1.000 permintaan
GLM-5.3-Flash $0.000072 $0.072 $0.147
DeepSeek-V4-Flash $0.000075 $0.075 $0.19
MiniMax-M2.7 $0.0002 $0.195 $1.26

3.000 token input dan 300 token output per permintaan. Harga per 1 juta token adalah harga saat ini dan berubah seiring tarif kami; kolom OpenRouter menunjukkan harga referensi untuk beban kerja yang sama.

Dan pada 100.000 pertanyaan? Itu 300.000.000 token masuk dan 30.000.000 keluar. Pada DeepSeek-V4-Flash itu $7.50, pada GLM-5.3-Flash $7.20, pada MiniMax-M2.7 $19.50. Harga tetap per model, tanpa jam sibuk, jadi batch malam dan chat siang hari berbiaya sama per token. Lihat daftar harga lengkap di halaman harga.

Top-k: setiap chunk menambahkan jumlah yang sama#

Berikut skenario kedua: asisten wiki internal. Seseorang menyarankan, "Mari kirim 10 chunk alih-alih 3, untuk berjaga-jaga." Input tumbuh dalam garis lurus: setiap chunk menambah 500 token lagi di setiap permintaan.

Tiga chunk dibandingkan sepuluh: pertanyaan yang sama, ukuran input berbeda
Token input per permintaan pada top-k 3 dan top-k 10, dengan asumsi 500 token per chunk

2.000 dibandingkan 5.500 token: jawabannya sama panjang, jadi seluruh selisih tagihan asisten wiki ada di input. Apakah itu menghasilkan jawaban lebih baik adalah pertanyaan kualitas: setelah titik di mana bagian yang tepat sudah ada di konteks, chunk tambahan sebagian besar hanya menambah noise dan biaya. Cara praktis memilih k adalah mengambil sekumpulan pertanyaan nyata, memeriksa pada k berapa bagian yang tepat muncul, dan berhenti sedikit di atasnya.

Context window adalah batas lainnya. Ketiga model di sini punya ruang yang cukup untuk top-k biasa: 180K token untuk MiniMax-M2.7, 380K untuk DeepSeek-V4-Flash, dan 390K untuk GLM-5.3-Flash. Batas output berbeda: hingga 8.192 token per jawaban untuk GLM-5.3-Flash dan MiniMax-M2.7, hingga 32.768 untuk DeepSeek-V4-Flash, yang penting jika jawaban Anda berupa laporan panjang alih-alih balasan singkat.

Pilih kasus Anda

Apa kasus RAG Anda?

Jawaban singkat dari beberapa chunk

Bot dukungan atau FAQ dengan top-k 3–6 dan jawaban beberapa ratus token cocok untuk ketiga model. Pilih berdasarkan kualitas pada pertanyaan Anda sendiri, lalu biarkan tabel biaya di atas yang memutuskan.

Jawaban panjang dan ringkasan

Jika jawaban mencapai ribuan token, DeepSeek-V4-Flash mengizinkan hingga 32.768 token output per jawaban dan konteks 380K.

Banyak dokumen per permintaan

Jika Anda ingin menggabungkan banyak bagian atau seluruh seksi, GLM-5.3-Flash memiliki konteks terbesar dari ketiganya, 390K.

Seluruh dokumen di prompt, atau empat chunk#

Skenario ketiga: tanya jawab kontrak. Versi malas menempelkan seluruh PDF 30.000 token ke setiap pertanyaan. Versi retrieval mengirim pertanyaan, instruksi, dan empat chunk relevan masing-masing sekitar 650 token, totalnya kira-kira 3.000 token. 1.000 pertanyaan yang sama, jawaban 300 token yang sama:

Biaya 1.000 pertanyaan kontrak pada DeepSeek-V4-Flash
  • Seluruh dokumen 30.000 token di setiap permintaan$0.48
  • Pertanyaan, instruksi, dan 4 chunk hasil retrieval, sekitar 3.000 token$0.075

Dokumen penuh mengirim sepuluh kali lipat input, 30.000 ÷ 3.000 = 10, untuk pertanyaan yang sama. Itu masih masuk akal untuk satu pertanyaan sekali jalan tentang dokumen yang muat di konteks. Untuk bot yang menjawab sepanjang hari, itu adalah default yang mahal. Jika banyak dari input itu adalah teks yang sama setiap kali, baca tentang prompt caching.

Kirim permintaannya#

Di bawah ini adalah langkah generasi. Bagian retrieval adalah milik Anda: chunks adalah apa pun yang dikembalikan vector store Anda. Kode yang sama berfungsi dengan OpenAI SDK atau curl biasa.

Ajukan pertanyaan dengan chunk hasil retrieval

Python

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",
    api_key="YOUR_CHEAPTOKENS_KEY",
)

chunks = ["Chunk 1 text...", "Chunk 2 text...", "Chunk 3 text..."]
context = "\n\n---\n\n".join(chunks)

resp = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-V4-Flash-0731",
    max_tokens=400,
    messages=[
        {"role": "system", "content": "Answer only from the context. If the answer is not there, say so."},
        {"role": "user", "content": f"Context:\n{context}\n\nQuestion: How do I reset two-factor login?"},
    ],
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)

curl

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer YOUR_CHEAPTOKENS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
    "max_tokens": 400,
    "messages": [
      {"role": "system", "content": "Answer only from the context. If the answer is not there, say so."},
      {"role": "user", "content": "Context:\nChunk 1...\n\nQuestion: How do I reset two-factor login?"}
    ]
  }'

Baris terakhir contoh Python adalah yang berguna. usage.prompt_tokens adalah input nyata Anda per pertanyaan; bandingkan dengan estimasi 3.000 dan ganti asumsi saya dengan angka Anda. Gunakan id model lengkap, seperti pada contoh: deepseek-ai/DeepSeek-V4-Flash-0731. Id-nya tercantum di dokumentasi. Setup lengkap ada di dokumentasi, dan jika Anda ingin melihat bagaimana token sebuah bot terakumulasi sepanjang dialog, mengapa chat panjang lebih mahal membahas bagian riwayat.

Empat cara memperkecil input#

Mulailah dengan max_tokens, yang membatasi jawaban dan melindungi Anda dari balasan yang membengkak. Lalu turunkan k ke nilai terkecil yang masih menemukan bagian yang tepat. Buat chunk lebih padat, sehingga 500 token membawa 500 token makna dan bukan header serta boilerplate. Buang chunk duplikat sebelum dikirim: dua bagian yang hampir identik berbiaya dua kali dan hanya mengatakan sekali. Dan ukur dengan usage pada traffic nyata, karena dugaan tentang chunk 500 token hanyalah dugaan. Untuk gambaran lebih luas tentang ke mana token pergi dalam panggilan API, lihat berapa banyak token yang digunakan satu permintaan.

Masukkan token per permintaan Anda sendiri ke kalkulator di atas untuk memberi harga bot Anda pada ketiga model; jika jawaban Anda panjang, DeepSeek-V4-Flash adalah yang pertama perlu dilihat.