Трейсинг, стоимость и наблюдаемость
Урок о том, как видеть и контролировать, что происходит в LLM-приложении на проде.
Трейсинг — запись полного пути выполнения цепочки (промпты, вызовы модели и инструментов, тайминги, токены) для отладки и мониторинга.
Почему без наблюдаемости тяжело
LLM-приложение недетерминированно: один и тот же вход даёт разные ответы, ошибки прячутся в промптах и данных. Без трейсинга вы не понимаете, почему ответ плохой: дело в найденном контексте, в промпте или в модели? Трейсинг показывает каждый шаг цепочки и делает отладку возможной.
Стоимость складывается из токенов
Главная статья расходов — токены: считаются и вход, и выход. Прикинуть стоимость запроса можно на чистом Python:
def cost(in_tokens, out_tokens, price_in, price_out):
# цены за 1000 токенов
return (in_tokens / 1000) * price_in + (out_tokens / 1000) * price_out
per_request = cost(1200, 300, price_in=0.15, price_out=0.60)
print(round(per_request, 4), "за запрос")
print(round(per_request * 10000, 2), "за 10k запросов")Вывод:
0.36 за запрос 3600.0 за 10k запросов
Рычаги стоимости
| Рычаг | Эффект | |
| Модель поменьше | дешевле за токен, иногда достаточно по качеству | |
Короче контекст (меньше k, обрезка истории) | меньше входных токенов | |
| Кэширование ответов | повторяющиеся запросы не платятся | |
Лимит max_tokens вывода | ограничивает длину ответа |
Как работает под капотом
Инструменты трейсинга (например, LangSmith) собирают данные через тот же механизм callbacks: на каждом шаге цепочки они получают событие и пишут его в трейс — с промптом, ответом, числом токенов и временем. Поэтому подключение трейсинга обычно не требует переписывать логику: достаточно настроить обработчик. Кэширование тоже встраивается прозрачно: перед вызовом модели проверяется кэш по ключу-промпту, и при попадании ответ берётся оттуда без оплаты.
Частые ошибки
- Деплой без трейсинга. Потом невозможно понять причину плохих ответов на проде.
- Игнорировать рост стоимости. Длинные истории и большое
kнезаметно раздувают счёт. - Логировать чувствительные данные. В трейсы попадают промпты — следите, чтобы туда не утекали персональные данные и секреты.
Итог
- Трейсинг показывает каждый шаг цепочки и делает отладку возможной.
- Стоимость — это токены входа и выхода; считайте её заранее.
- Рычаги: модель поменьше, короче контекст, кэш, лимит вывода.
- Трейсинг и кэш встраиваются через callbacks без переписывания логики.