RAGとデータガイド
RAGの質問にかかるコスト:チャンクをいくつ送るか
RAGの質問1回のトークンを見積もり、1,000回と100,000回の質問のコストを最新価格で確認し、予算に合うチャンク数を選びましょう。

このページの内容
ドキュメントチャットボットが動き、最初の請求書が届くと、その金額は質問に見合わないほど大きい。ほぼすべてのRAG構成でコストがかかるのは一箇所だ。それは、すべての質問の前に貼り付ける取得済みチャンクである。RAGの質問1回には、入力側で質問・指示・N個のチャンクのトークン数がかかり、出力側で短い回答がかかる。チャンクはあなたが制御できる部分であり、1つ追加するごとにすべてのリクエストに同じトークン数が加算される。
このガイドではリクエスト1回を数え、1,000回と100,000回のコストを最新価格で算出し、top-kを3から10に変えたときに何が変わるかを示す。検索自体(ベクターストア、チャンキング)はあなたの側に残り、モデルAPIに送られるのは最終的な生成呼び出しだけである。入力と出力の課金が初めてなら、入力トークンと出力トークンから始めよう。
RAGリクエスト1回の中身#
社内ドキュメント上で動くサポートボットを考えよう。顧客が「二要素ログインをリセットするには?」と尋ね、検索器が最上位の5つのパッセージを返し、これをモデルに送るとする。
- システムプロンプト:「コンテキストからのみ回答せよ。そこになければそう言え。」— 書式ルールを加えると約300トークン。
- 質問と少しのチャットコンテキスト — 約200トークン。
- 各約500トークンのチャンク5個 — 5 × 500 = 2,500トークン。
- 回答:短い段落2〜3個 — 出力約300トークン。
入力側は2,500 + 300 + 200 = 3,000トークン、出力側は約300トークン。これらは典型的なサポートボットに対する著者の仮定であり、自分の数値に置き換えてほしい。以下ではすべてこのリクエスト1回を単位とする。
全体の形を素早く見るには、チャンクが入力全体のおよそ6分の5を占め、入力が回答の10倍であることに注目しよう。自分で見積もってみよう。
数字を当てる
上のリクエストは入力トークンをいくつ送るか?
あなたの予想
010,000
答えを表示
答え: 3,000
3,000:チャンク5個 × 500 = 2,500、さらにシステムプロンプト300と質問200。チャンクが大部分を占める。
1,000回の質問にかかるコスト#
リクエスト1回では実感できないので、スケールさせよう。入力3,000トークン、出力300トークンなら、1,000回の質問で入力3,000,000トークンを送り、出力300,000トークンを生成する。下のスライダーを自分のボットに合わせて動かすと、サイトがすべてのモデルの最新価格で再計算する。
コスト計算機
サポートボットの1日
リクエストあたりの入力トークン数: 3,000 · リクエストあたりの出力トークン数: 300 · 1日あたりのリクエスト数: 1,000
| モデル | 1日あたり | 1か月あたり |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.072 | $2.16 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.075 | $2.25 |
| MiniMax-M2.7$0.05$0.15 | $0.195 | $5.85 |
表は3モデルすべてについて同じワークロードを示し、横にOpenRouterの参照値がある。入力と出力を合わせた合計で数えると、ここではどれもOpenRouterより安くなる。
| モデル | 入力 $/1M | 出力 $/1M | リクエストあたり | 1,000 リクエスト | OpenRouter、1,000 リクエスト |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000072 | $0.072 | $0.147 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000075 | $0.075 | $0.19 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.0002 | $0.195 | $1.26 |
リクエストあたり 3,000 入力トークンと 300 出力トークン。100万トークンあたりの価格は現行のもので、当社の料金体系に合わせて変動します。OpenRouter 列は同じワークロードの参考価格を示しています。
では100,000回の質問なら? 入力300,000,000トークン、出力30,000,000トークンである。DeepSeek-V4-Flashでは$7.50、GLM-5.3-Flashでは$7.20、MiniMax-M2.7では$19.50。価格はモデルごとに固定で、ピーク時間はないため、夜間のバッチと日中のチャットはトークンあたり同じコストになる。全価格表は料金ページを参照。
Top-k:どのチャンクも同じ量を加算する#
2つ目のシナリオ:社内wikiアシスタント。誰かが「念のため3個ではなく10個のチャンクを送ろう」と言う。入力は直線的に増える。各チャンクはすべてのリクエストにさらに500トークンを加える。

2,000対5,500トークン。回答の長さは同じなので、wikiアシスタントの請求額の差はすべて入力である。それがより良い回答をもたらすかは品質の問題だ。正しいパッセージがすでにコンテキストにある地点を超えると、余分なチャンクは主にノイズとコストを加える。kを選ぶ実用的な方法は、実際の質問のセットを取り、正しいパッセージが現れるkを確認し、その少し上で止めることだ。
コンテキストウィンドウがもう一つの制限である。ここにある3モデルはすべて通常のtop-kには十分な余裕がある。MiniMax-M2.7は180Kトークン、DeepSeek-V4-Flashは380K、GLM-5.3-Flashは390K。出力制限は異なる。GLM-5.3-FlashとMiniMax-M2.7は回答あたり最大8,192トークン、DeepSeek-V4-Flashは最大32,768トークンで、回答が短い返信ではなく長いレポートの場合に重要になる。
ケースを選ぶ
あなたのRAGケースは?
オプションを選択して答えを表示
少数のチャンクからの短い回答
サポートボットやFAQでtop-kが3〜6、回答が数百トークンなら、3モデルのどれでも合う。自分の質問で品質によって選び、コストは上の表で決めよう。
長い回答と要約
回答が数千トークンに及ぶなら、DeepSeek-V4-Flashは回答あたり最大32,768出力トークンと380Kコンテキストを許容する。
リクエストあたり多数のドキュメント
多くのパッセージやセクション全体をマージしたいなら、GLM-5.3-Flashが3モデル中最大のコンテキスト390Kを持つ。
プロンプトに文書全体、それとも4つのチャンク#
3つ目のシナリオ:契約書Q&A。怠惰な方法は、30,000トークンのPDF全体をすべての質問に貼り付ける。検索を使う方法は、質問、指示、各約650トークンの関連チャンク4個を送り、合計約3,000トークン。同じ1,000回の質問、同じ300トークンの回答:
文書全体は同じ質問に対して10倍の入力(30,000 ÷ 3,000 = 10)を送る。コンテキストに収まる文書についての1回限りの質問ならまだ意味がある。一日中答えるボットには高くつくデフォルトだ。その入力の多くが毎回同じテキストなら、プロンプトキャッシュについて読もう。
リクエストを送る#
以下は生成ステップである。検索部分はあなたのものだ。chunksはベクターストアが返したものなら何でもよい。同じコードはOpenAI SDKでも素のcurlでも動く。
取得したチャンクで質問する
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
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?"}
]
}'Python例の最後の行が有用だ。usage.は質問あたりの実際の入力である。3,000の見積もりと比較し、私の仮定を自分の数値に置き換えよう。例のように完全なモデルIDを使う:deepseek-。IDはドキュメントに記載されている。完全なセットアップはドキュメントにあり、ボットのトークンが対話全体でどう積み上がるかを見たいなら、長いチャットが高くつく理由が履歴部分を扱っている。
入力を減らす4つの方法#
まずmax_tokensから始めよう。これは回答を上限し、暴走した返答から守る。次にkを、正しいパッセージをまだ見つけられる最小値まで下げる。チャンクをより密にし、500トークンがヘッダーや定型文ではなく500トークン分の意味を運ぶようにする。送信前に重複チャンクを削除する。ほぼ同一の2つのパッセージは2倍のコストで1回しか語らない。そして実際のトラフィックでusageを使って測定する。500トークンチャンクについての推測は推測にすぎないからだ。API呼び出しでトークンがどこへ行くかをより広く見るには、リクエストが使うトークン数を参照。
リクエストあたりの自分のトークンを上の計算機に入れて、3モデルすべてでボットの価格を算出しよう。回答が長いなら、まずDeepSeek-V4-Flashを見るべきだ。



