[МСК]

Влезет ли база знаний в окно модели

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

Ваши данные

400 стр.

Только то, что бот должен видеть по этой задаче. Архив за десять лет сюда не входит.

12 шт.

Сколько предыдущих сообщений подставляется в каждый новый запрос.

160 слов
300 шт.

Обращения всех пользователей вместе, в рабочий день.

Заполнение окна
172,2%

Доля свободной части окна, которую займут документы и история. Всё выше 100% в запрос не попадёт — обрезка начнётся с самого старого куска.

Нужен отбор фрагментов

Целиком база в один запрос не попадёт, поэтому в контекст кладут только релевантные куски — поиск подбирает их под конкретный вопрос. Разница в счёте видна в разбивке: платить приходится за тысячи токенов вместо сотен тысяч.

Из чего сложилось
База знаний, токенов
300 000
История диалога, токенов
3 072
Свободно под данные, токенов
176 000
Страниц влезает за раз
230
Остаётся за границей окна
127 072
Полный контекст в месяц
500 000 ₽
Отбор фрагментов в месяц
27 000 ₽
Разница в месяц
473 000 ₽

Расчёт даёт порядок величины. Точный объём в токенах зависит от токенизатора конкретной модели и от вёрстки ваших файлов — его считает счётчик токенов провайдера на реальных документах.

Как устроен расчёт

Всё сводится к одному сравнению. Слева — объём, который нужно положить в запрос: документы плюс история переписки. Справа — окно модели за вычетом того, что окно обязано занять и без документов.

Страница А4 плотного текста — примерно 1 800 знаков. Русский текст токенизируется в среднем по 2,4 знака на токен, отсюда 750 токенов на страницу регламента. Коэффициент проверяется за минуту: двадцать типичных страниц прогоняются через счётчик токенов провайдера, сумма делится на двадцать.

Диалог считается отдельной строкой. Реплика в 160 слов — это около 256 токенов, и в каждый новый запрос уходит вся сохранённая история целиком. Двенадцать реплик добавляют к запросу три тысячи токенов.

Что занимает окно до документов

Две статьи вычитаются всегда. Первая — системные инструкции и описания инструментов, к которым обращается бот: в расчёте это 4 000 токенов, а в контуре с десятком интеграций бывает вдвое больше. Вторая — запас под сам ответ, 10% окна.

Оставшееся и есть рабочее место под данные. Для окна на 200 тысяч это 176 тысяч токенов. Именно от этого числа считается заполнение, а не от паспортной цифры модели.

Что влияет на результат сильнее всего

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

История диалога ведёт себя иначе. Каждая новая реплика удлиняет запрос, и оплачивается это удлинение при каждом следующем обращении. Длинный разговор дорожает быстрее, чем растёт его польза, — поэтому порог компакции ставят заранее.

Тип документов даёт разброс в полтора раза. Таблицы и расшифровки звонков занимают около 1 000 токенов на страницу: там много цифр, имён и обрывочных фраз, которые токенизатор дробит мелко. Переписка укладывается в 600.

Три способа уложиться

Компакция сворачивает старую часть диалога в короткую сводку. Документы при этом остаются в запросе целиком. Способ работает, когда база помещается в окно, а переполнение создаёт только длина разговора.

Отбор фрагментов подбирает под каждый вопрос несколько кусков базы — в расчёте заложено 6 000 токенов подобранного текста. Запрос становится в десятки раз короче, к нему добавляется поиск по документам как отдельный сервис. Это единственный способ работать с базой, которая больше окна в разы.

Длинное окно снимает границу деньгами. Модель на миллион токенов примет базу в тысячу страниц, но полный контекст оплачивается в каждом запросе. При трёх сотнях обращений в день разница со строкой отбора фрагментов измеряется сотнями тысяч рублей в месяц.

При каких условиях полный контекст окупается

Условий три, и нужны они вместе. База стабильна и невелика — до полутора-двух сотен страниц. Обращений немного, десятки в день. Задача требует видеть документ целиком: сверка версий договора, поиск противоречий между регламентами, разбор длинного протокола.

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

Как только обращения становятся ежедневной рутиной, картина переворачивается. Тысяча запросов с полной базой внутри стоит дороже, чем поиск, индекс и его сопровождение вместе взятые.

Как проверить цифры на своих данных

Замер занимает полчаса. Берутся двадцать страниц, типичных для базы, и прогоняются через счётчик токенов той модели, которую предполагается использовать. Полученное число на страницу подставляется в поле «Что за документы» — вместо коэффициента по умолчанию.

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

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

Что остаётся за границами расчёта

Качество самих документов. Противоречащие друг другу версии регламента дают противоречивые ответы независимо от того, влезли они в окно или подбирались поиском. Приведение файлов в порядок часто оказывается крупнее счёта за токены.

Скорость ответа тоже не учтена. Запрос на 300 тысяч токенов обрабатывается заметно дольше короткого, и в чате поддержки эта задержка ощутима. Когда пользователи ждут ответ в реальном времени, короткий контекст выигрывает ещё и здесь.

Частые вопросы

Сколько страниц влезает в окно на 200 тысяч токенов?

Около 230 страниц плотного регламента при короткой истории диалога. Расчёт такой: из 200 000 вычитается запас на ответ (10%) и системные инструкции с описаниями инструментов (около 4 000 токенов), остаток делится на 750 токенов страницы. Для писем страниц выйдет больше, для таблиц — меньше.

Что происходит, когда контекст переполнен?

Обрезается самое старое содержимое — обычно начало диалога и первые вставленные документы. Модель об этом не сообщает и продолжает отвечать уверенным тоном, опираясь на то, что осталось. Поэтому переполнение ловят счётчиком токенов до отправки запроса.

Компакция или поиск по фрагментам?

Компакция сворачивает историю разговора и подходит, когда база помещается в окно, а растёт только диалог. Отбор фрагментов нужен, когда документы сами по себе больше окна. Часто работают вместе: фрагменты подбираются под вопрос, история сворачивается по достижении порога.

Может ли модель с окном на миллион токенов снять вопрос?

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

Откуда взята цена токена?

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

Учтены ли разовые работы?

Разовая подготовка в расчёт не входит. Для поиска по фрагментам это разбор файлов, нарезка и индексация; для полного контекста — чистка документов от дублей и устаревших версий. Объём этих работ оценивают по состоянию файлов, а 12 000 ₽ в строке отбора фрагментов — ежемесячная эксплуатация индекса.