Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku pokazano, jak utworzyć autonomicznego agenta sztucznej inteligencji, który przetwarza zapytania podróżnych i rezerwacje na linię wycieczkową. Agent sztucznej inteligencji używa struktury agenta LangChain do planowania, użycia narzędzi i percepcji. Następnie agent łączy te funkcje z wektorową bazą danych usługi Azure DocumentDB i możliwościami przechowywania dokumentów dla ujednoliconego systemu pamięci.
Przykładowy agent działa w zapleczu fastAPI języka Python i obsługuje interakcje użytkowników za pośrednictwem interfejsu użytkownika React JavaScript. Ta implementacja pokazuje, jak agenci sztucznej inteligencji przechodzą poza podstawowe czatboty, aby wykonywać złożone zadania na podstawie języka naturalnego, które tradycyjnie wymagają zapisanej w kodzie logiki.
W tym poradniku nauczysz się, jak:
- Konfigurowanie usługi Azure DocumentDB z funkcjami wyszukiwania wektorowego
- Ładowanie dokumentów podróży i tworzenie zakodowań wektorowych
- Tworzenie agenta sztucznej inteligencji przy użyciu języka Python FastAPI i LangChain
- Implementowanie narzędzi agenta na potrzeby wyszukiwania urlopowego, wyszukiwania tras i rezerwacji
- Tworzenie interfejsu internetowego platformy React na potrzeby interakcji użytkownika
- Testowanie kompletnego rozwiązania agenta sztucznej inteligencji
Wymagania wstępne
Subskrypcja platformy Azure
- Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto
Istniejący klaster usługi Azure DocumentDB
- Jeśli nie masz klastra, utwórz nowy klaster
Konto dla API OpenAI lub Azure OpenAI Service.
Zintegrowane środowisko programistyczne, takie jak Visual Studio Code.
Python 3.11.4 lub nowszy zainstalowany w środowisku deweloperskim.
Node.js zainstalowane dla frontonu React.
Pobieranie przykładowego projektu
Wszystkie kody i przykładowe zestawy danych są dostępne w repozytorium GitHub Travel AI Agent.
Sklonuj lub pobierz repozytorium (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) do lokalnego środowiska deweloperskiego.
Przejdź do katalogu projektu i zapoznaj się ze strukturą:
/loader: Zawiera kod języka Python do ładowania przykładowych dokumentów i osadzania wektorów w usłudze Azure DocumentDB/api: zawiera projekt FastAPI języka Python do hostowania agenta podróży sztucznej inteligencji/web: zawiera kod dla interfejsu internetowego react
Ładowanie dokumentów podróży do usługi Azure DocumentDB
Katalog /loader zawiera projekt w języku Python do ładowania przykładowych dokumentów podróży do Azure DocumentDB i tworzenia niezbędnych wektorowych osadzeń.
Przejdź do katalogu
/loaderw terminalu.Tworzenie środowiska wirtualnego języka Python:
python -m venv venvAktywuj środowisko wirtualne:
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateZainstaluj wymagane zależności:
python -m pip install -r requirements.txt.envUtwórz plik w/loaderkatalogu ze szczegółami połączenia:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Plik
main.pysłuży jako centralny punkt wejścia do ładowania danych. Przetwarza przykładowe dane podróży, w tym informacje o statku i miejscu docelowym, a następnie generuje pakiety podróży.Uruchom skrypt ładowania danych z
/loaderkatalogu. Skrypt wykonuje następujące operacje:Odczytuje dane wysyłkowe i docelowe z plików JSON
Tworzy pięć pakietów tras przy użyciu
ItineraryBuilderZapisuje pakiety tras do kolekcji
itineraryZapisuje miejsca docelowe w kolekcji
destinationsTworzy osadzenia wektorowe dla statków w kolekcji
shipsDodaje indeks wyszukiwania tekstu do nazw statków
python main.pySprawdź, czy dane wyjściowe pokazują pomyślne zakończenie:
--build itinerary-- --load itinerary-- --load destinations-- --load vectors ships--
Tworzenie interfejsu API agenta podróży AI
Agent podróży sztucznej inteligencji jest hostowany za pośrednictwem zaplecza FastAPI w języku Python, które integruje się z interfejsem frontendowym i przetwarza żądania agentów przez osadzanie dużych monitów modelu językowego (LLM) w odniesieniu do danych usługi Azure DocumentDB.
Przejdź do katalogu
/apiw terminalu.Tworzenie i aktywowanie środowiska wirtualnego języka Python:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateZainstaluj wymagane zależności:
python -m pip install -r requirements.txt.envUtwórz plik w/apikatalogu:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Uruchom aplikację FastAPI z
/apikatalogu:python app.pySerwer domyślnie uruchamia się na
http://127.0.0.1:8000.Zapoznaj się z punktami końcowymi interfejsu API, korzystając z interaktywnej dokumentacji programu Swagger pod adresem
http://127.0.0.1:8000/docs.
Testowanie funkcjonalności agenta sztucznej inteligencji
Przetestuj, czy agent sztucznej inteligencji działa zgodnie z oczekiwaniami.
W interfejsie Swagger przetestuj punkt końcowy dla sesji.
Przejdź do
/session/strony i wybierz pozycję WypróbujWykonaj żądanie, aby uzyskać identyfikator sesji na potrzeby śledzenia historii konwersacji
Przetestuj funkcję czatu agenta:
Przejdź do
/agent/agent_chatstrony i wybierz pozycję WypróbujUżyj tych przykładowych danych wejściowych, aby przetestować agenta:
{ "input": "I want to take a relaxing vacation.", "session_id": "your-session-id-from-step-1" }Agent powinien reagować na zalecenia dotyczące rejsu na podstawie wyszukiwania podobieństwa wektorów, demonstrując integrację między usługą LLM i usługą Azure DocumentDB.
Tworzenie interfejsu internetowego platformy React
Interfejs internetowy zapewnia przyjazny dla użytkownika sposób interakcji z agentem podróży sztucznej inteligencji za pośrednictwem interfejsu konwersacyjnego.
Konfigurowanie środowiska React
Przejdź do katalogu w terminalu
/web.Zainstaluj zależności projektu:
npm ci.envUtwórz plik w/webkatalogu:REACT_APP_API_HOST=http://127.0.0.1:8000
Uruchamianie aplikacji internetowej
Uruchom serwer deweloperów React:
npm startAplikacja zostanie otwarta automatycznie w domyślnej przeglądarce, zazwyczaj w witrynie
http://localhost:3000.Interfejs przedstawia witrynę internetową podróży z obrazami statków wycieczkowych i docelowych.
Testowanie kompletnego rozwiązania
Na stronie głównej wybierz pozycję Bez wysiłku zaplanuj podróż , aby otworzyć interfejs czatu asystenta podróży.
Interfejs czatu otwiera się w oknie dialogowym ze wstępnie wypełnionym komunikatem: "Chcę wziąć relaksujące wakacje."
Wybierz pozycję Prześlij , aby wysłać wiadomość do agenta sztucznej inteligencji.
Agent odpowiada, przedstawiając zalecenia dotyczące rejsu na podstawie Twoich preferencji, demonstrując:
Przetwarzanie języka naturalnego
Wyszukiwanie podobieństwa wektorów w Azure DocumentDB
Pamięć konwersacyjna podczas całej sesji
Odpowiedzi w formacie HTML w interfejsie czatu
Zapoznaj się z pełnym zakresem możliwości agenta, kontynuując konwersację. Zapytaj o konkretne statki, trasy lub dokonywanie rezerwacji.
Omówienie architektury agenta sztucznej inteligencji
Implementacja agenta sztucznej inteligencji jest zgodna z architekturą warstwową, która oddziela kwestie i umożliwia utrzymanie.
Składniki warstwy usługi
Warstwa usługi zawiera podstawową logikę biznesową i implementację agenta LangChain:
Inicjowanie agenta:
init.pymoduł konfiguruje model ChatOpenAI, narzędzia agenta i historię konwersacji.Narzędzia agenta: Trzy główne narzędzia obsługują wyszukiwanie urlopowe, wyszukiwanie tras i rezerwację rejsów.
Zarządzanie pamięcią: historia konwersacji jest przechowywana w usłudze Azure DocumentDB przy użyciu identyfikatorów sesji.
Funkcje narzędzi agenta
Agent sztucznej inteligencji używa trzech wyspecjalizowanych narzędzi.
vacation_lookup: przeprowadza wyszukiwanie wektorów w usłudze Azure DocumentDB w celu znalezienia odpowiednich informacji o podróży.
itinerary_lookup: pobiera szczegóły pakietu wycieczkowego i harmonogramy dla określonych statków.
book_cruise: Obsługuje rezerwacje pakietów wycieczkowych z weryfikacją informacji o pasażerach.
Integracja warstwy danych
Warstwa danych obsługuje wszystkie interakcje z usługą Azure DocumentDB.
Wyszukiwanie wektorowe: wyszukiwanie podobieństwa z ocenianiem zaleceń dotyczących podróży.
Przechowywanie dokumentów: Ustrukturyzowane dane przeznaczone dla statków, miejsc docelowych i tras.
Historia konwersacji: przechowywanie wiadomości czatu oparte na sesji.
Uprzątnij zasoby
Jeśli nie potrzebujesz już zasobów utworzonych w tym samouczku, możesz je usunąć, aby uniknąć bieżących opłat:
W witrynie Azure Portal przejdź do konta usługi Azure DocumentDB.
Jeśli utworzono dedykowaną grupę zasobów na potrzeby tego samouczka, usuń całą grupę zasobów.
W przeciwnym razie usuń utworzone kolekcje:
travel.itinerarytravel.destinationstravel.shipstravel.history