Langfuse: платформа наблюдения и отладки с открытым исходным кодом для LLM-приложений

Общее введение

Langfuse - это инженерная платформа LLM (Large Language Model) с открытым исходным кодом. Она помогает разработчикам отслеживать, отлаживать и оптимизировать LLM-приложения, предоставляя инструменты для наблюдения за вызовами, управления подсказками, проведения экспериментов и оценки результатов. Разработанная командой Langfuse, платформа поддерживает такие фреймворки, как LangChain, OpenAI и т. д. Она находится под лицензией MIT и имеет активное сообщество. Она может быть быстро самостоятельно размещена локально или в облаке и идеально подходит для команд, совместно разрабатывающих надежные приложения ИИ. langfuse предлагает облачные сервисы (с бесплатными пакетами) и варианты самостоятельного размещения, легко развертывается и проверена в производственных средах.

Для агентов и RAG Время выполнения визуализируется и наблюдается, аналогично LangSmith.

Langfuse:开源的 LLM 应用观测与调试平台

 

Список функций

  • Прикладное наблюдение: Отследите каждый вызов приложения LLM, записывая входы и выходы, время ожидания и стоимость.
  • Управление кием: Централизованное хранение слов подсказок для поддержки контроля версий и корректировки командной работы.
  • Управление набором данных: Создание тестовых наборов данных и проведение экспериментов для сравнения моделей или эффектов подсказок.
  • Инструменты оценки:: Поддержка обратной связи с пользователем, ручная маркировка и автоматизированная оценка для проверки качества выпускаемой продукции.
  • Поддержка отладкиПросмотр подробных журналов и сеансов пользователей для быстрого выявления проблем.
  • Экспериментальная игровая площадка: Тестирование слов подсказок и конфигураций моделей для ускорения итераций разработки.
  • Поддержка нескольких фреймворков: Совместимость с LangChain, OpenAI SDK, LiteLLM и другими.
  • Интеграция API: Предоставляет комплексный API для настройки рабочих процессов LLMOps.

 

Использование помощи

Установка и развертывание

облачный сервис

  1. Зарегистрируйтесь для получения учетной записи:: Доступ Langfuse CloudНажмите на кнопку "Зарегистрироваться", чтобы зарегистрироваться.
  2. Создать проект: После входа в систему нажмите "Новый проект" и введите название проекта.
  3. Получить ключ:: Создается в настройках проекта PUBLIC_KEY ответить пением SECRET_KEY.
  4. начать использовать: Не требуется установка, подключение к облачным сервисам напрямую через SDK.

Локальное развертывание (Docker Compose)

  1. Подготовка среды: Убедитесь, что установлены Docker и Docker Compose, которые можно загрузить с сайта Docker.
  2. Клонирование кода: Запуск в терминале git clone https://github.com/langfuse/langfuse.gitЗатем введите каталог cd langfuse.
  3. Начальные услуги: Вход docker compose upи дождитесь завершения запуска, по умолчанию используется адрес http://localhost:3000.
  4. подтвердить (теорию): Доступ к браузеру http://localhost:3000Если вы видите страницу входа в систему, значит, все прошло успешно.
  5. Настройка ключа: Генерируйте ключ в UI для SDK после регистрации.

Развертывание Kubernetes (рекомендации по производству)

  1. Подготовка кластера: Создайте кластер Kubernetes с помощью Minikube (для локального тестирования) или облачного сервиса, например AWS.
  2. Добавить штурвал: Бег helm repo add langfuse https://langfuse.github.io/langfuse-k8s ответить пением helm repo update.
  3. настроить: Создать values.yamlБаза данных и ключевая информация заполнены (см. официальный документ).
  4. развертывания: Вход helm install langfuse langfuse/langfuse -f values.yamlПодождите, пока она закончится.
  5. интервью: Настройка доступа к адресу службы на основе Ingress.

Развертывание виртуальных машин

  • Работа на одной виртуальной машине docker compose upДействия такие же, как и при локальном развертывании.

Основные функции

Прикладное наблюдение

  1. Установка SDK: Запуск проекта Python pip install langfuseЗапуск проекта JS/TS npm install langfuse.
  2. инициализация: Настройте ключи и хосты в коде:
    from langfuse import Langfuse
    langfuse = Langfuse(public_key="pk-lf-xxx", secret_key="sk-lf-xxx", host="http://localhost:3000")
  1. запись разговора: Используйте декораторы или ручную обводку:
    from langfuse.decorators import observe
    @observe()
    def chat(input):
    return openai.chat.completions.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": input}])
    chat("你好")
    
  2. проверять: Проверьте детали вызова на странице "Трассы" пользовательского интерфейса.

Управление кием

  1. Новый совет: На странице "Prompts" пользовательского интерфейса нажмите "New Prompt" и введите имя и содержание, например:
    System: 你是一个助手,直接回答问题。
    User: {{question}}
    
  2. Советы по использованию: Вызовы в коде langfuse.get_prompt("prompt-name").
  3. управление версиями: Автоматическое сохранение версии после изменения подсказки, которую можно откатить.

Наборы данных и эксперименты

  1. Создание набора данных: На странице "Datasets" пользовательского интерфейса нажмите "Create Dataset", назовите его "qa-test".
  2. Добавить данные: Введите или загрузите файл CSV, например:
    Input: "1+1等于几?" Expected: "2"
    
  3. беговой эксперимент:: Тест в коде:
    dataset = langfuse.get_dataset("qa-test")
    for item in dataset.items:
    result = chat(item.input)
    item.link(langfuse.trace({"output": result}), "test-1")
    
  4. проанализировано: Просмотр результатов эксперимента в пользовательском интерфейсе.

Игровая площадка

  1. входить: Нажмите кнопку "Playground" в пользовательском интерфейсе и введите параметры запроса и модели.
  2. испытание (машины и т.д.): Нажмите кнопку Выполнить, чтобы просмотреть результаты, настроить параметры и сохранить.
  3. прыжок: Непосредственно из результата ошибки "Следы" Игровая площадка Модификация.

Функциональное управление

Журнал отладки

  • На странице "Трассы" нажмите на вызов, чтобы увидеть входы, выходы и контекст.
  • Просматривайте сеансы пользователей в разделе "Сеансы", чтобы анализировать многораундовые разговоры.

Результаты оценки

  • ручное управление: Оцените выход (0-1) на странице "Оценки".
  • автоматизация: Добавление оценок через API:
    langfuse.score(trace_id="xxx", name="accuracy", value=0.95)
    

Использование API

  • Вызывается с помощью спецификации OpenAPI или SDK (например, Python/JS), например, для создания трассировки:
    curl -X POST "http://localhost:3000/api/traces" -H "Authorization: Bearer sk-lf-xxx" -d '{"id": "trace-1", "name": "test"}'
    

 

сценарий применения

  1. Отслеживание визуализации процесса RAG
    • Визуальное отслеживание всего процесса - от запоминания ключевого слова, векторного запоминания, слияния запоминаний, перестановки, ответа
  2. Развитие интеллектуального обслуживания клиентов
    • Команда использует Langfuse для отслеживания разговоров, оптимизации качества ответов и улучшения качества обслуживания клиентов.
  3. Сравнение производительности моделей
    • Разработчик создает наборы данных для проверки производительности нескольких LLM в задаче тестирования.
  4. Развертывание на месте
    • Компания самостоятельно использует Langfuse для защиты конфиденциальных данных и отладки внутренних приложений искусственного интеллекта.

 

QA

  1. Какие языки и фреймворки поддерживаются?
    • Поддерживает Python и JS/TS, совместим с LangChain, OpenAI, LlamaIndex и другими.
  2. Какова минимальная конфигурация для самостоятельного хостинга?
    • Для небольших проектов используется 2-ядерный процессор и 4 ГБ оперативной памяти, для больших - 8 ядер и 16 ГБ.
  3. Как отключить телеметрию?
    • Установка переменных окружения в TELEMETRY_ENABLED=false.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...