Open WebUI и Langfuse: увидеть трассу ответа и проверить передачу данных
На странице · 3 разделов
Интеграция Open WebUI с Langfuse записывает в трассу сообщения, ответ модели и сведения о пользователе. Для первой проверки включите официальный Filter только для одной тестовой модели, отправьте вымышленный вопрос и прочитайте трассу в своём проекте Langfuse. Не включайте Global и не используйте реальные документы, пока не проверили адрес сервера, состав данных и права доступа. Modelium не запускал этот стек.
Инженерный гайд, не домашний рецепт. Понадобятся работающий Open WebUI, учётная запись администратора и собственный проект Langfuse с public/secret key. Если Langfuse ещё не развёрнут, сначала настройте его по официальному руководству Langfuse; здесь мы не описываем установку сервера. Эта инструкция сверена с документацией Open WebUI на Git-коммите
0d43b3e1; Modelium не запускал связку и не проверял сеть. Filter — исполняемый Python-код на сервере: перед установкой прочитайте его, не вставляйте непроверенный код из сообщества. s1 s2
Что вы увидите и какие данные покинут Open WebUI?
Представьте, что вы хотите понять, какой вопрос получила модель и что она ответила. Трасса — запись одного обращения в Langfuse. Официальная интеграция записывает входные сообщения и полный текст ответа, идентификатор модели, email пользователя и ID чата; если доступны данные о токенах, добавляет и их. Это не приватный счётчик скорости: даже с локальной моделью содержание беседы отправляется по адресу Langfuse, указанному в настройке Host. Облачный Host означает внешнюю передачу; собственный сервер — отдельный компонент, чью сеть, хранение и доступ вам нужно проверить самим. s1
Для первого опыта используйте только вымышленный текст. Не подключайте фильтр ко всем моделям и не отправляйте реальные договоры, письма или персональные данные. Удаление или сроки хранения в Langfuse зависят от настройки именно вашего проекта; этот гайд не обещает автоматическую анонимизацию или офлайн-режим. s1
Как подготовить один безопасный тест?
- Убедитесь, что вы администратор работающего Open WebUI и у вас есть доступ к своему проекту Langfuse. В нём получите пару API-ключей и точный URL сервера. Для приватного маршрута используйте адрес вашего Langfuse, а не значение Cloud по умолчанию. Проверьте, что адрес доступен с сервера Open WebUI: адрес
localhostвнутри контейнера может указывать на сам контейнер, а не на соседний сервис. Не публикуйте secret key в статье, чате или журнале. s1 - Откройте в официальной документации Open WebUI раздел Langfuse Integration из источника ниже. Прочитайте код Filter и предупреждение о правах Python; не копируйте стороннюю версию. В Open WebUI откройте Admin Panel → Functions → Create → New Function, вставьте именно сверенный код из официального источника и сохраните. Документация говорит, что зависимость
langfuse~=3.11может установиться при сохранении; при отключённой автоматической установке её готовит администратор отдельно. Не меняйте версию библиотеки на 4 «на всякий случай»: документация предупреждает о конфликте её OpenTelemetry-зависимостей с Open WebUI. s1 s2 s3 - В Admin Panel → Functions откройте Valves фильтра, введите Public Key, Secret Key и точный Host своего проекта, сохраните и включите переключатель. Затем в Workspace → Models выберите одну тестовую модель и привяжите этот Filter в поле Filters. Global не включайте: он распространит запись на все модели. Если заменили Host или Secret Key, оставив тот же Public Key, документация рекомендует перезапустить Open WebUI, чтобы применить изменение. s1
- Откройте новый чат именно с тестовой моделью и отправьте вымышленный запрос: «В учебном блокноте записано: встреча в четверг. В какой день встреча?» В Langfuse откройте свой проект и найдите запись Open WebUI chat, а внутри — ответ chat-reply. Сопоставьте input с этой фразой, output — с фактическим ответом, а поля user/session/model — с тестовой учётной записью, чатом и моделью. Ответ должен быть непустым и говорить «четверг»; Modelium его не получал и не воспроизводил. s1
Что делать, если трасса отсутствует или раскрывает лишнее?
Если трасса не появилась, проверьте, включён ли Filter именно для выбранной модели, верны ли Host и ключи, видит ли сервер Open WebUI адрес Langfuse и нет ли ошибки установки зависимости в журнале. Не включайте Global ради диагностики. Отсутствие счётчика токенов не доказывает, что фильтр не сработал: для потоковых ответов некоторым провайдерам нужна отдельная возможность Usage в настройках модели. Запросы напрямую к API тоже могут трассироваться, когда включён ENABLE_API_OUTLET_FILTERS (по документации — по умолчанию). s1 s3
Если в input/output или поле пользователя оказались сведения, которые нельзя передавать выбранному Langfuse, выключите Filter до рабочих бесед и пересмотрите адрес, доступ к проекту и сам код передачи. Привязка к одной модели уменьшает охват теста, но не превращает содержимое трассы в анонимные метрики. На настоящем контуре отдельно проверьте права, сетевой маршрут и хранение; эта инструкция не подтверждает соответствие требованиям по персональным данным. s1 s2
Следующий шаг — сравнить с журналом аудита Open WebUI: он решает другую задачу и не подменяет проверку содержимого трассы. s1
Источники
- Open WebUI: официальный Langfuse Integration, закреплённый Git-коммит — revision 0d43b3e1c103b142abe025e6ebdc3afadf71b83f. Получено 22.10.2026.
- Open WebUI: Filter Function и предупреждение о выполнении Python, закреплённый Git-коммит — revision 0d43b3e1c103b142abe025e6ebdc3afadf71b83f. Получено 22.10.2026.
- Open WebUI: Functions и установка зависимостей, закреплённый Git-коммит — revision 0d43b3e1c103b142abe025e6ebdc3afadf71b83f. Получено 22.10.2026.