Der Bau eines LLM-Prototyps ist schnell. Ein paar Zeilen Python, eine Eingabeaufforderung und es funktioniert. Aber Produktion ist ein ganz anderes Spiel. Sie sehen vage Antworten, Halluzinationen, Latenzspitzen und seltsame Fehler, bei denen das Modell eindeutig etwas „weiß“, es aber trotzdem falsch versteht. Da alles auf Wahrscheinlichkeiten basiert, wird das Debuggen schwierig. Warum wurden aus der Suche nach Stiefeln Schuhe? Das System hat eine Wahl getroffen, aber Sie können die Gründe nicht leicht nachvollziehen.

Um dieses Drawback anzugehen, werden wir bauen FuseCommerceein fortschrittliches E-Commerce-Unterstützungssystem, das auf Transparenz und Kontrolle ausgelegt ist. Mit Langfuse erstellen wir einen Agenten-Workflow mit semantischer Suche und Absichtsklassifizierung und halten dabei jede Entscheidung clear. In diesem Artikel verwandeln wir einen fragilen Prototyp in ein beobachtbares, produktionsreifes LLM-System.

Was ist Langfuse?

Langfuse fungiert als Open-Supply-Plattform für LLM-Engineering, die es Groups ermöglicht, beim Debuggen, Analysieren und Entwickeln ihrer LLM-Anwendungen zusammenzuarbeiten. Die Plattform fungiert als DevTools für KI-Agenten.

Das System bietet drei Hauptfunktionen, darunter:

  • Tracing, das alle Ausführungspfade durch das System anzeigt, einschließlich LLM Aufrufe und Datenbankabfragen sowie Toolnutzung.
  • Metriken, die eine Echtzeitüberwachung von Latenz, Kosten und Token-Nutzung ermöglichen.
  • Eine Bewertung, bei der Benutzerfeedback über ein „Daumen hoch“- und „Daumen runter“-System gesammelt wird, das eine direkte Verbindung zu der spezifischen Technology herstellt, die das Suggestions abgegeben hat.
  • Das System ermöglicht Assessments durch Dataset Administration, wodurch Benutzer ihre Testeingaben und -ausgaben kuratieren können.

In diesem Projekt fungiert Langfuse als unser Hauptprotokollierungssystem, das uns dabei hilft, ein automatisiertes System zu erstellen, das seine eigene Leistung verbessert.

Was wir schaffen: FuseCommerce…

Wir werden einen intelligenten Kundenbetreuer für ein Technologie-Einzelhandelsunternehmen namens „FuseCommerce.“

Im Gegensatz zu einem Customary-LLM-Wrapper sind folgende Elemente enthalten:

  • Kognitives Routing – Die Fähigkeit, zu analysieren (durchzudenken), was man sagen soll, bevor man antwortet – einschließlich der Bestimmung des/der Grund(es) für die Interaktion (z. B. etwas kaufen wollen vs. eine Bestellung prüfen vs. über etwas reden wollen).
  • Semantisches Gedächtnis – Die Fähigkeit, Ideen als Konzepte zu erkennen und darzustellen (z. B. wie „Gaming-Ausrüstung“ und eine „mechanische Maus“ konzeptionell miteinander verbunden sind) durch Vektoreinbettung.
  • Visuelles Denken (einschließlich einer beeindruckenden Benutzeroberfläche) – Eine Möglichkeit, dem Kunden visuell darzustellen, was der Agent tut.

Die Rolle von Langfuse im Projekt

Langfuse ist das Rückgrat des für diese Arbeit verwendeten Agenten. Es ermöglicht uns, die einzelnen Schritte unseres Agenten zu verfolgen (Absichtsklassifizierung, Abruf, Generierung) und zeigt uns, wie sie alle zusammenarbeiten, sodass wir genau bestimmen können, wo etwas schief gelaufen ist, wenn eine Antwort falsch ist.

  • Rückverfolgbarkeit – Wir werden versuchen, alle Schritte eines Agenten auf Langfuse mithilfe von Spans zu erfassen. Wenn ein Benutzer eine falsche Antwort erhält, können wir Span-Monitoring oder einen Hint verwenden, um genau zu identifizieren, wo im Prozess des Agenten der Fehler aufgetreten ist.
  • Sitzungsverfolgung – Wir erfassen alle Interaktionen zwischen dem Benutzer und dem Agenten innerhalb einer Gruppierung, die durch ihr ` identifiziert wirdsession_id` auf dem Langfuse-Dashboard, damit wir alle Benutzerinteraktionen für den Kontext wiedergeben können.
  • Rückkopplungsschleife – Wir werden Benutzer-Suggestions-Schaltflächen direkt in den Hint einbauen. Wenn ein Benutzer additionally eine Antwort ablehnt, können wir sofort herausfinden, welcher Abruf oder welche Eingabeaufforderung den Benutzer dazu veranlasst hat, die Antwort abzulehnen.

Erste Schritte

Sie können schnell und einfach mit der Set up des Agenten beginnen.

Voraussetzungen

Set up

Als Erstes müssen Sie die folgenden Abhängigkeiten installieren, die aus dem Langfuse SDK und denen von Google bestehen Generative KI.

pip set up langfuse streamlit google-generativeai python-dotenv numpy scikit-learn 

Konfiguration

Nachdem Sie die Set up der Bibliotheken abgeschlossen haben, müssen Sie eine erstellen .env Datei, in der Ihre Anmeldeinformationen sicher gespeichert werden.

GOOGLE_API_KEY=your_gemini_key
LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_SECRET_KEY=sk-lf-...
LANGFUSE_HOST=https://cloud.langfuse.com 

Wie baut man?

Schritt 1: Die semantische Wissensdatenbank

Eine herkömmliche Stichwortsuche kann scheitern, wenn ein Benutzer unterschiedliche Wörter verwendet, additionally Synonyme verwendet. Daher möchten wir Vector Embeddings nutzen, um eine semantische Suchmaschine aufzubauen.

Rein durch Mathematik, d.h. Kosinusähnlichkeitwerden wir für jedes unserer Produkte einen „Bedeutungsvektor“ erstellen.

# db.py
from sklearn.metrics.pairwise import cosine_similarity
import google.generativeai as genai


def semantic_search(question):
    # Create a vector illustration of the question
    query_embedding = genai.embed_content(
        mannequin="fashions/text-embedding-004",
        content material=question
    )("embedding")

    # Utilizing math, discover the closest meanings to the question
    similarities = cosine_similarity((query_embedding), product_vectors)
    return get_top_matches(similarities)

Schritt 2: Das „Gehirn“ des intelligenten Routings

Wenn Benutzer „Hallo“ sagen, können wir die Benutzerabsicht mithilfe eines Klassifikators klassifizieren, sodass wir das Durchsuchen der Datenbank vermeiden können.

Sie werden sehen, dass wir mithilfe des auch Eingabe, Ausgabe und Latenz automatisch erkennen @langfuse.observe Dekorateur. Wie Magie!

@langfuse.observe(as_type="technology")
def classify_user_intent(user_input):
    immediate = f"""
    Use the next person enter to categorise the person's intent into one of many three classes:
    1. PRODUCT_SEARCH
    2. ORDER_STATUS
    3. GENERAL_CHAT

    Enter: {user_input}
    """

    # Name Gemini mannequin right here...
    intent = "PRODUCT_SEARCH"  # Placeholder return worth

    return intent

Schritt 3: Der Arbeitsablauf des Agenten

Wir fügen unseren Prozess zusammen. Der Agent nimmt wahr, erhält Eingaben, denkt (klassifiziert) und handelt dann (routet).

Wir verwenden die Methode lf_client.update_current_trace um die Konversation mit Metadateninformationen wie z. B. zu kennzeichnen session_id.

@langfuse.observe()  # Root Hint
def handle_customer_user_input(user_input, session_id):
    # Tag the session
    langfuse.update_current_trace(session_id=session_id)

    # Suppose
    intent = get_classified_intent(user_input)

    # Act primarily based on categorised intent
    if intent == "PRODUCT_SEARCH":
        context = use_semantic_search(user_input)
    elif intent == "ORDER_STATUS":
        context = check_order_status(user_input)
    else:
        context = None  # Non-compulsory fallback for GENERAL_CHAT or unknown intents

    # Return the response
    response = generate_ai_response(context, intent)
    return response

Schritt 4: Benutzeroberfläche und Feedbacksystem

Wir erstellen eine erweiterte Streamlit-Benutzeroberfläche. Eine wesentliche Änderung besteht darin, dass Suggestions-Schaltflächen einen Suggestions-Rating an Langfuse zurückgeben, der auf der individuellen Hint-ID basiert, die mit der spezifischen Benutzerkonversation verknüpft ist.

# app.py
col1, col2 = st.columns(2)

if col1.button("👍"):
    lf_client.rating(trace_id=trace_id, title="user-satisfaction", worth=1)

if col2.button("👎"):
    lf_client.rating(trace_id=trace_id, title="user-satisfaction", worth=0)

Eingaben, Ausgaben und Analyseergebnisse

Schauen wir uns die Anfrage eines Benutzers genauer an: „Verkaufen Sie Zubehör für Gaming-Systeme?“

  1. Die Anfrage
  • Benutzer: „Verkaufen Sie Zubehör für Gaming-Systeme?“
  • Kontext: Keine exakte Übereinstimmung für das Schlüsselwort „Zubehör“.
FuseCommerce
Aktuelle Spur
  1. Die Spur (Langfuse Level of Perspective)

Langfuse erstellt eine Hint-Ansicht, um die verschachtelte Hierarchie zu visualisieren:

TRACE: Agentengespräch (1,5 Sekunden)

  • Technology: classify_intent –> Ausgabe = PRODUCT_SEARCH
  • Spanne: Recover_Knowledge –> Semantische Suche = ordnet Spieldaten geometrisch der Quantum Wi-fi Mouse und dem UltraView Monitor zu.
  • Technology: generate_ai_response –> Output = „Ja! Für Gaming-Systeme empfehlen wir die Quantum Wi-fi Mouse…“

  1. Analyse

Sobald der Benutzer auf „Daumen hoch“ klickt, erhält Langfuse eine Punktzahl von 1. Sie erhalten die Gesamtsumme der „Daumen hoch“-Klicks professional Tag, um den Tagesdurchschnitt anzuzeigen. Außerdem steht Ihnen ein kumulatives visuelles Dashboard zur Verfügung:

  • Durchschnittliche Latenz: Verlangsamt sich Ihre semantische Suche?
  • Absichtsgenauigkeit: Halluziniert das Routing??
  • Kosten / Sitzung: Wie viel kostet die Nutzung von Gemini?

Abschluss

Durch unsere Implementierung von Langfuse haben wir ein verborgen funktionierendes Chatbot-System in ein offen sichtbares Betriebssystem umgewandelt. Durch die Entwicklung von Produktfunktionen haben wir das Vertrauen der Benutzer aufgebaut.

Wir haben durch die Absichtsklassifizierung bewiesen, dass unser Agent „Denkfähigkeiten“ besitzt, während er durch die semantische Suche Dinge „verstehen“ und sich durch Benutzer-Suggestions-Scores Wissen „aneignen“ kann. Dieses architektonische Design dient als Grundlage für moderne KI-Systeme, die in realen Umgebungen arbeiten.

Häufig gestellte Fragen

Q1. Welches Drawback löst Langfuse in LLM-Anwendungen?

A. Langfuse bietet Nachverfolgungs-, Metrik- und Bewertungstools zum Debuggen, Überwachen und Verbessern von LLM-Agenten in der Produktion.

Q2. Wie leitet FuseCommerce Benutzeranfragen clever weiter?

A. Es verwendet die Absichtsklassifizierung, um den Abfragetyp zu erkennen, und leitet sie dann zur semantischen Suche, zur Bestellsuche oder zur allgemeinen Chat-Logik weiter.

Q3. Wie verbessert sich das System im Laufe der Zeit?

A. Benutzerfeedback wird professional Hint protokolliert, was eine Leistungsüberwachung und eine iterative Optimierung von Eingabeaufforderungen, Abrufen und Routing ermöglicht.

Information Science Trainee bei Analytics Vidhya
Derzeit arbeite ich als Information Science Trainee bei Analytics Vidhya, wo ich mich auf die Entwicklung datengesteuerter Lösungen und die Anwendung von KI/ML-Techniken zur Lösung realer Geschäftsprobleme konzentriere. Meine Arbeit ermöglicht es mir, fortschrittliche Analysen, maschinelles Lernen und KI-Anwendungen zu erforschen, die es Unternehmen ermöglichen, intelligentere, evidenzbasierte Entscheidungen zu treffen.
Mit einem starken Fundament in den Bereichen Informatik, Softwareentwicklung und Datenanalyse ist es mir eine Leidenschaft, KI zu nutzen, um wirkungsvolle, skalierbare Lösungen zu schaffen, die die Lücke zwischen Technologie und Geschäft schließen.
📩 Du kannst mich auch erreichen unter (e mail protected)

Melden Sie sich an, um weiterzulesen und von Experten kuratierte Inhalte zu genießen.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert