Freigeben über


Lernprogramm: Erstellen eines KI-Reisebüros mit Azure DocumentDB und LangChain

In diesem Lernprogramm erfahren Sie, wie Sie einen autonomen KI-Agent erstellen, der Reiseanfragen und Buchungen für eine Kreuzfahrtlinie verarbeitet. Der KI-Agent verwendet das LangChain-Agent-Framework für planung, Toolnutzung und Wahrnehmung. Der Agent kombiniert diese Features dann mit der Vektordatenbank und dokumentspeicherfunktionen von Azure DocumentDB für ein einheitliches Arbeitsspeichersystem.

Der Beispiel-Agent arbeitet in einem Python FastAPI-Back-End und unterstützt Benutzerinteraktionen über eine React-JavaScript-Benutzeroberfläche. Diese Implementierung veranschaulicht, wie KI-Agents über grundlegende Chatbots hinausgehen, um komplexe Aufgaben basierend auf natürlicher Sprache auszuführen, die traditionell codierte Logik erfordern.

In diesem Tutorial erfahren Sie, wie:

  • Einrichten von Azure DocumentDB mit Vektorsuchfunktionen
  • Laden von Reisedokumenten und Erstellen von Vektoreinbettungen
  • Erstellen eines KI-Agents mit Python FastAPI und LangChain
  • Implementieren von Agent-Tools für Urlaubssuche, Reiseroutensuche und Buchung
  • Erstellen einer React-Weboberfläche für Benutzerinteraktionen
  • Testen der vollständigen KI-Agent-Lösung

Voraussetzungen

  • Ein Azure-Abonnement

    • Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Konto
  • Ein vorhandener Azure DocumentDB-Cluster

    • Wenn Sie keinen Cluster haben, erstellen Sie einen neuen Cluster.
  • Ein Konto für die OpenAI API oder den Azure OpenAI Service

  • Eine integrierte Entwicklungsumgebung, z. B. Visual Studio Code

  • Python 3.11.4 oder höher in der Entwicklungsumgebung installiert.

  • Node.js für das React-Frontend installiert.

Herunterladen des Beispielprojekts

Alle Code- und Beispieldatensätze sind im GitHub-Repository für Reise-KI-Agent verfügbar.

  1. Klonen Sie oder laden Sie das Repository (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) in Ihre lokale Entwicklungsumgebung herunter.

  2. Navigieren Sie zum Projektverzeichnis, und erkunden Sie die Struktur:

    • /loader: Enthält Python-Code zum Laden von Beispieldokumenten und Vektoreinbettungen in Azure DocumentDB

    • /api: Enthält das Python FastAPI-Projekt zum Hosten des KI-Reisebüros

    • /web: Enthält Code für die React-Webschnittstelle

Laden von Reisedokumenten in Azure DocumentDB

Das /loader Verzeichnis enthält ein Python-Projekt zum Laden von Beispielreisedokumenten in Azure DocumentDB und zum Erstellen der erforderlichen Vektoreinbettungen.

  1. Navigieren Sie zu dem /loader Verzeichnis in Ihrem Terminal.

  2. Erstellen einer virtuellen Python-Umgebung:

    python -m venv venv
    
  3. Aktivieren der virtuellen Umgebung:

    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  4. Installieren Sie die erforderlichen Abhängigkeiten:

    python -m pip install -r requirements.txt
    
  5. Erstellen Sie eine .env Datei im /loader Verzeichnis mit Ihren Verbindungsdetails:

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  6. Die main.py Datei dient als zentraler Einstiegspunkt zum Laden von Daten. Es verarbeitet Beispiel-Reisedaten einschließlich Versand- und Zielinformationen und generiert dann Reiseroutenpakete.

  7. Führen Sie das Skript zum Laden von Daten aus dem /loader Verzeichnis aus. Das Skript führt die folgenden Vorgänge aus:

    • Liest Versand- und Zieldaten aus JSON-Dateien

    • Erstellt fünf Reiseroutenpakete mithilfe der ItineraryBuilder

    • Speichert Reiseroutenpakete in der itinerary Sammlung

    • Speichert Ziele in der destinations Sammlung.

    • Erstellt Vektoreinbettungen für Schiffe in der ships Auflistung

    • Fügt den Schiffsnamen einen Textsuchindex hinzu.

    python main.py
    
  8. Überprüfen Sie, ob die Ausgabe erfolgreich abgeschlossen ist:

    --build itinerary--
    --load itinerary--
    --load destinations--
    --load vectors ships--
    

Erstellen der KI-Reiseagent-API

Der KI-Reiseassistent wird über ein Python FastAPI-Back-End gehostet, das in die Front-End-Schnittstelle integriert ist und die Agent-Anforderungen verarbeitet, indem die Large Language Model (LLM)-Prompts gegen Azure DocumentDB-Daten abgeglichen werden.

  1. Navigieren Sie zu dem /api Verzeichnis in Ihrem Terminal.

  2. Erstellen und Aktivieren einer virtuellen Python-Umgebung:

    python -m venv venv
    
    # On Windows
    venv\Scripts\activate
    
    # On macOS/Linux
    source venv/bin/activate
    
  3. Installieren Sie die erforderlichen Abhängigkeiten:

    python -m pip install -r requirements.txt
    
  4. Erstellen Sie eine .env Datei im /api Verzeichnis:

    OPENAI_API_KEY="<your OpenAI key>"
    MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"
    
  5. Führen Sie die FastAPI-Anwendung aus dem /api Verzeichnis aus:

    python app.py
    
  6. Der Server startet standardmäßig auf http://127.0.0.1:8000.

  7. Erkunden Sie die API-Endpunkte, indem Sie auf die interaktive Swagger-Dokumentation zugreifen unter http://127.0.0.1:8000/docs.

Testen der KI-Agent-Funktionalität

Testen Sie, dass der KI-Agent erwartungsgemäß funktioniert.

  1. Testen Sie in der Swagger-Schnittstelle den Sitzungsendpunkt:

    • Navigieren Sie zu /session/ und wählen Sie "Ausprobieren" aus.

    • Ausführen der Anforderung zum Abrufen einer Sitzungs-ID zum Nachverfolgen des Unterhaltungsverlaufs

  2. Testen Sie die Agent-Chatfunktion:

    • Navigieren Sie zu /agent/agent_chat und wählen Sie "Ausprobieren" aus.

    • Verwenden Sie diese Beispieleingabe, um den Agent zu testen:

    {
      "input": "I want to take a relaxing vacation.",
      "session_id": "your-session-id-from-step-1"
    }
    
  3. Der Agent sollte mit Kreuzfahrtempfehlungen basierend auf der Vektorähnlichkeitssuche reagieren und die Integration zwischen llm und Azure DocumentDB demonstrieren.

Erstellen der React-Weboberfläche

Die Weboberfläche bietet eine benutzerfreundliche Möglichkeit, mit dem KI-Reisebüro über eine Unterhaltungsschnittstelle zu interagieren.

Einrichten der React-Umgebung

  1. Wechseln Sie zum /web Verzeichnis in Ihrem Terminal.

  2. Installieren Sie die Projektabhängigkeiten:

    npm ci
    
  3. Erstellen Sie eine .env Datei im /web Verzeichnis:

    REACT_APP_API_HOST=http://127.0.0.1:8000
    

Starten der Webanwendung

  1. Starten Sie den React-Entwicklungsserver:

    npm start
    
  2. Die Anwendung wird automatisch in Ihrem Standardbrowser geöffnet, in der Regel bei http://localhost:3000.

  3. Die Schnittstelle zeigt eine Reisewebsite mit Kreuzfahrtschiff- und Zielbildern.

Testen der vollständigen Lösung

  1. Wählen Sie auf der Hauptseite " Mühelos planen Sie Ihre Reise" aus, um die Chatoberfläche des Reiseassistenten zu öffnen.

  2. Die Chatoberfläche wird in einem Dialogfeld mit einer vorgefüllten Nachricht geöffnet: "Ich möchte einen entspannten Urlaub machen."

  3. Wählen Sie "Senden" aus, um die Nachricht an den KI-Agent zu senden.

  4. Der Agent gibt Kreuzfahrtempfehlungen basierend auf Ihrer Eingabe, die Folgendes veranschaulichen:

    • Verarbeitung natürlicher Sprache

    • Vektorgleichheitssuche mit Azure DocumentDB

    • Speicher der Unterhaltungen während der Sitzung

    • HTML-formatierte Antworten in der Chatoberfläche

  5. Sehen Sie sich die gesamte Palette der Agent-Funktionen an, indem Sie die Unterhaltung fortsetzen. Fragen Sie nach bestimmten Schiffen, Reiserouten oder Buchungen.

Grundlegendes zur KI-Agent-Architektur

Die KI-Agent-Implementierung folgt einer mehrschichtigen Architektur, die Bedenken trennt und die Wartung ermöglicht.

Dienstebenenkomponenten

Die Dienstebene enthält die Hauptgeschäftslogik und die LangChain-Agent-Implementierung:

  • Agent-Initialisierung: Das init.py-Modul richtet das ChatOpenAI-Modell, die Agent-Tools und den Verlauf der Konversation ein.

  • Agent-Tools: Drei Haupttools behandeln Urlaubssuche, Reiseroutensuche und Kreuzfahrtbuchung.

  • Speicherverwaltung: Die aufgezeichneten Unterhaltungen werden in Azure DocumentDB mithilfe von Sitzungsbezeichnern gespeichert.

Funktionen der Agenttools

Der KI-Agent verwendet drei spezielle Tools.

  1. vacation_lookup: Führt die Vektorsuche mit Azure DocumentDB durch, um relevante Reiseinformationen zu finden.

  2. itinerary_lookup: Ruft Kreuzfahrtpaketdetails und Zeitpläne für bestimmte Schiffe ab.

  3. book_cruise: Behandelt Kreuzfahrtpaketbuchungen mit Überprüfung der Passagierinformationen.

Datenschichtintegration

Die Datenschicht verarbeitet alle Interaktionen mit Azure DocumentDB.

  • Vektorsuche: Ähnlichkeitssuche mit Bewertung für Reiseempfehlungen.

  • Dokumentspeicher: Strukturierte Daten für Schiffe, Ziele und Reiserouten.

  • Aufgezeichnete Unterhaltungen: Sitzungsbasierter Chatnachrichtenspeicher.

Bereinigen von Ressourcen

Wenn Sie die in diesem Lernprogramm erstellten Ressourcen nicht mehr benötigen, können Sie sie bereinigen, um laufende Gebühren zu vermeiden:

  1. Navigieren Sie im Azure-Portal zu Ihrem Azure DocumentDB-Konto.

  2. Wenn Sie für dieses Lernprogramm eine dedizierte Ressourcengruppe erstellt haben, löschen Sie die gesamte Ressourcengruppe.

  3. Löschen Sie andernfalls die erstellten auflistungen:

    • travel.itinerary

    • travel.destinations

    • travel.ships

    • travel.history

Nächster Schritt