Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tutorial mostra-lhe como construir um agente de IA autónomo que processa consultas e reservas de viajantes para uma companhia de cruzeiros. O agente de IA utiliza a estrutura LangChain Agent para planeamento, utilização de ferramentas e perceção. O agente combina então estas funcionalidades com as capacidades de base de dados vetoriais e armazenamento de documentos do Azure DocumentDB para um sistema de memória unificado.
O agente de exemplo opera dentro de um backend Python FastAPI e suporta interações com o utilizador através de uma interface de utilizador React JavaScript. Esta implementação demonstra como os agentes de IA avançam para além dos chatbots básicos para realizar tarefas complexas baseadas em linguagem natural que tradicionalmente requerem lógica codificada.
Neste tutorial, aprenderás como:
- Configure o Azure DocumentDB com capacidades de pesquisa vetorial
- Carregar documentos de viagem e criar embeddings vetoriais
- Construa um agente de IA usando Python, FastAPI e LangChain
- Implemente ferramentas de agentes para pesquisa de férias, pesquisa de itinerários e reservas
- Crie uma interface web React para interações com o utilizador
- Teste a solução completa do agente de IA
Pré-requisitos
Uma assinatura do Azure
- Se você não tiver uma assinatura do Azure, crie uma conta gratuita
Um cluster do Azure DocumentDB existente
- Se não tiver um cluster, crie um novo cluster
Uma conta para a API OpenAI ou o Serviço OpenAI do Azure.
Um ambiente de desenvolvimento integrado, como o Visual Studio Code.
Python 3.11.4 ou posterior instalado no ambiente de desenvolvimento.
Node.js instalado para o frontend React.
Faça o download do projeto de exemplo
Todo o código e os conjuntos de dados de exemplo estão disponíveis no repositório GitHub do Travel AI Agent.
Clone ou descarregue o repositório (https://github.com/jonathanscholtes/Travel-AI-Agent-React-FastAPI-and-Cosmos-DB-Vector-Store) para o seu ambiente de desenvolvimento local.
Navegue até ao diretório do projeto e explore a estrutura:
/loader: Contém código Python para carregamento de documentos de exemplo e embeddings vetoriais no Azure DocumentDB/api: Contém o projeto Python FastAPI para alojar o agente de viagens de IA/web: Contém código para a interface web do React
Carregar documentos de viagem no Azure DocumentDB
O /loader diretório contém um projeto Python para carregar documentos de viagem de exemplo no Azure DocumentDB e criar as incorporações vetoriais necessárias.
Navegue até ao
/loaderdiretório no seu terminal.Crie um ambiente virtual em Python:
python -m venv venvAtive o ambiente virtual:
# On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstale as dependências necessárias:
python -m pip install -r requirements.txtCrie um
.envficheiro no/loaderdiretório com os detalhes da sua ligação:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"O
main.pyficheiro serve como ponto de entrada central para o carregamento dos dados. Processa dados de viagem de exemplo, incluindo informações de navio e destino, e depois gera pacotes de itinerários de viagem.Executa o script de carregamento de dados a partir do
/loaderdiretório. O script executa as seguintes operações:Lê dados de navio e destino a partir de ficheiros JSON
Cria cinco pacotes de itinerário usando o
ItineraryBuilderGuarda pacotes de itinerário na colecção
itineraryGuarda destinações na
destinationscoleçãoCria embeddings vetoriais para navios na
shipscoleçãoAdiciona um índice de pesquisa de texto aos nomes das naves
python main.pyVerifique se a saída mostra conclusão bem-sucedida:
--build itinerary-- --load itinerary-- --load destinations-- --load vectors ships--
Construa a API de agentes de viagens com IA
O agente de viagens de IA é alojado através de um backend FastAPI em Python que se integra com a interface frontend e processa pedidos do agente ao fundamentar os prompts do grande modelo de linguagem (LLM) contra os dados do Azure DocumentDB.
Navegue até ao
/apidiretório no seu terminal.Crie e ative um ambiente virtual em Python:
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activateInstale as dependências necessárias:
python -m pip install -r requirements.txtCrie um
.envficheiro no/apidiretório:OPENAI_API_KEY="<your OpenAI key>" MONGO_CONNECTION_STRING="mongodb+srv:<your connection string from Azure DocumentDB>"Execute a aplicação FastAPI a partir do
/apidiretório:python app.pyO servidor inicia-se em
http://127.0.0.1:8000por predefinição.Explore os endpoints da API acedendo à documentação interativa do Swagger em
http://127.0.0.1:8000/docs.
Teste a funcionalidade do agente de IA
Teste se o agente de IA funciona como esperado.
Na interface Swagger, teste o endpoint da sessão:
Navegue até
/session/e selecione Experimentar.Execute o pedido para obter um ID de sessão para rastrear o histórico de conversas
Teste a funcionalidade do chat do agente:
Navegue até
/agent/agent_chate selecione Experimentar.Use este exemplo de entrada para testar o agente:
{ "input": "I want to take a relaxing vacation.", "session_id": "your-session-id-from-step-1" }O agente deve responder com recomendações de cruzeiro baseadas na pesquisa por similaridade vetorial, demonstrando a integração entre o LLM e o Azure DocumentDB.
Criar a interface web do React
A interface web oferece uma forma fácil de interagir com o agente de viagens com IA através de uma interface conversacional.
Configurar o ambiente React
Vai ao
/webdiretório no teu terminal.Instale as dependências do projeto:
npm ciCrie um
.envficheiro no/webdiretório:REACT_APP_API_HOST=http://127.0.0.1:8000
Iniciar a aplicação web
Inicie o servidor de desenvolvimento React:
npm startA aplicação abre automaticamente no seu navegador predefinido, normalmente em
http://localhost:3000.A interface mostra um site de viagens com imagens de navios de cruzeiro e destinos.
Testar a solução completa
Na página principal, selecione Planear facilmente a sua viagem para abrir a interface de chat do assistente de viagem.
A interface do chat abre num diálogo com uma mensagem pré-preenchida: "Quero tirar umas férias relaxantes."
Selecione Enviar para enviar a mensagem ao agente de IA.
O agente responde com recomendações de cruzeiro com base na sua contribuição, demonstrando:
Processamento de linguagem natural
Pesquisa por similaridade vetorial contra o Azure DocumentDB
Memória conversacional ao longo da sessão
Respostas em formato HTML na interface de chat
Veja toda a gama de capacidades dos agentes continuando a conversa. Pergunte sobre navios específicos, itinerários ou como fazer reservas.
Compreenda a arquitetura dos agentes de IA
A implementação do agente de IA segue uma arquitetura em camadas que separa as preocupações e permite a manutenção.
Componentes da Camada de Serviço
A camada de serviço contém a lógica de negócio central e a implementação do Agente LangChain:
Inicialização do Agente: O
init.pymódulo configura o modelo ChatOpenAI, as ferramentas do agente e o histórico de conversas.Ferramentas para Agentes: Três ferramentas principais tratam da pesquisa de férias, pesquisa de itinerários e reserva de cruzeiros.
Gestão de Memória: O histórico das conversas é armazenado no Azure DocumentDB usando identificadores de sessão.
Funcionalidade dos Ferramentas do Agente
O agente de IA utiliza três ferramentas especializadas.
vacation_lookup: Realiza pesquisa vetorial no Azure DocumentDB para encontrar informações de viagem relevantes.
itinerary_lookup: Recolhe detalhes e horários de pacotes de cruzeiro para navios específicos.
book_cruise: Trata de reservas de pacotes de cruzeiro com validação de informações para passageiros.
Integração da Camada de Dados
A camada de dados gere todas as interações com o Azure DocumentDB.
Pesquisa vetorial: Pesquisa por similaridade com pontuação para recomendações de viagem.
Armazenamento de Documentos: Dados estruturados para navios, destinos e itinerários.
Histórico de Conversas: Armazenamento de mensagens de chat baseado em sessões.
Limpeza de recursos
Se já não precisar dos recursos criados neste tutorial, pode eliminá-los para evitar custos contínuos.
No portal Azure, navegue até à sua conta Azure DocumentDB.
Se criaste um grupo de recursos dedicado para este tutorial, elimina todo o grupo de recursos.
Caso contrário, elimine as coleções específicas criadas:
travel.itinerarytravel.destinationstravel.shipstravel.history