Langfuse: наблюдаемость LLM-приложений
Добавлено 2026-10-29.
Проблема
Ответ модели плохой, а почему — неизвестно: какой промпт ушёл, сколько стоил запрос, на каком шаге цепочки всё сломалось. Обычные логи этого не показывают.
Решение
Self-hosted Langfuse: трейсы запросов (в том числе по OpenTelemetry), токены и стоимость, датасеты и оценки качества. С LiteLLM подключается одной строкой.
Пример
Запуск — docker compose up из репозитория. Перед этим:
- заменить все значения с пометкой
# CHANGEMEвdocker-compose.yml: пароли баз,SALT,ENCRYPTION_KEY(openssl rand -hex 32); - поменять публикацию веб-интерфейса
3000:3000на127.0.0.1:3000:3000— иначе на VPS порт откроется наружу в обход firewall; снаружи — только через Nginx с TLS.
Отправка трейсов из LiteLLM:
litellm_settings:
success_callback: ["langfuse"]
Для приложений с OpenTelemetry — эндпоинт /api/public/otel/v1/traces.
Когда применять
Когда LLM-приложение в проде и нужно разбирать плохие ответы и расходы.
Ограничения
Нужны Postgres, ClickHouse, Redis и S3-совместимое хранилище — тяжело для маленького VPS. Трейсы содержат промпты и ответы: настроить срок хранения и доступ. Каталоги ee/ — под отдельной лицензией.
Источник
- langfuse/langfuse — MIT, кроме
ee/ - docker-compose.yml
- Пример конфига LiteLLM с Langfuse
Как применить у себя
- Поднять на тестовой машине с заменёнными секретами и портом на
127.0.0.1. - Отправить трейсы из LiteLLM.
- Настроить срок хранения и проверить удаление старых трейсов.
- Отметить «Изучено», когда по трейсу можно разобрать реальный плохой ответ.