LLM API и интеграция
Как сократить расходы на API нейросети
Счёт за API сокращают шесть приёмов, и первые два дают больше, чем остальные вместе: выбор модели под задачу и ограничение длины контекста. На типовом сценарии поддержки переход с позиции за 30 ₽ на позицию за 6 ₽ вместе с обрезкой истории до десяти последних сообщений снижают месячный счёт примерно в десять раз. Остальные четыре приёма добавляют к этому от пятнадцати до сорока процентов каждый.
Дальше — таблица с ожидаемым эффектом по каждому приёму, порядок внедрения от самого выгодного к самому трудоёмкому и разбор ошибок, из-за которых экономия не доходит до счёта. Приёмы расставлены по эффекту, а не по сложности: начинать с конца списка бессмысленно.
На сколько реально сокращается счёт
От тридцати процентов до десяти раз. Разброс задаёт то, с чего вы начинаете: если сейчас в каждый вызов уходит флагман и вся переписка, потолок высокий; если базовые вещи уже сделаны, останутся проценты.
| Приём | Типичный эффект | Где работает | Чем платите |
|---|---|---|---|
| Модель под задачу вместо флагмана на всё | −60…−90 % | любой сценарий с разнородными шагами | замером качества на своей выборке |
| Ограничение длины истории | −30…−70 % | диалоги, агенты, длинные сессии | потерей дальнего контекста |
| Фрагмент вместо всего документа | −40…−80 % | ответы по базе знаний, работа с файлами | сборкой поиска по базе |
| Выключение рассуждения там, где не нужно | −20…−60 % от выхода | классификация, извлечение полей, форматирование | качеством на сложных шагах |
| Кэш повторяющегося префикса | −10…−40 % | одинаковая системная инструкция во всех вызовах | почти ничем |
| Пакетная обработка | −15…−40 % | массовые однотипные задачи | задержкой ответа |
| Ограничение длины ответа | −5…−15 % от общего счёта | везде | иногда обрывом ответа |
Проценты в таблице — не гарантия, а порядок величины по нашим замерам на типовых профилях. Ваша цифра зависит от соотношения входных и выходных токенов, и её стоит померить до правок, а не после.
Какой приём применять первым
Тот, который меняет одну строку конфигурации. Порядок внедрения обратный сложности: сначала параметры, потом архитектура.
- Померьте текущий профиль. Сколько входных и выходных токенов уходит на одну операцию — методика в разборе как считать токены. Без этого числа любая экономия — вера.
- Разложите операции по типам. Классификация, извлечение, короткий ответ, длинный разбор — это четыре разные задачи, а не одна.
- Смените позицию на простых типах. Это одна строка и самый большой эффект.
- Ограничьте историю. Второй по величине эффект, тоже одна строка.
- Выключите рассуждение там, где ответ формальный.
- Подключите кэш и соберите отбор фрагментов. Это уже работа на день-два.
- Померьте профиль ещё раз и сравните с первым замером.
Шаг седьмой пропускают чаще всего, и именно поэтому в половине случаев экономия остаётся на бумаге.
Какую модель брать под какую задачу
Ту, которая справляется с этим конкретным шагом, а не самую сильную из доступных. Флагман на всё — самая дорогая из распространённых ошибок, и она же самая простая в исправлении.
Разбейте сценарий на шаги и назначьте позицию каждому. Сортировка входящих, определение темы обращения, извлечение даты и суммы из текста, проверка формата — всё это задачи, где недорогая позиция даёт тот же результат. Разбор противоречивого договора, пошаговая логика, код с побочными эффектами — здесь ошибка дороже ставки, и экономить не надо.
Главная экономия здесь не в скидке на ставку, а в праве держать разные позиции под разные шаги. В каталоге KeyDealer 53 позиции, 40 доступны сейчас, и все они открываются одним ключом с оплатой российской картой в рублях, поэтому смена позиции под задачу — правка одной строки, а не второй договор с поставщиком.
Разброс ставок внутри каталога делает разделение по шагам осмысленным: от 1 ₽ за миллион токенов до 60 ₽ — шестидесятикратная разница на одном и том же ключе. Есть и пять бесплатных текстовых позиций, они открываются после первого платного пополнения и дальше не тарифицируются; обзор — в статье про бесплатные нейросети по API.
Менять позицию вслепую нельзя. Возьмите пятьдесят своих реальных запросов с известными правильными ответами и прогоните их на обеих позициях — порядок действий описан в разборе как сравнивать модели.
Что делать с длиной истории в диалоге
Ограничить её числом сообщений или числом токенов. Без ограничения входной объём растёт квадратично: каждое новое сообщение отправляется вместе со всеми предыдущими.
Простая арифметика показывает масштаб. Диалог из двадцати сообщений без обрезки — это двадцать вызовов, в которых суммарно отправлено примерно в десять раз больше текста, чем написали оба собеседника. Тот же диалог с окном в десять последних сообщений — примерно вдвое меньше.
Три рабочие схемы:
- Окно последних N сообщений. Самая простая, работает в поддержке и в справочных ботах.
- Окно плюс краткая сводка. Старые сообщения сжимаются в несколько строк одним дешёвым вызовом. Дороже в разработке, сохраняет суть дальнего контекста.
- Сброс сессии по смене темы. Подходит там, где обращения независимы.
У агентов проблема острее: туда добавляются результаты вызовов инструментов, и один неудачный вызов может занести в историю мегабайт мусора. Сколько контекста нужно на самом деле — разобрано отдельно в статье сколько контекста реально нужно.
Почему фрагмент дешевле целого документа
Потому что модель платно читает всё, что вы ей дали, независимо от того, пригодилось это или нет. Отправлять сто страниц регламента ради ответа на один вопрос — значит оплачивать девяносто девять лишних страниц в каждом запросе.
Отбор трёх-пяти релевантных фрагментов до вызова модели решает сразу две задачи: снижает счёт и повышает точность, потому что в коротком контексте модели труднее промахнуться мимо нужного места. Механика поиска по своим документам описана в разборе поиска по своей базе, а переранжирование найденного есть в каталоге отдельной позицией.
Тот же принцип применим к файлам и коду: отдавайте функцию, а не репозиторий; раздел, а не договор целиком; строки за период, а не всю выгрузку.
Когда выключать рассуждение
Когда ответ короткий и формальный. Рассуждение оплачивается как выходные токены, и на задаче «верни одно слово из пяти возможных» вы платите за размышления, которые никто не прочитает.
Выключать стоит на классификации, извлечении полей, форматировании, переводе коротких строк, проверке соответствия шаблону. Оставлять — на многошаговой логике, разборе кода, задачах с противоречивыми условиями и везде, где цена неверного ответа выше цены запроса.
Уровни рассуждения регулируются параметром, а не сменой модели: разбор того, что даёт каждый уровень и сколько он стоит, — в статье про уровни рассуждения.
Что даёт кэш повторяющегося префикса
Скидку на ту часть запроса, которая не меняется. Системная инструкция, описание компании, формат ответа, список инструментов — всё это уходит в каждый вызов неизменным, и именно на этом работает кэш.
Это единственный приём из списка, который не требует менять сценарий: качество ответа не меняется вообще. Требование одно — неизменный текст должен стоять в начале запроса, а переменная часть в конце. Если вы подставляете дату или имя пользователя в первую строку системной инструкции, кэш не сработает ни разу. Условия и механика — в разборе кэша промптов.
Что реально даёт пакетная обработка
Экономию на служебной части, а не на ставке. Если вы классифицируете тысячу отзывов по одному, системная инструкция уходит тысячу раз. Если по двадцать в одном запросе — пятьдесят раз.
На коротких элементах служебная часть часто весит больше самих данных, и тогда пакетирование срезает от пятнадцати до сорока процентов входного объёма. На длинных элементах эффект близок к нулю — там служебная часть теряется на фоне данных.
Платите вы задержкой и сложностью разбора ответа: модель должна вернуть строгую структуру, иначе двадцать результатов не разложить по двадцати записям. Как добиться предсказуемого формата — в статье про строгий JSON от нейросети.
Какие ошибки съедают экономию
Пять штук. Все встречаются чаще, чем хотелось бы.
Экономят до замера. Меняют позицию, не зная исходного профиля, и потом не могут ответить, стало дешевле или нет.
Считают только ставку. Позиция вдвое дешевле, но отвечает с ошибками, и на каждый третий запрос уходит повторный вызов. Итоговый счёт выше исходного.
Обрезают историю слишком агрессивно. Окно в два сообщения экономит заметно и ломает сценарий: бот перестаёт помнить, о чём его спросили.
Ставят кэш, но каждый раз подставляют переменную в начало. Ноль попаданий, ноль экономии, уверенность, что кэш работает.
Не смотрят в журнал. Расход считают по средней операции, а половину счёта делают десять аномальных запросов, которые никто не открывал.
Как выглядит счёт до и после
Пример на сценарии поддержки: десять тысяч обращений в месяц, в каждом обращении три вызова модели.
| Строка | Было | Стало |
|---|---|---|
| Позиция | 30 ₽ за млн | 6 ₽ за млн |
| Входных токенов на обращение | 28 000 | 6 500 |
| Выходных токенов на обращение | 1 800 | 900 |
| Рассуждение | включено везде | только на эскалациях |
| Счёт за 10 000 обращений | 8 940 ₽ | 444 ₽ |
Порядок операций здесь ровно тот же, что в списке выше: сначала позиция, потом контекст, потом рассуждение. Заметьте, что ни один шаг не потребовал переписывать сценарий — менялись параметры и объём того, что уходит в запрос.
Чего мы не утверждаем
Мы не утверждаем, что проценты в таблице получатся у вас. Это порядок величины по типовым профилям; ваш профиль может дать и больше, и заметно меньше — цифра появляется только после собственного замера.
Мы не утверждаем, что недорогая позиция справится с вашей задачей. Мы утверждаем обратное: пока вы не прогнали свою выборку, вы этого не знаете, и наши таблицы этого знания не заменяют.
Мы не обещаем, что экономия сохранится. Каталог меняется, сценарии обрастают шагами, объёмы растут. Замер имеет срок годности, и разумный интервал повторной проверки — квартал.
Что нужно, чтобы попробовать
Ключ заводится за минуту на keydealer.ru/login — почта и пароль, без документов и без зарубежной карты. Оплата российской картой в рублях, один ключ на весь каталог.
Приветственный бонус даёт доступ к платным позициям сразу. Этого хватает, чтобы прогнать свою выборку на двух-трёх позициях и увидеть в журнале настоящий расход по каждой — до первого пополнения и без обязательств.
Что держать в голове
Экономия начинается с замера и им же заканчивается. Между двумя замерами можно менять что угодно; без них вы меняете вслепую.
Первые два приёма дают больше, чем остальные вместе. Позиция под задачу и ограничение контекста — это две строки кода и кратное снижение счёта.
Дешёвая позиция с неверными ответами дороже дорогой с верными, потому что за ошибку вы платите дважды: вторым запросом и временем человека. Как мы проверяем факты и почему у каждой цифры стоит дата — на странице о проекте. Завести ключ и померить свой профиль: keydealer.ru/login.
Частые вопросы
Как быстрее всего сократить расходы на API нейросети?
Сменить позицию под конкретную задачу. Разница между верхней и нижней платной строкой каталога — десятикратная, и на сортировке писем или извлечении полей флагман не даёт ничего сверх того, что даёт позиция за 1 ₽ за миллион токенов. Это один параметр в коде и самый большой эффект за минуту работы.
Экономия на модели портит качество ответа?
На простых задачах — нет, на сложных — да. Правило рабочее одно: менять позицию только вместе с замером на своей выборке, а не по ощущению. Если на пятидесяти реальных запросах доля верных ответов не просела, экономия настоящая.
Что съедает счёт сильнее всего?
Длина входного контекста. Вся база знаний и вся история диалога в каждом вызове умножают расход в разы при том же числе пользователей, и ставка модели тут ни при чём.
Помогает ли ограничение длины ответа?
Да, но только по выходной части счёта. На чат-сценарии выход обычно составляет от десятой до пятой части объёма, поэтому обрезка ответа вдвое снижает общий счёт на проценты, а не в разы.
Стоит ли выключать рассуждение, чтобы сэкономить?
Там, где ответ короткий и формальный, — стоит: рассуждение оплачивается как выходные токены. На разборе кода и многошаговой логике выключать его дороже, чем платить, потому что за неверный ответ вы платите второй раз.
Сколько удаётся сократить в сумме?
На типовом сценарии поддержки последовательное применение шести приёмов даёт снижение счёта в пять-десять раз. Верхняя граница достигается, когда до этого использовали флагман на всё и отправляли полную историю в каждый вызов.