Оптимизация стоимости и кэширование prompt — Документация Entity Enricher

Оптимизация стоимости

При обогащении с помощью LLM счёт выставляется за токены. Entity Enricher создан так, чтобы отправлять как можно меньше оплачиваемых токенов без потери точности — прежде всего за счёт кэширования промптов, а также ограничения схем, умного гейтинга и меньшего числа напрасных повторов. Большая часть происходит автоматически; ничего здесь не требует дополнительной настройки.

Куда уходят затраты

Каждый вызов обогащения оплачивает входные токены (ваш промпт, схему и любые прикреплённые документы), выходные токены (структурированный результат) и — если включено — запросы веб-поиска. Самая большая и повторяющаяся часть — обычно входные данные: одни и те же системные инструкции, описание схемы и исходные документы пересылаются заново при каждом вызове. Кэширование этих общих входных данных — самый мощный рычаг, поэтому оно рассматривается первым.

Входные токены

Промпт + схема + вложения. Большие и часто повторяющиеся между вызовами — главная цель для кэширования и ограничения области.

Выходные токены

Структурированный результат. Остаётся компактным за счёт запроса у каждой модели только тех полей, которыми она фактически владеет.

Напрасные расходы

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

Кэширование промптов

Когда выполняется обогащение с несколькими областями экспертизы, оно делает несколько вызовов LLM для одной и той же сущности — по одному на каждую область экспертизы. Все эти вызовы используют один и тот же начальный контекст: общие системные инструкции и любые встроенные текстовые документы, которые вы прикрепили. Entity Enricher сохраняет этот общий префикс идентичным до байта во всех вызовах и помечает его как кэшируемый, поэтому провайдер сохраняет его один раз и перечитывает при каждом последующем вызове примерно за десятую часть обычной цены за ввод.

Как попадание в кеш меняет счёт
Без кэширования

Каждый из N вызовов повторно отправляет полный общий контекст по полной входной цене. Пять expertise означают пятикратную оплату этого большого общего блока.

С кэшированием

Общий блок записывается в кэш один раз, а затем считывается в остальных четырёх вызовах по цене ~10% от стоимости ввода. Экономия растёт с каждой дополнительной экспертизой, языком и прикреплённым документом.

Прогрев кэша

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

Работает с разными провайдерами и вложениями

Модели Anthropic явно кэшируют общие инструкции; прикреплённые PDF и изображения кэшируются на месте; а провайдеры с автоматическим кэшированием префиксов (OpenAI, xAI, DeepSeek и другие) получают выгоду от того же побайтово идентичного префикса. Кэширование окупается больше всего именно тогда, когда объём входных данных велик — множество областей экспертизы, несколько языков или прикреплённые документы.

Вы платите только за то, что не закешировано

Учёт стоимости учитывает кэширование: кэшированные входные токены тарифицируются по ставке чтения из кэша модели (доля от входной ставки), а по полной цене оплачиваются только действительно новые токены. Экономия отображается напрямую в вашей аналитике стоимости, а не только в теории.

Меньший объём данных на вызов

Помимо кэширования общего префикса, Entity Enricher сокращает ту часть каждого вызова, которая не является общей.

Выделение подмножества схемы для каждой экспертизы

Каждый вызов expertise получает только тот срез schema, за который он отвечает, а не всю schema целиком.

Финансовый эксперт никогда не видит регуляторных полей. Меньше полей — меньше токенов на входе и выходе, а ответ обрезается до своего фрагмента перед слиянием.

Текстовый канал без схемы

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

Это полностью убирает токены схемы и сохраняет общий префикс неизменным (поэтому он лучше кешируется). Ответ по-прежнему проверяется на стороне клиента с автоматической самокоррекцией при отклонениях.

Не платите за обогащение не того, что нужно

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

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

Меньше напрасных повторных попыток

Неудачный раунд валидации — это вызов LLM по полной цене без какого-либо результата. Два механизма делают повторные попытки редкими и продуктивными.

Нормализация вывода

Типичные странности вывода LLM — объекты с числовыми ключами вместо массивов, строка 'null', случайные экранированные кавычки — исправляются до запуска валидации.

Многие потенциальные ошибки валидации исправляются автоматически, поэтому они вообще не приводят к платной повторной попытке.

Целенаправленная самокоррекция

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

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

Правильная стратегия, контролируемый параллелизм

Выберите стратегию, подходящую для схемы

Один проход дешевле всего для небольших схем; мульти-экспертиза создана для больших, где кэширование и разграничение по экспертизам с лихвой окупают дополнительные вызовы. См. Стратегии, чтобы понять, когда что использовать.

Ограничение частоты запросов предотвращает дорогостоящую пробуксовку

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

Полная прозрачность затрат

Каждое обогащение записывает реальное число токенов — включая кэшированные чтения — и итоговую стоимость. Панель стоимости превращает это во временные графики и разбивки по моделям, чтобы вы могли точно видеть, куда уходят расходы, и убедиться, что кэширование и ограничение области выполняют свою задачу. Цена, которую вы видите, — это цена, которую вам выставляют; исходные затраты провайдера и любая наценка платформы остаются прозрачными.