Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie leert u hoe u een autonome AI-agent bouwt waarmee reizigersvragen en boekingen voor een cruiselijn worden verwerkt. De AI-agent maakt gebruik van het LangChain Agent-framework voor planning, hulpprogrammagebruik en perceptie. De agent combineert deze functies vervolgens met de vectordatabase en documentopslagmogelijkheden van Azure DocumentDB voor een geïntegreerd geheugensysteem.
De voorbeeldagent werkt in een Python FastAPI-back-end en ondersteunt gebruikersinteracties via een React JavaScript-gebruikersinterface. Deze implementatie laat zien hoe AI-agents verder gaan dan eenvoudige chatbots om complexe taken uit te voeren op basis van natuurlijke taal waarvoor traditioneel gecodeerde logica is vereist.
In deze handleiding leer je hoe je:
- Azure DocumentDB instellen met vectorzoekmogelijkheden
- Reisdocumenten laden en vector-insluitingen maken
- Een AI-agent bouwen met Behulp van Python FastAPI en LangChain
- Agenthulpprogramma's implementeren voor vakantiezoekopdrachten, zoeken in reisschema's en boekingen
- Een React-webinterface maken voor gebruikersinteracties
- De volledige AI-agentoplossing testen
Vereiste voorwaarden
Een Azure-abonnement
- Als u geen Azure-abonnement hebt, maakt u een gratis account
Een bestaand Azure DocumentDB-cluster
- Als u geen cluster hebt, maakt u een nieuw cluster
Een account voor de OpenAI-API of Azure OpenAI-service.
Een geïntegreerde ontwikkelomgeving, zoals Visual Studio Code.
Python 3.11.4 of hoger geïnstalleerd in de ontwikkelomgeving.
Node.js geïnstalleerd voor de React-front-end.
Het voorbeeldproject downloaden
Alle code- en voorbeeldgegevenssets zijn beschikbaar in de GitHub-opslagplaats travel AI Agent.
Kloon of download de opslagplaats (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) naar uw lokale ontwikkelomgeving.
Navigeer naar de projectmap en verken de structuur:
/loader: Bevat Python-code voor het laden van voorbeelddocumenten en vector-insluitingen in Azure DocumentDB/api: Bevat het Python FastAPI-project voor het hosten van de AI-reisagent/web: Bevat code voor de React-webinterface
Reisdocumenten laden in Azure DocumentDB
De /loader map bevat een Python-project voor het laden van voorbeelddocumenten in Azure DocumentDB en het maken van de benodigde vector insluitingen.
Navigeer naar de
/loadermap in je terminal.Een virtuele Python-omgeving maken:
python -m venv venvDe virtuele omgeving activeren:
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstalleer de vereiste afhankelijkheden:
python -m pip install -r requirements.txtMaak een
.envbestand in de/loadermap met de verbindingsgegevens:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Het
main.pybestand fungeert als het centrale toegangspunt voor het laden van gegevens. Het verwerkt voorbeeld van reisgegevens, waaronder verzend- en bestemmingsgegevens, en genereert vervolgens reisschemapakketten.Voer het script voor het laden van gegevens uit vanuit de
/loadermap. Het script voert deze bewerkingen uit:Leest verzend- en doelgegevens uit JSON-bestanden
Hiermee maakt u vijf reisschemapakketten met behulp van de
ItineraryBuilderRoutepakketten opslaan in de
itineraryverzamelingBestemmingen opslaan in de
destinationsverzamelingMaakt vectorrepresentaties voor schepen in de
shipscollectieHiermee voegt u een zoekindex voor tekst toe aan verzendnamen
python main.pyControleer of de uitvoer is voltooid:
--build itinerary-- --load itinerary-- --load destinations-- --load vectors ships--
De API van de AI-reisagent bouwen
De AI-reisagent wordt gehost via een Python FastAPI-back-end die integreert met de front-endinterface en agentaanvragen verwerkt door LLM-prompts (Large Language Model) af te stemmen op Azure DocumentDB-gegevens.
Navigeer naar de
/apidirectory in uw terminal.Een virtuele Python-omgeving maken en activeren:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstalleer de vereiste afhankelijkheden:
python -m pip install -r requirements.txtMaak een
.envbestand in de/apimap:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Voer de FastAPI-toepassing uit vanuit de
/apimap.python app.pyDe server start standaard op
http://127.0.0.1:8000.Verken de API-eindpunten door toegang te krijgen tot de interactieve Swagger-documentatie op
http://127.0.0.1:8000/docs.
De functionaliteit van de AI-agent testen
Test of de AI-agent werkt zoals verwacht.
Test het sessie-eindpunt in de Swagger-interface:
Navigeer naar
/session/en selecteer UitproberenVoer de aanvraag uit om een sessie-id op te halen voor het bijhouden van de gespreksgeschiedenis
Test de chatfunctionaliteit van de agent:
Navigeer naar
/agent/agent_chaten selecteer UitproberenGebruik deze voorbeeldinvoer om de agent te testen:
{ "input": "I want to take a relaxing vacation.", "session_id": "your-session-id-from-step-1" }De agent moet reageren met cruiserecommendaties op basis van vectorvergelijking zoeken, waarmee de integratie tussen de LLM en Azure DocumentDB wordt gedemonstreerd.
De React-webinterface maken
De webinterface biedt een gebruiksvriendelijke manier om te communiceren met de AI-reisagent via een gespreksinterface.
De React-omgeving instellen
Ga naar de
/webmap in uw terminal.Installeer de projectafhankelijkheden:
npm ciMaak een
.envbestand in de/webmap:REACT_APP_API_HOST=http://127.0.0.1:8000
De webtoepassing starten
Start de React-ontwikkelserver:
npm startDe toepassing wordt automatisch geopend in uw standaardbrowser, meestal op
http://localhost:3000.De interface toont een reiswebsite met cruiseschip- en bestemmingsafbeeldingen.
De volledige oplossing testen
Selecteer op de hoofdpagina moeiteloos uw reis plannen om de chatinterface van de reisassistent te openen.
De chatinterface wordt geopend in een dialoogvenster met een vooraf ingevuld bericht: 'Ik wil een ontspannen vakantie nemen'.
Selecteer Verzenden om het bericht naar de AI-agent te verzenden.
De assistent reageert met cruise-aanbevelingen op basis van uw invoer, en demonstreert daarbij het volgende:
Natuurlijke taalverwerking
Vector overeenkomsten zoeken op Azure DocumentDB
Gespreksgeheugen tijdens de sessie
MET HTML opgemaakte antwoorden in de chatinterface
Bekijk het volledige scala aan agentmogelijkheden door het gesprek voort te zetten. Vraag naar specifieke schepen, routes of boekingen.
Inzicht in de architectuur van de AI-agent
De implementatie van de AI-agent volgt een gelaagde architectuur die zorgen scheidt en onderhoudbaarheid mogelijk maakt.
Onderdelen van servicelaag
De servicelaag bevat de belangrijkste bedrijfslogica en de implementatie van de LangChain-agent:
Initialisatie van agent: de
init.pymodule stelt het ChatOpenAI-model, agenthulpprogramma's en gespreksgeschiedenis in.Agent Tools: Drie belangrijkste hulpprogramma's verwerken het opzoeken van vakanties, het zoeken van reisschema's en cruiseboekingen.
Geheugenbeheer: gespreksgeschiedenis wordt opgeslagen in Azure DocumentDB met behulp van sessie-id's.
Functionaliteit van agenthulpprogramma's
De AI-agent maakt gebruik van drie gespecialiseerde hulpprogramma's.
vacation_lookup: voert vectorzoekopdrachten uit op Azure DocumentDB om relevante reisinformatie te vinden.
itinerary_lookup: haalt details en planningen van cruisepakketten op voor specifieke schepen.
book_cruise: verwerkt cruisepakketten met validatie van passagiersgegevens.
Gegevenslaagintegratie
De gegevenslaag verwerkt alle interacties met Azure DocumentDB.
Vector Search: Similariteit zoeken met scoren voor reiswaanbevelingen.
Documentopslag: gestructureerde gegevens voor schepen, bestemmingen en itineraries.
Gespreksgeschiedenis: opslag van chatberichten op basis van sessies.
De hulpbronnen opschonen
Als u de resources die in deze zelfstudie zijn gemaakt niet meer nodig hebt, kunt u ze opschonen om doorlopende kosten te voorkomen:
Navigeer in Azure Portal naar uw Azure DocumentDB-account.
Als u voor deze zelfstudie een toegewezen resourcegroep hebt gemaakt, verwijdert u de hele resourcegroep.
Verwijder anders de specifieke verzamelingen die zijn gemaakt:
travel.itinerarytravel.destinationstravel.shipstravel.history