Überwachung LangChain

LangChain ist ein Python Framework, das für die Entwicklung und Verwaltung von KI-gesteuerten Anwendungen konzipiert ist, die große Sprachmodelle (LLMs) und externe Tools nutzen, um intelligente, kontextsensitive Systeme zu schaffen. Mit LangChain, können Sie intelligente Workflows entwickeln, die Aufgaben, Tools und LLMs miteinander verknüpfen, um Daten zu analysieren und dynamische Ergebnisse wie Dokumentationen, Zusammenfassungen oder Erkenntnisse zu generieren. LangChain’s Die Möglichkeit, mehrere Aufgaben und Tools miteinander zu verknüpfen, ermöglicht die Entwicklung komplexer KI-Systeme, die sich an unterschiedliche Anwendungsfälle anpassen lassen.

Instana bietet leistungsstarke Beobachtungsfunktionen für LangChain, die Echtzeitüberwachung von Workflows, LLM-Interaktionen und der Ausführung von Aufgaben. Durch die Integration von Instanas verteilter Ablaufverfolgung, Metrikenerfassung und Fehlererkennung erhalten Sie tiefe Einblicke in die Art und Weise, wie LangChain Workflows Daten verarbeiten, mit externen Tools interagieren und die Ausführung von Aufgaben optimieren. Instana gewährleistet die lückenlose Rückverfolgbarkeit für KI-gesteuerte Systeme und macht LangChain Implementierungen transparenter, zuverlässiger und skalierbarer. Diese Integration ermöglicht es Teams, die Leistung zu überwachen und Anomalien zu erkennen, um einen reibungslosen Betrieb von KI-gestützten Anwendungen zu gewährleisten, die mit LangChain.

Instrumentierung LangChain Anwendung

Um die LangChain Anwendung zu instrumentieren, führen Sie die folgenden Schritte aus:

Stellen Sie sicher, dass Ihre Umgebung alle Voraussetzungen erfüllt. Weitere Informationen finden Sie unter Voraussetzungen.

  1. Um Abhängigkeiten zu installieren, LangChain, führen Sie den folgenden Befehl aus:

    pip3 install langchain-core==0.3.34 langchain-community==0.3.17
    
  2. Exportieren Sie die folgenden Anmeldedaten, um auf die in der LangChain Beispielanwendung watsonX verwendeten Modelle zuzugreifen:

    export WATSONX_URL="<watsonx-url>"
    export WATSONX_PROJECT_ID="<watsonx-project-id>"
    export WATSONX_API_KEY="<watsonx-api-key>"
    
  3. Generieren Sie eine LangChain Beispielanwendung, indem Sie den folgenden Code ausführen:

     from langchain_ibm import WatsonxLLM
     from langchain_core.prompts import PromptTemplate
     from traceloop.sdk import Traceloop
     from traceloop.sdk.decorators import task, workflow
     import os
    
     # Initialize Traceloop
     Traceloop.init(app_name="langchain_watsonx_service")
    
     @task(name="initialize_watsonx_model")
     def initialize_model():
     return WatsonxLLM(
             model_id="ibm/granite-13b-instruct-v2",
             url=os.getenv("WATSONX_URL"),
             apikey=os.getenv("WATSONX_API_KEY"),
             project_id=os.getenv("WATSONX_PROJECT_ID"),
             params={
                 "decoding_method": "sample",
                 "max_new_tokens": 512,
                 "min_new_tokens": 1,
                 "temperature": 0.5,
                 "top_k": 50,
                 "top_p": 1,
             }
         )
    
     @task(name="create_prompt_template")
     def create_prompt():
         return PromptTemplate(
             input_variables=["input_text"],
             template="You are a helpful AI assistant. Respond to the following: {input_text}"
         )
    
     @task(name="process_llm_query")
     def process_query(prompt, llm, input_text):
         chain = prompt | llm
         return chain.invoke({"input_text": input_text})
    
     @workflow(name="watsonx_conversation_workflow")
     def run_conversation():
         watsonx_llm = initialize_model()
         prompt_template = create_prompt()
    
         input_text = "Explain the concept of quantum computing in simple terms."
         response = process_query(prompt_template, watsonx_llm, input_text)
         print("Response:", response)
    
     if __name__ == "__main__":
         run_conversation()
    
    
    
  4. Führen Sie die LangChain Anwendung aus, indem Sie den folgenden Befehl ausführen:

    python3 ./<langchain-sample-application>.py
    

Die LangChain Beispiel-App generiert eine Antwort, wie im folgenden Beispiel gezeigt:

Response: Quantum computing is a type of computing that uses quantum-mechanical phenomena such as superposition and quantum entanglement to perform calculations. It is different from classical computing, which uses binary digits (0s and 1s) to represent information. In quantum computing, information is encoded in quantum bits, or "qubits," which can exist in a superposition of both 0 and 1 at the same time. This allows quantum computers to perform certain types of calculations much faster than classical computers.

Nachdem Sie die Überwachung LangChain konfiguriert haben, sammelt Instana die folgenden Traces und Metriken aus der LangChain Anwendung:

Um die von LLM gesammelten Metriken anzuzeigen, die in verwendet LangChain, werden, siehe Metriken anzeigen.

Fehlerbehebung

Bei der Überwachung von LangChain basierten Anwendungen kann das folgende Problem auftreten:

Einige Metriken werden möglicherweise nicht mit den erwarteten Werten aufgelistet, wenn create_react_agent verwendet wird

Wenn eine der Metriken, einschließlich des Modellnamens, nicht korrekt aufgeführt ist, überprüfen Sie das Paket, das zum Importieren von create_react_agent verwendet wird. Das Importieren aus dem Paket langchain.agents '' wird nicht unterstützt. Verwenden Sie stattdessen das Paket ' langgraph.prebuilt '.