Назад в блог

RAG и данныеИнструкция

Сколько стоит вопрос в RAG и сколько чанков слать

Прикиньте токены одного RAG-вопроса, посмотрите цену 1000 и 100 000 вопросов на живых ценах и выберите число чанков под свой бюджет.

Автор: CheapTokens TeamОпубликовано 5 мин чтения

Схема: вопрос и найденные чанки идут в модель, стоимость зависит от числа чанков
Содержание
  1. Из чего состоит один RAG-запрос
  2. Сколько стоят 1000 вопросов
  3. Top-k: каждый чанк добавляет одно и то же
  4. Весь документ в промпте или четыре чанка
  5. Отправьте запрос
  6. Четыре способа сократить вход

Бот по документам заработал, пришёл первый счёт — и он больше, чем стоят сами вопросы. Почти в любом RAG деньги уходят в одно место: найденные чанки, которые вы вставляете перед каждым вопросом. Один RAG-вопрос стоит токенов вопроса, ваших инструкций и N чанков на входе плюс короткого ответа на выходе. Чанки — та часть, которой вы управляете, и каждый добавляет одно и то же число токенов в каждый запрос.

Здесь мы посчитаем один запрос, оценим 1000 и 100 000 запросов на живых ценах и посмотрим, что меняется при переходе с top-k 3 на 10. Сам поиск (ваше векторное хранилище и нарезка) остаётся на вашей стороне; к API уходит только последний вызов — генерация. Если про оплату входа и выхода вы раньше не читали, начните с входных и выходных токенов.

Из чего состоит один RAG-запрос#

Допустим, у вас бот поддержки по документам компании. Клиент спрашивает: «Как сбросить двухфакторный вход?», поиск возвращает пять лучших фрагментов, и вы отправляете модели вот что:

  • системный промпт: «Отвечай только по контексту. Если там нет ответа, так и скажи» — около 300 токенов вместе с правилами оформления;
  • вопрос с небольшим куском диалога — около 200 токенов;
  • 5 чанков по 500 токенов — 5 × 500 = 2 500 токенов;
  • ответ: два-три коротких абзаца — около 300 токенов на выходе.

Вход получается 2 500 + 300 + 200 = 3 000 токенов, выход — около 300. Это допущения автора для типичного бота поддержки; подставьте свои числа. Дальше этот запрос — наша единица измерения.

Картина простая: чанки — примерно пять шестых всего входа, а вход в десять раз больше ответа. Оцените сами:

Угадайте число

Сколько входных токенов уходит в запросе выше?

Показать ответ

Ответ: 3 000

3 000: 5 чанков × 500 = 2 500, плюс 300 на системный промпт и 200 на вопрос. Чанки занимают почти весь вход.

Сколько стоят 1000 вопросов#

Один запрос слишком мал, чтобы его почувствовать, поэтому умножаем. При 3 000 токенов на входе и 300 на выходе 1000 вопросов отправляют 3 000 000 входных токенов и генерируют 300 000 выходных. Подвигайте значения ниже под свой бот: сайт пересчитает всё на живых ценах для каждой модели.

Калькулятор стоимости

День работы бота поддержки

Входные токены на запрос: 3 000 · Выходные токены на запрос: 300 · Запросов в день: 1 000

МодельВ деньВ месяц
GLM-5.3-Flash$0.072$2.16
DeepSeek-V4-Flash$0.075$2.25
MiniMax-M2.7$0.195$5.85

В таблице та же нагрузка для трёх моделей, рядом — справочная цена OpenRouter. В сумме, с учётом входа и выхода, каждая из них здесь выходит дешевле OpenRouter.

Модель За запрос 1 000 запросов OpenRouter, 1 000 запросов
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 входных и 300 выходных токенов на запрос. Цены за 1M токенов актуальны и меняются вместе с нашими тарифами; столбец 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: каждый чанк добавляет одно и то же#

Второй сценарий — внутренний помощник по вики. Кто-то предлагает: «Давайте слать 10 чанков вместо 3, на всякий случай». Вход растёт по прямой: каждый чанк — ещё 500 токенов в каждом запросе.

Три чанка и десять: один вопрос, разный размер входа
Входные токены на запрос при top-k 3 и top-k 10 при допущении 500 токенов на чанк

2 000 против 5 500 токенов: ответ той же длины, так что вся разница в счёте помощника — это вход. Даст ли это ответ лучше — вопрос качества: когда нужный фрагмент уже в контексте, лишние чанки в основном добавляют шум и расходы. Практичный способ выбрать k: взять набор реальных вопросов, посмотреть, при каком k нужный фрагмент попадает в выдачу, и остановиться чуть выше.

Второе ограничение — контекстное окно. У всех трёх моделей места хватает для обычного top-k: 180K токенов у MiniMax-M2.7, 380K у DeepSeek-V4-Flash и 390K у GLM-5.3-Flash. Длина ответа отличается: до 8 192 токенов у GLM-5.3-Flash и MiniMax-M2.7, до 32 768 у DeepSeek-V4-Flash — это важно, если ответы у вас длинные отчёты, а не короткие реплики.

Выберите свой случай

Какой у вас RAG-случай?

Короткие ответы из нескольких чанков

Бот поддержки или FAQ с top-k 3–6 и ответами в пару сотен токенов подходит любой из трёх моделей. Выбирайте по качеству на своих вопросах, а потом смотрите на таблицу стоимости выше.

Длинные ответы и пересказы

Если ответы занимают тысячи токенов, DeepSeek-V4-Flash даёт до 32 768 токенов в ответе и контекст 380K.

Много документов в одном запросе

Если нужно объединять много фрагментов или целые разделы, у GLM-5.3-Flash самый большой контекст из трёх — 390K.

Весь документ в промпте или четыре чанка#

Третий сценарий — вопросы по договору. Ленивый вариант вставляет в каждый вопрос весь PDF на 30 000 токенов. Вариант с поиском отправляет вопрос, инструкции и четыре подходящих чанка по 650 токенов, всего около 3 000 токенов. Те же 1000 вопросов, те же ответы по 300 токенов:

Цена 1000 вопросов по договору на DeepSeek-V4-Flash
  • Весь документ на 30 000 токенов в каждом запросе$0.48
  • Вопрос, инструкции и 4 найденных чанка, около 3 000 токенов$0.075

Весь документ отправляет в десять раз больше входа, 30 000 ÷ 3 000 = 10, ради того же вопроса. Он оправдан для одного разового вопроса по документу, который помещается в контекст. Для бота, который отвечает весь день, это дорогой вариант по умолчанию. А если большая часть входа каждый раз одинакова, почитайте про кэширование промпта.

Отправьте запрос#

Ниже — шаг генерации. Поиск ваш: chunks — то, что вернуло ваше векторное хранилище. Тот же код работает с OpenAI SDK и обычным curl.

Вопрос с найденными чанками

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?"}
    ]
  }'

Самая полезная строка в примере на Python — последняя. usage.prompt_tokens — ваш настоящий вход на вопрос; сравните его с оценкой в 3 000 и замените мои допущения своими числами. Берите полный id модели, как в примере; все id — в документации. Полная настройка — в документации, а как токены копятся по ходу диалога, разбирает статья почему длинный чат стоит дороже.

Четыре способа сократить вход#

Начните с max_tokens: он ограничивает ответ и защищает от затянувшегося вывода. Затем уменьшите k до наименьшего значения, при котором нужный фрагмент всё ещё находится. Делайте чанки плотнее, чтобы 500 токенов несли 500 токенов смысла, а не заголовки и шаблонный текст. Убирайте дубли перед отправкой: два почти одинаковых фрагмента стоят дважды, а говорят один раз. И мерьте по usage на реальном трафике, потому что чанки по 500 токенов — пока только догадка. Шире про то, куда уходят токены в вызове API, — в статье сколько токенов использует запрос.

Подставьте свои токены на запрос в калькулятор выше, чтобы прикинуть цену бота на всех трёх моделях; если ответы длинные, начните с DeepSeek-V4-Flash.