Langfuse : Plate-forme d'observation et de débogage à source ouverte pour les applications LLM

Introduction générale

Langfuse est une plateforme d'ingénierie LLM (Large Language Model) open source. Elle aide les développeurs à tracer, déboguer et optimiser les applications LLM en fournissant des outils permettant d'observer les appels, de gérer les invites, d'effectuer des expériences et d'évaluer les résultats. Développée par l'équipe Langfuse, la plateforme supporte des frameworks tels que LangChain, OpenAI, etc. Elle est sous licence MIT et dispose d'une communauté active. Elle peut être rapidement auto-hébergée localement ou dans le nuage, et est idéale pour les équipes qui travaillent ensemble pour développer des applications d'IA fiables. langfuse offre des services dans le nuage (avec des packages gratuits) et des options auto-hébergées, et est facile à déployer et à prouver dans des environnements de production.

Pour les agents et RAG La durée d'exécution est visualisée et observée, comme dans le cas de LangSmith.

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

 

Liste des fonctions

  • Observation appliquéeLes résultats de l'étude sont les suivants : tracer chaque appel à l'application LLM, en enregistrant les entrées et les sorties, la latence et le coût.
  • Gestion des indicesLa gestion de l'information : stockage centralisé des mots-clés pour faciliter le contrôle des versions et les ajustements du travail d'équipe.
  • Gestion des ensembles de donnéesLes données de test : créer des ensembles de données de test et mener des expériences pour comparer les modèles ou les effets de repère.
  • Outils d'évaluationLes résultats de l'évaluation de la qualité de la production: : prise en charge du retour d'information de l'utilisateur, de l'étiquetage manuel et de l'évaluation automatisée pour vérifier la qualité de la production.
  • Support de débogageLes services d'aide à la gestion des ressources humaines : Affichez des journaux détaillés et des sessions d'utilisateurs pour localiser rapidement les problèmes.
  • Terrain de jeu expérimentalLes tests de mots-guides et de configurations de modèles permettent d'accélérer les itérations de développement.
  • Prise en charge de plusieurs cadresCompatible avec LangChain, OpenAI SDK, LiteLLM et d'autres.
  • Intégration de l'APILe programme LLMOps : fournit une API complète pour personnaliser les flux de travail de LLMOps.

 

Utiliser l'aide

Installation et déploiement

service en nuage

  1. S'inscrire à un compte: : Accès Langfuse CloudCliquez sur "S'inscrire" pour vous inscrire.
  2. Créer un projetAprès avoir ouvert une session, cliquez sur "Nouveau projet" et saisissez le nom du projet.
  3. Obtenir la clé: : Généré dans les paramètres du projet PUBLIC_KEY répondre en chantant SECRET_KEY.
  4. commencer à utiliserLe kit de développement logiciel (SDK) permet de se connecter directement aux services en nuage, sans aucune installation.

Déploiement local (Docker Compose)

  1. Préparation de l'environnementPour ce faire, vous devez vous assurer que Docker et Docker Compose sont installés et peuvent être téléchargés à partir du site web de Docker.
  2. Clonage du codeExécution dans un terminal git clone https://github.com/langfuse/langfuse.gitEntrez ensuite dans le catalogue cd langfuse.
  3. Démarrage des services: Entrée docker compose upet attendez que le démarrage soit terminé, l'adresse par défaut est http://localhost:3000.
  4. valider (une théorie)Accès au navigateur http://localhost:3000Si la page de connexion s'affiche, vous avez réussi.
  5. Configuration de la cléGénérer une clé dans l'interface utilisateur pour le SDK après l'enregistrement.

Déploiement de Kubernetes (Recommandations pour la production)

  1. Préparation du clusterCréer un cluster Kubernetes à l'aide de Minikube (pour les tests locaux) ou d'un service en nuage tel qu'AWS.
  2. Ajouter une barre: Course à pied helm repo add langfuse https://langfuse.github.io/langfuse-k8s répondre en chantant helm repo update.
  3. configurer: Créer values.yamlLa base de données et les informations clés sont remplies (voir la rubrique document officiel).
  4. déploiements: Entrée helm install langfuse langfuse/langfuse -f values.yamlAttendez qu'il se termine.
  5. entretiensConfiguration de l'accès à l'adresse de service en fonction de l'entrée (Ingress).

Déploiement de la machine virtuelle

  • Fonctionnement sur une seule machine virtuelle docker compose upLes étapes sont les mêmes que pour le déploiement local.

Principales fonctions

Observation appliquée

  1. Installation du SDKExécution d'un projet Python pip install langfuseExécution du projet JS/TS npm install langfuse.
  2. initialisationLes clés et les hôtes sont configurés dans le code :
    from langfuse import Langfuse
    langfuse = Langfuse(public_key="pk-lf-xxx", secret_key="sk-lf-xxx", host="http://localhost:3000")
  1. enregistrer l'appelLes produits de la catégorie "produits de la catégorie" sont les suivants : utiliser des décorateurs ou un traçage manuel :
    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. vérifierL'appel doit être traité comme un appel d'urgence : vérifiez les détails de l'appel sur la page "Traces" de l'interface utilisateur.

Gestion des indices

  1. Nouveau conseilDans la page "Invites" de l'interface utilisateur, cliquez sur "Nouvelle invite" et entrez un nom et un contenu, par exemple :
    System: 你是一个助手,直接回答问题。
    User: {{question}}
    
  2. Conseils d'utilisationAppels en code : Appels en code langfuse.get_prompt("prompt-name").
  3. gestion des versionsSauvegarde automatique de la version après modification de l'invite, qui peut être annulée.

Ensembles de données et expériences

  1. Création d'un ensemble de donnéesDans la page "Datasets" de l'interface utilisateur, cliquez sur "Create Dataset", nommez-le "qa-test".
  2. Ajouter des donnéesLes données peuvent être saisies ou téléchargées à partir d'un fichier CSV, par exemple :
    Input: "1+1等于几?" Expected: "2"
    
  3. expérience de course à pied: : Test dans le code :
    dataset = langfuse.get_dataset("qa-test")
    for item in dataset.items:
    result = chat(item.input)
    item.link(langfuse.trace({"output": result}), "test-1")
    
  4. analyséL'interface utilisateur permet d'afficher les résultats de l'expérience.

Terrain de jeux

  1. entrer dansCliquez sur "Playground" dans l'interface utilisateur et entrez les paramètres de l'invite et du modèle.
  2. test (machines, etc.)Cliquez sur Exécuter pour visualiser le résultat, ajuster les paramètres et sauvegarder.
  3. sauterDirectement à partir du résultat de l'erreur "Traces" : Directement à partir du résultat de l'erreur "Traces Terrain de jeux Modification.

Fonction en vedette Fonctionnement

Journal de débogage

  • Sur la page "Traces", cliquez sur un appel pour voir les entrées, les sorties et le contexte.
  • Visualiser les sessions des utilisateurs dans "Sessions" pour analyser les conversations à plusieurs tours.

Résultats de l'évaluation

  • actionné manuellement: noter la sortie (0-1) sur la page "Scores".
  • l'automatisationAjouter des évaluations par l'intermédiaire de l'API :
    langfuse.score(trace_id="xxx", name="accuracy", value=0.95)
    

Utilisation de l'API

  • Appelé à l'aide de la spécification OpenAPI ou d'un SDK (par exemple Python/JS), par exemple pour créer une trace :
    curl -X POST "http://localhost:3000/api/traces" -H "Authorization: Bearer sk-lf-xxx" -d '{"id": "trace-1", "name": "test"}'
    

 

scénario d'application

  1. Suivi de la visualisation du processus RAG
    • Suivi visuel de l'ensemble du processus, depuis le rappel des mots-clés, le rappel des vecteurs, la fusion des rappels, le réarrangement, la réponse...
  2. Développer un service client intelligent
    • L'équipe utilise Langfuse pour suivre les conversations, optimiser la qualité des réponses et améliorer l'expérience client.
  3. Comparaison des performances des modèles
    • Le développeur crée des ensembles de données pour tester les performances de plusieurs LLM sur une tâche d'interrogation.
  4. Déploiement sur site
    • L'entreprise héberge elle-même Langfuse pour protéger les données sensibles et déboguer les applications d'IA internes.

 

QA

  1. Quels sont les langages et les cadres pris en charge ?
    • Prend en charge Python et JS/TS, et est compatible avec LangChain, OpenAI, LlamaIndex, etc.
  2. Quelle est la configuration minimale pour l'auto-hébergement ?
    • Les petits projets utilisent un processeur à deux cœurs et 4 Go de RAM, les grands projets recommandent 8 cœurs et 16 Go.
  3. Comment désactiver la télémétrie ?
    • Définir les variables d'environnement dans le TELEMETRY_ENABLED=false.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...