Что такое Langfuse

Langfuse — это платформа с открытым исходным кодом для разработки LLM-приложений, которая помогает командам совместно отлаживать, анализировать и дорабатывать свои приложения.
Знакомство с Langfuse: https://langfuse.com/

Как настроить Langfuse

  1. Зарегистрируйтесь и войдите в Langfuse на официальном сайте.
  2. Создайте проект в Langfuse. После входа нажмите New на главной странице, чтобы создать собственный проект. Проект будет использоваться для связи с приложениями в Интеллос для мониторинга данных.
Создание проекта в Langfuse
Введите имя проекта.
Создание проекта в Langfuse
  1. Создайте учётные данные API для проекта. В левой боковой панели проекта нажмите Settings, чтобы открыть настройки.
Создание учётных данных API проекта
В настройках нажмите Create API Keys, чтобы создать учётные данные API проекта.
Создание учётных данных API проекта
Скопируйте и сохраните Secret Key, Public Key и Host.
Получение конфигурации API Key
  1. Настройте Langfuse в Интеллос. Откройте приложение, которое нужно отслеживать, откройте раздел Мониторинг в боковом меню и выберите на странице Отслеживание производительности приложения.
Настройка Langfuse
После нажатия на «Настроить» вставьте в конфигурацию Secret Key, Public Key, Host, созданные в Langfuse, и сохраните.
Настройка Langfuse
После успешного сохранения вы можете просмотреть статус на текущей странице. Если отображается состояние «запущено», значит, отслеживание активно.
Просмотр статуса конфигурации

Просмотр данных мониторинга в Langfuse

После настройки данные отладки или эксплуатации приложения в Интеллос можно просматривать в Langfuse.
Данные настройки, отладки или эксплуатации приложения в Интеллос можно просматривать

Перечень данных мониторинга

Трассировка информации Workflow и Chatflow

Трассировка workflow и chatflow
WorkflowLangFuse Trace
workflow_app_log_id/workflow_run_idid
user_session_iduser_id
name
start_timestart_time
end_timeend_time
inputsinput
outputsoutput
Потребление токенов моделиusage
metadatametadata
errorlevel
errorstatus_message
[workflow]tags
[“message”, conversation_mode]session_id
conversion_idparent_observation_id
Информация трассировки Workflow
  • workflow_id - Уникальный идентификатор Workflow
  • conversation_id - Идентификатор разговора
  • workflow_run_id - Идентификатор Workflow для данного запуска
  • tenant_id - Идентификатор арендатора
  • elapsed_time - Затраченное время при данном запуске
  • status - Статус выполнения
  • version - Версия Workflow
  • total_tokens - Всего токенов, использованных при данном запуске
  • file_list - Список обработанных файлов
  • triggered_from - Источник, запустивший данное выполнение
  • workflow_run_inputs - Входные данные данного workflow
  • workflow_run_outputs - Выходные данные данного workflow
  • error - Сообщение об ошибке
  • query - Запросы, использованные при выполнении
  • workflow_app_log_id - Идентификатор журнала приложения Workflow
  • message_id - Идентификатор соответствующего сообщения
  • start_time - Время начала данного запуска
  • end_time - Время окончания данного запуска
  • workflow node executions - Информация о выполнении узлов Workflow
  • Metadata
    • workflow_id - Уникальный идентификатор Workflow
    • conversation_id - Идентификатор разговора
    • workflow_run_id - Идентификатор Workflow для данного запуска
    • tenant_id - Идентификатор арендатора
    • elapsed_time - Затраченное время при данном запуске
    • status - Операционное состояние
    • version - Версия Workflow
    • total_tokens - Всего токенов, использованных при данном запуске
    • file_list - Список обработанных файлов
    • triggered_from - Источник, запустивший данное выполнение

Информация трассировки сообщений

Для трассировки разговора с LLM
MessageLangFuse Generation/Trace
message_idid
user_session_iduser_id
name
start_timestart_time
end_timeend_time
inputsinput
outputsoutput
Потребление токенов моделиusage
metadatametadata
errorlevel
errorstatus_message
[“message”, conversation_mode]tags
conversation_idsession_id
conversion_idparent_observation_id
Информация трассировки сообщений
  • message_id - Идентификатор сообщения
  • message_data - Данные сообщения
  • user_session_id - Идентификатор сессии пользователя
  • conversation_model - Модель разговора
  • message_tokens - Токены сообщения
  • answer_tokens - Токены ответа
  • total_tokens - Всего токенов сообщения и ответа
  • error - Сообщение об ошибке
  • inputs - Входные данные
  • outputs - Выходные данные
  • file_list - Список обработанных файлов
  • start_time - Время начала
  • end_time - Время окончания
  • message_file_data - Данные файла, относящегося к сообщению
  • conversation_mode - Режим разговора
  • Metadata
    • conversation_id - Идентификатор разговора
    • ls_provider - Поставщик модели
    • ls_model_name - Идентификатор модели
    • status - Статус сообщения
    • from_end_user_id - Идентификатор отправившего пользователя
    • from_account_id - Идентификатор отправившей учётной записи
    • agent_based - Основано ли на агенте
    • workflow_run_id - Идентификатор Workflow для данного запуска
    • from_source - Источник сообщения
    • message_id - Идентификатор сообщения

Информация трассировки модерации

Используется для отслеживания модерации разговора
ModerationLangFuse Generation/Trace
user_iduser_id
moderationname
start_timestart_time
end_timeend_time
inputsinput
outputsoutput
metadatametadata
[moderation]tags
message_idparent_observation_id
Информация трассировки сообщений
  • message_id - Идентификатор сообщения
  • user_id - Идентификатор пользователя
  • workflow_app_log_id workflow_app_log_id
  • inputs - Входные данные для проверки
  • message_data - Данные сообщения
  • flagged - Помечено ли для внимания
  • action - Конкретные действия для выполнения
  • preset_response - Предустановленный ответ
  • start_time - Время начала проверки
  • end_time - Время окончания проверки
  • Metadata
    • message_id - Идентификатор сообщения
    • action - Конкретные действия для выполнения
    • preset_response - Предустановленный ответ

Информация трассировки предлагаемых вопросов

Используется для отслеживания предлагаемых вопросов
Suggested QuestionLangFuse Generation/Trace
user_iduser_id
suggested_questionname
start_timestart_time
end_timeend_time
inputsinput
outputsoutput
metadatametadata
[suggested_question]tags
message_idparent_observation_id
Информация трассировки сообщений
  • message_id - Идентификатор сообщения
  • message_data - Данные сообщения
  • inputs - Входные данные
  • outputs - Выходные данные
  • start_time - Время начала
  • end_time - Время окончания
  • total_tokens - Всего токенов
  • status - Статус сообщения
  • error - Сообщение об ошибке
  • from_account_id - Идентификатор отправившей учётной записи
  • agent_based - Основано ли на агенте
  • from_source - Источник сообщения
  • model_provider - Поставщик модели
  • model_id - Идентификатор модели
  • suggested_question - Предлагаемый вопрос
  • level - Уровень статуса
  • status_message - Статус сообщения
  • Metadata
    • message_id - Идентификатор сообщения
    • ls_provider - Поставщик модели
    • ls_model_name - Идентификатор модели
    • status - Статус сообщения
    • from_end_user_id - Идентификатор отправившего пользователя
    • from_account_id - Идентификатор отправившей учётной записи
    • workflow_run_id - Идентификатор Workflow для данного запуска
    • from_source - Источник сообщения

Информация трассировки поиска по базе знаний

Используется для отслеживания поиска по базе знаний
Dataset RetrievalLangFuse Generation/Trace
user_iduser_id
dataset_retrievalname
start_timestart_time
end_timeend_time
inputsinput
outputsoutput
metadatametadata
[dataset_retrieval]tags
message_idparent_observation_id
Информация трассировки поиска по базе знаний
  • message_id - Идентификатор сообщения
  • inputs - Входное сообщение
  • documents - Данные документов
  • start_time - Время начала
  • end_time - Время окончания
  • message_data - Данные сообщения
  • Metadata
    • message_id - Идентификатор сообщения
    • ls_provider - Поставщик модели
    • ls_model_name - Идентификатор модели
    • status - Статус модели
    • from_end_user_id - Идентификатор отправившего пользователя
    • from_account_id - Идентификатор отправившей учётной записи
    • agent_based - Основано ли на агенте
    • workflow_run_id - Идентификатор Workflow для данного запуска
    • from_source - Источник сообщения

Информация трассировки инструментов

Используется для отслеживания вызова инструментов
ToolLangFuse Generation/Trace
user_iduser_id
tool_namename
start_timestart_time
end_timeend_time
inputsinput
outputsoutput
metadatametadata
[“tool”, tool_name]tags
message_idparent_observation_id
Информация трассировки инструментов
  • message_id - Идентификатор сообщения
  • tool_name - Имя инструмента
  • start_time - Время начала
  • end_time - Время окончания
  • tool_inputs - Входные данные инструмента
  • tool_outputs - Выходные данные инструмента
  • message_data - Данные сообщения
  • error - Сообщение об ошибке, если есть
  • inputs - Входные данные сообщения
  • outputs - Выходные данные сообщения
  • tool_config - Конфигурация инструмента
  • time_cost - Затраты времени
  • tool_parameters - Параметры инструмента
  • file_url - URL соответствующих файлов
  • Metadata
    • message_id - Идентификатор сообщения
    • tool_name - Имя инструмента
    • tool_inputs - Входные данные инструмента
    • tool_outputs - Выходные данные инструмента
    • tool_config - Конфигурация инструмента
    • time_cost - Затраты времени
    • error - Сообщение об ошибке
    • tool_parameters - Параметры инструмента
    • message_file_id - Идентификатор файла сообщения
    • created_by_role - Создано ролью
    • created_user_id - Идентификатор создавшего пользователя

Трассировка генерации имени

Используется для отслеживания генерации заголовка разговора
Generate NameLangFuse Generation/Trace
user_iduser_id
generate_namename
start_timestart_time
end_timeend_time
inputsinput
outputsoutput
metadatametadata
[generate_name]tags
Информация трассировки генерации имени
  • conversation_id - Идентификатор разговора
  • inputs - Входные данные
  • outputs - Сгенерированное имя сессии
  • start_time - Время начала
  • end_time - Время окончания
  • tenant_id - Идентификатор арендатора
  • Metadata
    • conversation_id - Идентификатор разговора
    • tenant_id - Идентификатор арендатора

Управление промптами в Langfuse

Плагин Langfuse Prompt Management (поддерживается сообществом) позволяет использовать в ваших приложениях Интеллос промпты, управляемые и версионируемые в Langfuse, что улучшает процесс разработки ваших LLM-приложений. Основные возможности:
  • Get Prompt: получение определённых промптов, управляемых в Langfuse.
  • Search Prompts: поиск промптов в Langfuse с помощью различных фильтров.
  • Update Prompt: создание новых версий промптов в Langfuse и установка тегов/меток.
Эта интеграция упрощает управление и версионирование ваших промптов, способствуя более эффективным циклам разработки и доработки. Найти плагин и инструкции по установке можно здесь.