Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se dozvíte, jak vytvořit autonomního agenta AI, který zpracovává dotazy cestovatelů a rezervace pro výletní linku. Agent AI používá architekturu agenta LangChain k plánování, využití nástrojů a vnímání. Agent pak tyto funkce zkombinuje s funkcemi vektorové databáze Azure DocumentDB a úložiště dokumentů pro jednotný systém paměti.
Ukázkový agent pracuje v back-endu Python FastAPI a podporuje interakce uživatelů prostřednictvím uživatelského rozhraní React JavaScriptu. Tato implementace ukazuje, jak agenti AI přejdou nad rámec základních chatovacích robotů k provádění složitých úloh na základě přirozeného jazyka, který tradičně vyžaduje kódovanou logiku.
V tomto návodu se naučíte, jak:
- Nastavení Azure DocumentDB s možnostmi vektorového vyhledávání
- Načtení cestovních dokumentů a vytváření vektorových reprezentací
- Vytvoření agenta AI pomocí Python FastAPI a LangChain
- Implementace nástrojů agenta pro vyhledávání dovolené, vyhledávání itinerářů a rezervace
- Vytvoření webového rozhraní React pro interakce uživatelů
- Testování kompletního řešení agenta AI
Požadavky
Předplatné Azure
- Pokud ještě předplatné Azure nemáte, vytvořte si bezplatný účet.
Existující cluster Azure DocumentDB
- Pokud cluster nemáte, vytvořte nový cluster.
Účet pro rozhraní OPENAI API nebo službu Azure OpenAI.
Integrované vývojové prostředí, jako je Visual Studio Code.
Python 3.11.4 nebo novější nainstalovaný ve vývojovém prostředí
Node.js nainstalovanou pro front-end Reactu.
Stažení ukázkového projektu
Všechny kódy a ukázkové datové sady jsou k dispozici v úložišti GitHubu cestovního agenta AI.
Naklonujte nebo stáhněte úložiště (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) do místního vývojového prostředí.
Přejděte do adresáře projektu a prozkoumejte strukturu:
/loader: Obsahuje kód Pythonu pro načítání ukázkových dokumentů a vektorových vkládání do Azure DocumentDB./api: Obsahuje projekt FastAPI Pythonu pro hostování cestovního agenta AI./web: Obsahuje kód pro webové rozhraní React.
Načtení cestovních dokumentů do Azure DocumentDB
Tento /loader adresář obsahuje projekt Pythonu pro načítání ukázkových cestovních dokumentů do Azure DocumentDB a vytváření nezbytných vektorových vkládání.
Přejděte do
/loaderadresáře v terminálu.Vytvoření virtuálního prostředí Pythonu:
python -m venv venvAktivujte virtuální prostředí:
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateNainstalujte požadované závislosti:
python -m pip install -r requirements.txtVytvořte soubor
.envv adresáři/loaders podrobnostmi o připojení:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Soubor
main.pyslouží jako centrální vstupní bod pro načítání dat. Zpracovává ukázková cestovní data, včetně informací o expedicích a cílech, a pak generuje balíčky cestovních itinerářů.Spusťte skript pro načítání dat z
/loaderadresáře. Skript provádí tyto operace:Čte data o lodích a destinacích ze souborů JSON
Vytvoří pět balíčků pro itinerář pomocí
ItineraryBuilderUkládá balíčky itinerářů do kolekce
itinerary.Uloží cíle do
destinationskolekce.Vytvoří vektorová zapouzdření pro lodě v kolekci
ships.Přidá index vyhledávání textu k názvům lodí.
python main.pyOvěřte, že výstup ukazuje úspěšné dokončení:
--build itinerary-- --load itinerary-- --load destinations-- --load vectors ships--
Sestavení rozhraní API cestovního agenta AI
AI cestovní agent je hostovaný prostřednictvím zázemí Python FastAPI, které se integruje s uživatelským rozhraním a zpracovává požadavky agentů ukotvením výzev velkých jazykových modelů v datech Azure DocumentDB.
Přejděte do
/apiadresáře v terminálu.Vytvoření a aktivace virtuálního prostředí Pythonu:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateNainstalujte požadované závislosti:
python -m pip install -r requirements.txtVytvořte
.envsoubor v/apiadresáři:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Spusťte aplikaci FastAPI z
/apiadresáře:python app.pyServer se ve výchozím nastavení spustí na
http://127.0.0.1:8000.Prozkoumejte koncové body rozhraní API v interaktivní dokumentaci Swaggeru na adrese
http://127.0.0.1:8000/docs.
Testování funkčnosti agenta AI
Otestujte, že agent AI funguje podle očekávání.
V rozhraní Swagger otestujte koncový bod session:
Přejděte na
/session/a vyberte VyzkoušetProvedením požadavku získejte ID relace pro sledování historie konverzací.
Otestujte funkčnost chatu agenta:
Přejděte na
/agent/agent_chata vyberte VyzkoušejteK otestování agenta použijte tento ukázkový vstup:
{ "input": "I want to take a relaxing vacation.", "session_id": "your-session-id-from-step-1" }Agent by měl reagovat doporučeními pro výlety na základě vyhledávání vektorové podobnosti, což demonstruje integraci mezi LLM a Azure DocumentDB.
Vytvoření webového rozhraní Reactu
Webové rozhraní poskytuje uživatelsky přívětivý způsob interakce s cestovním agentem AI prostřednictvím konverzačního rozhraní.
Nastavení prostředí React
Přejděte do
/webadresáře v terminálu.Nainstalujte závislosti projektu:
npm ciVytvořte
.envsoubor v/webadresáři:REACT_APP_API_HOST=http://127.0.0.1:8000
Spuštění webové aplikace
Spusťte vývojový server React:
npm startAplikace se automaticky otevře ve výchozím prohlížeči, obvykle na adrese
http://localhost:3000.Rozhraní ukazuje cestovní web s výletní lodí a cílovými obrázky.
Otestování kompletního řešení
Na hlavní stránce vyberte Snadné plánování cesty a otevřete chatovací rozhraní cestovního asistenta.
V dialogovém okně se otevře rozhraní chatu s předem vyplněnou zprávou: "Chci si odpočinout na dovolenou".
Výběrem možnosti Odeslat odešlete zprávu agentu AI.
Agent reaguje doporučeními pro výlety na základě vašeho vstupu a demonstruje:
Zpracování přirozeného jazyka
Hledání vektorové podobnosti v Azure DocumentDB
Konverzační paměť v rámci relace
Odpovědi ve formátu HTML v rozhraní chatu
Pokračujte v konverzaci a prohlédněte si celou řadu funkcí agentů. Zeptejte se konkrétních lodí, itinerářů nebo rezervace.
Vysvětlení architektury agenta AI
Implementace agenta AI se řídí vrstvenou architekturou, která odděluje obavy a umožňuje udržovatelnost.
Komponenty vrstvy služeb
Vrstva služby obsahuje základní obchodní logiku a implementaci agenta LangChain:
Inicializace agenta: Modul
init.pynastaví model ChatOpenAI, nástroje agenta a historii konverzací.Nástroje agenta: Tři hlavní nástroje zpracovávají vyhledávání dovolené, itinerář hledání a výletní rezervace.
Správa paměti: Historie konverzací je uložená v Azure DocumentDB pomocí identifikátorů relací.
Funkce nástrojů agenta
Agent AI používá tři specializované nástroje.
vacation_lookup: Provede vektorové vyhledávání ve službě Azure DocumentDB a vyhledá relevantní cestovní informace.
itinerary_lookup: Načte podrobnosti o výletních balíčcích a plány pro konkrétní lodě.
book_cruise: Zpracovává rezervace výletních zásilek s ověřením informací o cestujících.
Integrace datové vrstvy
Datová vrstva zpracovává všechny interakce s Azure DocumentDB.
Vektorové vyhledávání: Hledání podobnosti s bodováním doporučení pro cestování.
Úložiště dokumentů: Strukturovaná data pro lodě, cíle a itineráře.
Historie konverzací: Úložiště zpráv chatu založené na relacích
Vyčistěte zdroje
Pokud už prostředky vytvořené v tomto kurzu nepotřebujete, můžete je vyčistit, abyste se vyhnuli průběžným poplatkům:
Na webu Azure Portal přejděte ke svému účtu Azure DocumentDB.
Pokud jste pro účely tohoto kurzu vytvořili vyhrazenou skupinu prostředků, odstraňte celou skupinu prostředků.
Jinak odstraňte vytvořené konkrétní kolekce:
travel.itinerarytravel.destinationstravel.shipstravel.history