Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa esercitazione illustra come creare un agente di intelligenza artificiale autonomo che elabora le richieste dei viaggiatori e le prenotazioni per una linea di crociera. L'agente di intelligenza artificiale usa il framework dell'agente LangChain per la pianificazione, l'utilizzo degli strumenti e la percezione. L'agente combina quindi queste funzionalità con le funzionalità del database vettoriale e dell'archivio documenti di Azure DocumentDB per un sistema di memoria unificato.
L'agente di esempio opera all'interno di un back-end FastAPI Python e supporta le interazioni utente tramite un'interfaccia utente JavaScript React. Questa implementazione illustra come gli agenti di intelligenza artificiale avanzano oltre i chatbot di base per eseguire attività complesse basate sul linguaggio naturale che tradizionalmente richiedono logica codificata.
In questa esercitazione si apprenderà come:
- Configurare Azure DocumentDB con funzionalità di ricerca vettoriale
- Caricare documenti di viaggio e creare incorporamenti vettoriali
- Creare un agente di intelligenza artificiale usando Python FastAPI e LangChain
- Implementare gli strumenti dell'agente per la ricerca delle vacanze, la ricerca di itinerari e la prenotazione
- Creare un'interfaccia Web React per le interazioni utente
- Testare la soluzione completa dell'agente di intelligenza artificiale
Prerequisiti
Una sottoscrizione di Azure
- Se non hai un abbonamento Azure, crea un account gratuito
Un cluster Di Azure DocumentDB esistente
- Se non si ha un cluster, creare un nuovo cluster
Un account per l'API OpenAI o il Servizio OpenAI di Azure.
Un ambiente di sviluppo integrato, ad esempio Visual Studio Code.
Python 3.11.4 o versione successiva installata nell'ambiente di sviluppo.
Node.js installato per il front-end React.
Scaricare il progetto di esempio
Tutti il codice e i set di dati di esempio sono disponibili nel repository GitHub Travel AI Agent.
Clonare o scaricare il repository (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) nell'ambiente di sviluppo locale.
Passare alla directory del progetto ed esplorare la struttura:
/loader: contiene il codice Python per il caricamento di documenti di esempio e incorporamenti vettoriali in Azure DocumentDB/api: contiene il progetto Python FastAPI per ospitare l'agente di viaggio di intelligenza artificiale/web: contiene il codice per l'interfaccia Web React
Caricare documenti di viaggio in Azure DocumentDB
La /loader directory contiene un progetto Python per caricare documenti di viaggio di esempio in Azure DocumentDB e creare gli incorporamenti vettoriali necessari.
Passare alla cartella
/loadernel terminale.Creare un ambiente virtuale Python:
python -m venv venvAttivare l'ambiente virtuale:
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstallare le dipendenze necessarie:
python -m pip install -r requirements.txtCreare un file
.envnella directory/loadercon i dettagli di connessione.OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Il
main.pyfile funge da punto di ingresso centrale per il caricamento dei dati. Elabora i dati di viaggio di esempio, incluse le informazioni sulla spedizione e sulla destinazione, quindi genera pacchetti di itinerari di viaggio.Eseguire lo script di caricamento dei dati dalla
/loaderdirectory. Lo script esegue queste operazioni:Legge i dati di spedizione e di destinazione dai file JSON
Crea cinque pacchetti di itinerari usando il
ItineraryBuilderSalva i pacchetti di itinerari nella raccolta
itinerarySalva le destinazioni nella raccolta
destinationsCrea incorporamenti vettoriali per gli invii nella raccolta
shipsAggiunge un indice di ricerca di testo ai nomi delle spedizioni
python main.pyVerificare che l'output mostri il completamento corretto:
--build itinerary-- --load itinerary-- --load destinations-- --load vectors ships--
Creare l'API dell'agente di viaggio di intelligenza artificiale
L'agente di viaggio di intelligenza artificiale è ospitato tramite un back-end FastAPI Python che si integra con l'interfaccia front-end e elabora le richieste dell'agente eseguendo richieste LLM (Large Language Model) sui dati di Azure DocumentDB.
Passa alla directory
/apinel terminale.Creare e attivare un ambiente virtuale Python:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstallare le dipendenze necessarie:
python -m pip install -r requirements.txtCreare un
.envfile nella/apidirectory:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Eseguire l'applicazione FastAPI dalla
/apidirectory :python app.pyIl server parte su
http://127.0.0.1:8000di default.Esplorare gli endpoint API accedendo alla documentazione interattiva di Swagger all'indirizzo
http://127.0.0.1:8000/docs.
Testare la funzionalità dell'agente di intelligenza artificiale
Verificare che l'agente di intelligenza artificiale funzioni come previsto.
Nell'interfaccia Swagger testare l'endpoint di sessione:
Passare a
/session/e selezionare ProvaEseguire la richiesta per ottenere un ID sessione per tenere traccia della cronologia delle conversazioni
Testare la funzionalità di chat dell'agente:
Passare a
/agent/agent_chate selezionare ProvaUsare questo input di esempio per testare l'agente:
{ "input": "I want to take a relaxing vacation.", "session_id": "your-session-id-from-step-1" }L'agente dovrebbe rispondere con raccomandazioni per la crociera basate sulla ricerca di similarità vettoriale, dimostrando l'integrazione tra il modello linguistico di grandi dimensioni (LLM) e Azure DocumentDB.
Creare l'interfaccia Web React
L'interfaccia Web offre un modo semplice per interagire con l'agente di viaggio di intelligenza artificiale tramite un'interfaccia conversazionale.
Configurare l'ambiente React
Vai alla directory
/webnel terminale.Installare le dipendenze del progetto:
npm ciCreare un
.envfile nella/webdirectory:REACT_APP_API_HOST=http://127.0.0.1:8000
Avviare l'applicazione Web
Avviare il server di sviluppo React:
npm startL'applicazione viene aperta automaticamente nel browser predefinito, in genere in
http://localhost:3000.L'interfaccia mostra un sito Web di viaggio con immagini di nave da crociera e di destinazione.
Testare la soluzione completa
Nella pagina principale selezionare Senza sforzo pianificare il viaggio per aprire l'interfaccia chat assistente viaggio.
L'interfaccia della chat si apre in un dialogo con un messaggio prepopolato: "Voglio prendere una vacanza rilassante".
Selezionare Invia per inviare il messaggio all'agente di intelligenza artificiale.
L'agente risponde con raccomandazioni di crociera in base all'input, dimostrando:
Elaborazione del linguaggio naturale
Ricerca di somiglianza vettoriale in Azure DocumentDB
Memoria conversazionale attraverso la sessione
Risposte in formato HTML nell'interfaccia della chat
Vedere la gamma completa di capacità dell'agente continuando la conversazione. Chiedi informazioni su navi, itinerari o prenotazioni specifiche.
Informazioni sull'architettura dell'agente di intelligenza artificiale
L'implementazione dell'agente di intelligenza artificiale segue un'architettura a più livelli che separa i problemi e abilita la gestibilità.
Componenti del livello di servizio
Il livello di servizio contiene la logica di business di base e l'implementazione dell'agente LangChain:
Inizializzazione agente: il
init.pymodulo configura il modello ChatOpenAI, gli strumenti dell'agente e la cronologia delle conversazioni.Strumenti agente: tre strumenti principali gestiscono la ricerca delle vacanze, la ricerca di itinerari e la prenotazione della crociera.
Gestione della memoria: la cronologia delle conversazioni viene archiviata in Azure DocumentDB usando gli identificatori di sessione.
Funzionalità degli strumenti dell'agente
L'agente di intelligenza artificiale usa tre strumenti specializzati.
vacation_lookup: esegue la ricerca vettoriale in Azure DocumentDB per trovare informazioni di viaggio pertinenti.
itinerary_lookup: recupera i dettagli del pacchetto di crociera e le pianificazioni per navi specifiche.
book_cruise: gestisce le prenotazioni di pacchetti di crociera con la convalida delle informazioni sui passeggeri.
Integrazione del livello dati
Il livello dati gestisce tutte le interazioni con Azure DocumentDB.
Ricerca vettoriale: ricerca di somiglianza con l'assegnazione dei punteggi per le raccomandazioni per i viaggi.
Archiviazione documenti: dati strutturati per navi, destinazioni e itinerari.
Cronologia conversazioni: archiviazione dei messaggi di chat basata su sessione.
Pulire le risorse
Se le risorse create in questa esercitazione non sono più necessarie, è possibile pulirle per evitare addebiti in corso:
Nel portale di Azure passare all'account Azure DocumentDB.
Se è stato creato un gruppo di risorse dedicato per questa esercitazione, eliminare l'intero gruppo di risorse.
In caso contrario, eliminare le raccolte specifiche create:
travel.itinerarytravel.destinationstravel.shipstravel.history