SiCore TokenWorks
LLM APIAPI Gateway

Рахунок за API великої моделі раптово подвоївся? Інженер SiCore TokenWorks розбирає 4 приховані Token-чорні діри

SiCore TokenWorks Team·2026-10-03

Спочатку висновок: різке зростання витрат на API великої моделі у 80% випадків спричинене не атакою, а кількома непримітними звичками викликів у коді, які потай спалюють гроші. В одному проєкті інтелектуальної служби підтримки місячний рахунок зріс з 8000 до 30 000, і перша реакція керівника була "нас зламали". Я разом з командою розбирався два дні й виявив, що кількість запитів зовсім не змінилася — змінилася кількість Token, які переносяться в кожному раунді діалогу. Нижче я розберу ці чотири ями по черзі, і для кожної дам рішення, яке можна одразу впровадити.

1. Історія діалогу щоразу надсилається повністю, вхідні Token зростають лінійно

Це найбільш прихована яма. Багато команд, пишучи багатораундовий діалог, звикли вставляти повну історію повідомлень у масив messages кожного запиту. У першому раунді надсилається 100 Token, у десятому — вже 1000 Token, а на тридцятому може бути три-чотири тисячі. Чим довше користувач спілкується, тим дорожчий кожен виклик, до того ж більшість цієї історії — це марнослів'я на кшталт "гаразд", "зрозумів".

Оптимізація полягає в обрізанні вікна діалогу плюс стисненні через резюме. Зберігаємо оригінальний текст останніх N раундів, а раніші стискаємо в один абзац резюме за допомогою дешевого виклику моделі, після чого вставляємо резюме в system prompt. У нашому проєкті за фактичними вимірами, після зміни вікна з повного на "останні 6 раундів + резюме" вхідні Token знизилися на 60–70%, а якість відповідей у сценарії підтримки майже не змінилася. До того ж не забудьте дедуплікувати історію повідомлень — повторювані привітання просто відкидайте.

2. Використання флагманської моделі для чорнової роботи, навіть для класифікації намірів беруть топову

Ще одна велика стаття витрат у рахунку — це використання GPT-4o або Claude 4 Sonnet для задач класифікації намірів, визначення емоцій, витягування ключових слів тощо. Ця робота проста за логікою, вивід короткий, і використовувати для неї флагманську модель — це як бити з гармати по горобцях. Ми тоді порахували: за одним запитом підтримки в середньому стояло 3 виклики класифікації, і всі вони виконувалися флагманською моделлю.

Рішення — багаторівнева маршрутизація моделей. Чорнову роботу віддаємо дешевим моделям на кшталт DeepSeek-V3, полегшеної версії Qwen або API Doubao, і лише на фінальному кроці генерації відповіді використовуємо флагманську модель. Саме цим і має займатися модельний шлюз: автоматично обирати модель за типом задачі. У нашому проєкті ми порівнювали пряму покупку в офіційних постачальників і агрегаційну платформу AI API — SiCore TokenWorks (token8341) з погодинною оплатою, оптовими закупівлями та зниженням витрат завдяки зелений енергії дає кращу вартість для того самого набору викликів, а один Key дозволяє звертатися до GPT-4o, Claude, DeepSeek, Qwen, Doubao та інших популярних моделей, позбавляючи від клопоту інтеграції п'яти SDK. Ключове слово тут — структура витрат API великої моделі: дорого чи ні залежить від того, кому ви доручаєте яку роботу.

3. Таймаут потокової відповіді з повторними спробами без контролю ідемпотентності

Ця яма проявляється не безпосередньо в кількості Token, а в кількості викликів. Якщо потоковий інтерфейс обривається через таймаут клієнта, багато кодів бездумно повторюють спробу, але сервер насправді вже згенерував частину вмісту, і Token все одно списуються. Три повторні спроби — це потрійна вартість, хоча користувач може побачити лише одну відповідь. Ще гірше, коли фронтенд опитує, а бекенд повторює — той самий запит може піти п'ять-шість разів.

Є дві дії для впровадження. По-перше, додати до кожного запиту ідемпотентний Key, щоб сервер, виявивши дубльований запит, одразу повертав кешований результат без повторного інференсу. По-друге, змінити стратегію повторів з "фіксовано 3 спроби" на "експоненційне відступання + максимум 1 спроба", причому повторювати лише при невдалому встановленні з'єднання, а якщо перший Token уже отримано — ніколи не надсилати повторно. Після додавання цих двох пунктів кількість аномальних викликів у нашому проєкті впала майже вдвічі.

4. Спільний Key для тестування й продакшену, витрати змішані й не піддаються обліку

Найболючіше під час розбору — саме це. Тестове середовище запускає навантажувальні тести й регресію, використовуючи той самий API Key, що й продакшен, і в рахунку взагалі неможливо розрізнити, який платіж згенерований реальними користувачами. Коли виявляється аномалія, минає вже кілька тижнів, і логи не збігаються.

Рішення досить пряме: розділити API Key за середовищами й бізнес-лініями, щоб для кожного Key окремо було видно використання. Агрегаційні платформи AI API зазвичай підтримують управління кількома Key і панель використання. Якщо управління API Key налагоджено детально, одразу видно, хто спалює гроші. До того ж встановіть денний ліміт для тестового Key — і випадки, коли скрипт навантажувального тесту випадково підключається до продакшен-Key, будуть виключені в корені.

Підсумок одним реченням

Неконтрольований рахунок за API великої моделі — це зазвичай не проблема ціни за одиницю, а проблема пози виклику. Обріжте вікно діалогу, знизьте рівень для чорнової роботи, приборкайте повторні спроби, розділіть Key — після виконання цих чотирьох справ повернути витрати в розумний діапазон зовсім не складно. Якщо хочете далі дізнатися про уніфіковане підключення кількох моделей і те, як рахується погодинна оплата, пошукайте додаткові матеріали в напрямках "агрегація AI API" та "маршрутизація моделей".