Langfuse: plataforma de observación y depuración de código abierto para aplicaciones LLM

Introducción general

Langfuse es una plataforma de ingeniería LLM (Large Language Model) de código abierto. Ayuda a los desarrolladores a rastrear, depurar y optimizar aplicaciones LLM proporcionando herramientas para observar llamadas, gestionar avisos, ejecutar experimentos y evaluar resultados. Desarrollada por el equipo de Langfuse, la plataforma es compatible con marcos como LangChain, OpenAI, etc. Está bajo licencia MIT y cuenta con una comunidad activa. Se puede autoalojar rápidamente de forma local o en la nube, y es ideal para equipos que trabajan juntos para desarrollar aplicaciones de IA fiables. langfuse ofrece servicios en la nube (con paquetes gratuitos) y opciones autoalojadas, y es fácil de desplegar y probar en entornos de producción.

Para agentes y RAG El tiempo de ejecución se visualiza y observa, de forma similar a LangSmith.

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

 

Lista de funciones

  • Observación aplicadaRastrea cada llamada a la aplicación LLM, registrando entradas y salidas, latencia y coste.
  • Gestión del taco: Almacenamiento centralizado de palabras clave para apoyar el control de versiones y los ajustes del trabajo en equipo.
  • Gestión de conjuntos de datosCrear conjuntos de datos de prueba y realizar experimentos para comparar modelos o efectos de pistas.
  • Herramientas de evaluación:: Soporte para comentarios de los usuarios, etiquetado manual y evaluación automatizada para comprobar la calidad del resultado.
  • Soporte de depuración: Visualice registros detallados y sesiones de usuario para localizar rápidamente los problemas.
  • Parque infantil experimental: Pruebe palabras clave y configuraciones de modelos para acelerar las iteraciones de desarrollo.
  • Compatible con varios marcosCompatible con LangChain, OpenAI SDK, LiteLLM y más.
  • Integración APIProporciona una API completa para personalizar los flujos de trabajo de LLMOps.

 

Utilizar la ayuda

Instalación y despliegue

servicio en la nube

  1. Registrar una cuenta:: Acceso Nube LangfuseHaga clic en "Registrarse" para inscribirse.
  2. Crear un proyectoNuevo proyecto: Tras iniciar sesión, haga clic en "Nuevo proyecto" e introduzca el nombre del proyecto.
  3. Obtener la llave:: Generado en la configuración del proyecto PUBLIC_KEY responder cantando SECRET_KEY.
  4. empezar a utilizar: No requiere instalación, conéctese a los servicios en la nube directamente a través del SDK.

Despliegue local (Docker Compose)

  1. Preparar el entornoAsegúrese de que están instalados Docker y Docker Compose, que pueden descargarse del sitio web de Docker.
  2. Clonación de códigoEjecutar en un terminal git clone https://github.com/langfuse/langfuse.gitA continuación, introduzca el catálogo cd langfuse.
  3. Inicio de los servicios: Entrada docker compose upy esperar a que se complete el inicio, la dirección por defecto es http://localhost:3000.
  4. validar (una teoría): Acceso al navegador http://localhost:3000Si ve la página de inicio de sesión, ha tenido éxito.
  5. Configuración de la llaveGenerar clave en UI para SDK después del registro.

Despliegue de Kubernetes (Recomendaciones de producción)

  1. Preparación del clústerCree un clúster Kubernetes utilizando Minikube (para pruebas locales) o un servicio en la nube como AWS.
  2. Añadir timón: Correr helm repo add langfuse https://langfuse.github.io/langfuse-k8s responder cantando helm repo update.
  3. configure: Crear values.yamlSe rellena la base de datos y la información clave (consulte el documento oficial).
  4. despliegues: Entrada helm install langfuse langfuse/langfuse -f values.yamlEspera a que termine.
  5. entrevistas: Configure el acceso a la dirección de servicio basado en Ingress.

Despliegue de máquinas virtuales

  • Ejecución en una única máquina virtual docker compose upLos pasos son los mismos que para la implantación local.

Funciones principales

Observación aplicada

  1. Instalación del SDK: Ejecución del proyecto Python pip install langfuseEjecución del proyecto JS/TS npm install langfuse.
  2. inicializaciónConfigurar claves y hosts en código:
    from langfuse import Langfuse
    langfuse = Langfuse(public_key="pk-lf-xxx", secret_key="sk-lf-xxx", host="http://localhost:3000")
  1. grabar llamada: Utilice decoradores o trazado manual:
    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. comprobarConsulta los detalles de la llamada en la página "Traces" de la interfaz de usuario.

Gestión del taco

  1. Nuevo consejoEn la página "Avisos" de la interfaz de usuario, haz clic en "Nuevo aviso" e introduce un nombre y un contenido, por ejemplo:
    System: 你是一个助手,直接回答问题。
    User: {{question}}
    
  2. Consejos de uso: Llamadas en código langfuse.get_prompt("prompt-name").
  3. gestión de versiones: Guarda automáticamente la versión después de modificar el aviso, que se puede volver atrás.

Conjuntos de datos y experimentos

  1. Creación de un conjunto de datosEn la página "Conjuntos de datos" de la interfaz de usuario, haga clic en "Crear conjunto de datos" y asígnele el nombre "qa-test".
  2. Añadir datosIntroduzca o cargue un archivo CSV, por ejemplo:
    Input: "1+1等于几?" Expected: "2"
    
  3. experimento en curso:: Prueba en código:
    dataset = langfuse.get_dataset("qa-test")
    for item in dataset.items:
    result = chat(item.input)
    item.link(langfuse.trace({"output": result}), "test-1")
    
  4. analizadoVisualiza los resultados del experimento en la interfaz de usuario.

Parque infantil

  1. entrar enHaga clic en "Playground" en la interfaz de usuario e introduzca los parámetros del modelo.
  2. prueba (maquinaria, etc.)Haga clic en Ejecutar para ver el resultado, ajustar los parámetros y guardar.
  3. saltarDirectamente desde el resultado del error "Traces Parque infantil Modificación.

Función destacada Operación

Registro de depuración

  • En la página "Trazas", haga clic en una llamada para ver las entradas, salidas y contexto.
  • Vea las sesiones de usuario en "Sesiones" para analizar las conversaciones de varias rondas.

Resultados de la evaluación

  • accionamiento manualPuntúa el resultado (0-1) en la página "Puntuaciones".
  • automatizaciónAñadir evaluaciones a través de la API:
    langfuse.score(trace_id="xxx", name="accuracy", value=0.95)
    

Uso de la API

  • Llamada utilizando la especificación OpenAPI o un SDK (por ejemplo, Python/JS), por ejemplo, para crear una traza:
    curl -X POST "http://localhost:3000/api/traces" -H "Authorization: Bearer sk-lf-xxx" -d '{"id": "trace-1", "name": "test"}'
    

 

escenario de aplicación

  1. Seguimiento de la visualización de procesos RAG
    • Seguimiento visual del proceso global de recuperación de palabras clave, recuperación de vectores, fusión de recuperación, reordenación, respuesta
  2. Desarrollar un servicio de atención al cliente inteligente
    • El equipo utiliza Langfuse para hacer un seguimiento de las conversaciones, optimizar la calidad de las respuestas y mejorar la experiencia del cliente.
  3. Comparación del rendimiento de los modelos
    • El desarrollador crea conjuntos de datos para probar el rendimiento de varios LLM en una tarea de cuestionario.
  4. Implantación in situ
    • La empresa aloja Langfuse para proteger datos confidenciales y depurar aplicaciones internas de IA.

 

CONTROL DE CALIDAD

  1. ¿Qué lenguajes y marcos de trabajo son compatibles?
    • Soporta Python y JS/TS, y es compatible con LangChain, OpenAI, LlamaIndex, y más.
  2. ¿Cuál es la configuración mínima para el autoalojamiento?
    • Los proyectos más pequeños utilizan una CPU de 2 núcleos y 4 GB de RAM; los más grandes recomiendan 8 núcleos y 16 GB.
  3. ¿Cómo desactivo la telemetría?
    • Configuración de las variables de entorno en el TELEMETRY_ENABLED=false.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...