Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
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.
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.
Navigieren Sie zu dem
/loaderVerzeichnis in Ihrem Terminal.Erstellen einer virtuellen Python-Umgebung:
python -m venv venvAktivieren der virtuellen Umgebung:
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstallieren Sie die erforderlichen Abhängigkeiten:
python -m pip install -r requirements.txtErstellen Sie eine
.envDatei im/loaderVerzeichnis mit Ihren Verbindungsdetails:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Die
main.pyDatei dient als zentraler Einstiegspunkt zum Laden von Daten. Es verarbeitet Beispiel-Reisedaten einschließlich Versand- und Zielinformationen und generiert dann Reiseroutenpakete.Führen Sie das Skript zum Laden von Daten aus dem
/loaderVerzeichnis aus. Das Skript führt die folgenden Vorgänge aus:Liest Versand- und Zieldaten aus JSON-Dateien
Erstellt fünf Reiseroutenpakete mithilfe der
ItineraryBuilderSpeichert Reiseroutenpakete in der
itinerarySammlungSpeichert Ziele in der
destinationsSammlung.Erstellt Vektoreinbettungen für Schiffe in der
shipsAuflistungFügt den Schiffsnamen einen Textsuchindex hinzu.
python main.pyÜ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.
Navigieren Sie zu dem
/apiVerzeichnis in Ihrem Terminal.Erstellen und Aktivieren einer virtuellen Python-Umgebung:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstallieren Sie die erforderlichen Abhängigkeiten:
python -m pip install -r requirements.txtErstellen Sie eine
.envDatei im/apiVerzeichnis:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Führen Sie die FastAPI-Anwendung aus dem
/apiVerzeichnis aus:python app.pyDer Server startet standardmäßig auf
http://127.0.0.1:8000.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.
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
Testen Sie die Agent-Chatfunktion:
Navigieren Sie zu
/agent/agent_chatund 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" }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
Wechseln Sie zum
/webVerzeichnis in Ihrem Terminal.Installieren Sie die Projektabhängigkeiten:
npm ciErstellen Sie eine
.envDatei im/webVerzeichnis:REACT_APP_API_HOST=http://127.0.0.1:8000
Starten der Webanwendung
Starten Sie den React-Entwicklungsserver:
npm startDie Anwendung wird automatisch in Ihrem Standardbrowser geöffnet, in der Regel bei
http://localhost:3000.Die Schnittstelle zeigt eine Reisewebsite mit Kreuzfahrtschiff- und Zielbildern.
Testen der vollständigen Lösung
Wählen Sie auf der Hauptseite " Mühelos planen Sie Ihre Reise" aus, um die Chatoberfläche des Reiseassistenten zu öffnen.
Die Chatoberfläche wird in einem Dialogfeld mit einer vorgefüllten Nachricht geöffnet: "Ich möchte einen entspannten Urlaub machen."
Wählen Sie "Senden" aus, um die Nachricht an den KI-Agent zu senden.
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
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.
vacation_lookup: Führt die Vektorsuche mit Azure DocumentDB durch, um relevante Reiseinformationen zu finden.
itinerary_lookup: Ruft Kreuzfahrtpaketdetails und Zeitpläne für bestimmte Schiffe ab.
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:
Navigieren Sie im Azure-Portal zu Ihrem Azure DocumentDB-Konto.
Wenn Sie für dieses Lernprogramm eine dedizierte Ressourcengruppe erstellt haben, löschen Sie die gesamte Ressourcengruppe.
Löschen Sie andernfalls die erstellten auflistungen:
travel.itinerarytravel.destinationstravel.shipstravel.history