The AI-Powered Travel Planner Agent is a Minimum Viable Product (MVP) that generates personalized travel itineraries based on user preferences. Users provide input (e.g., "5-day trip to Paris under $2000, interested in museums"), and the agent uses the Google Gemini SDK to parse preferences, generate relevant attractions, and create a day-by-day itinerary. The MVP is a web-based application built with Flask, featuring a simple interface for input and output.
- Conversational Input: Users enter travel preferences via a text form (e.g., destination, budget, days, interests).
- Preference Parsing: Gemini SDK extracts structured data (JSON) from natural language input.
- Attraction Generation: Gemini generates a curated list of attractions based on the destination and interests.
- Itinerary Generation: Creates a 5-day itinerary with daily activities, displayed as a JSON-based schedule.
- Web Interface: Basic HTML interface for input and itinerary display.
- AI: Google Gemini SDK (
google-generativeai
) with Gemini 1.5 Flash model. - Backend: Python 3.9+ with Flask for API and web server.
- Frontend: HTML templates with Flask.
- Dependencies:
flask
,google-generativeai
,python-dotenv
. - No External APIs: Relies solely on Gemini for attraction data, eliminating the need for Google Maps API.
- Python 3.9+: Installed on your system.
- Google Gemini API Key: Obtain from Google AI Studio.
- Git: For cloning the repository (optional).
-
Clone the Repository (or create the project structure):
git clone https://github.com/AI-Robotic-Labs/AI-Agent-Travel.git cd travel-planner-mvp
Project structure:
travel-planner-mvp/ ├── app.py ├── templates/ │ ├── index.html │ ├── result.html ├── .env ├── requirements.txt
-
Install Dependencies:
pip install -r requirements.txt
requirements.txt
:flask==2.3.3 google-generativeai==0.8.1 python-dotenv==1.0.1
-
Configure Environment:
- Create a
.env
file in the project root:GEMINI_API_KEY=your-gemini-api-key
- Obtain the Gemini API key from Google AI Studio.
- Create a
-
Run the Application:
python app.py
- Open
http://localhost:5000
in your browser.
- Open
- Enter Preferences:
- On the homepage (
/
), input your travel preferences (e.g., "5-day trip to Paris under $2000, interested in museums"). - Click "Plan My Trip" to submit.
- On the homepage (
- View Itinerary:
- The app displays a day-by-day itinerary with activities and attractions (e.g., "Day 1: Visit Louvre Museum").
- Click "Plan Another Trip" to start over.
Example Input:
- "5-day trip to Paris under $2000, interested in museums"
Example Output:
Itinerary for Paris
Day 1
- Arrive in Paris
- Visit Louvre Museum
Day 2
- Explore Orsay Museum
- Evening walk along Seine
...
- No Real-Time Data: Attractions are generated by Gemini, lacking live details like coordinates or opening hours.
- Text-Only Output: No PDF export or visual maps in the MVP.
- Basic UI: Minimal styling with HTML forms.
- No Persistence: Itineraries are not saved.
- PDF Export: Add ReportLab for downloadable itineraries.
- Enhanced UI: Use Bootstrap or React for a polished interface.
- External APIs: Integrate flight/hotel APIs (e.g., Amadeus) for comprehensive planning.
- Database: Store user preferences in Firestore.
- Voice Input: Add Google Cloud Speech-to-Text for accessibility.
- Gemini API Errors: Verify the API key in
.env
and test in Google AI Studio. - JSON Parsing Issues: If Gemini returns malformed JSON, adjust the
strip
logic inapp.py
. - Rate Limits: Monitor Gemini API usage in Google Cloud Console to stay within free-tier limits.
MIT License. Feel free to use and modify the code as needed.
O Agente de Planejamento de Viagens com IA é um Produto Mínimo Viável (MVP) que gera itinerários de viagem personalizados com base nas preferências do usuário. Os usuários fornecem entrada (por exemplo, "viagem de 5 dias para Paris com menos de $2000, interessado em museus"), e o agente usa o Google Gemini SDK para analisar preferências, gerar atrações relevantes e criar um itinerário dia a dia. O MVP é uma aplicação web construída com Flask, com uma interface simples para entrada e saída.
- Entrada Conversacional: Usuários inserem preferências de viagem por meio de um formulário de texto (por exemplo, destino, orçamento, dias, interesses).
- Análise de Preferências: O Gemini SDK extrai dados estruturados (JSON) de entrada em linguagem natural.
- Geração de Atrações: O Gemini gera uma lista curada de atrações com base no destino e interesses.
- Geração de Itinerário: Cria um itinerário de 5 dias com atividades diárias, exibido como um cronograma baseado em JSON.
- Interface Web: Interface HTML básica para entrada e exibição do itinerário.
- IA: Google Gemini SDK (
google-generativeai
) com o modelo Gemini 1.5 Flash. - Backend: Python 3.9+ com Flask para API e servidor web.
- Frontend: Modelos HTML com Flask.
- Dependências:
flask
,google-generativeai
,python-dotenv
. - Sem APIs Externas: Depende apenas do Gemini para dados de atrações, eliminando a necessidade da API do Google Maps.
- Python 3.9+: Instalado no seu sistema.
- Chave da API do Gemini: Obtenha em Google AI Studio.
- Git: Para clonar o repositório (opcional).
-
Clonar o Repositório (ou criar a estrutura do projeto):
git clone https://github.com/AI-Robotic-Labs/AI-Agent-Travel.git cd travel-planner-mvp
Estrutura do projeto:
travel-planner-mvp/ ├── app.py ├── templates/ │ ├── index.html │ ├── result.html ├── .env ├── requirements.txt
-
Instalar Dependências:
pip install -r requirements.txt
requirements.txt
:flask==2.3.3 google-generativeai==0.8.1 python-dotenv==1.0.1
-
Configurar o Ambiente:
- Crie um arquivo
.env
na raiz do projeto:GEMINI_API_KEY=sua-chave-da-api-gemini
- Obtenha a chave da API do Gemini no Google AI Studio.
- Crie um arquivo
-
Executar a Aplicação:
python app.py
- Abra
http://localhost:5000
no seu navegador.
- Abra
- Inserir Preferências:
- Na página inicial (
/
), insira suas preferências de viagem (por exemplo, "viagem de 5 dias para Paris com menos de $2000, interessado em museus"). - Clique em "Planejar Minha Viagem" para enviar.
- Na página inicial (
- Visualizar Itinerário:
- A aplicação exibe um itinerário dia a dia com atividades e atrações (por exemplo, "Dia 1: Visitar o Museu do Louvre").
- Clique em "Planejar Outra Viagem" para começar novamente.
Exemplo de Entrada:
- "viagem de 5 dias para Paris com menos de $2000, interessado em museus"
Exemplo de Saída:
Itinerário para Paris
Dia 1
- Chegar em Paris
- Visitar o Museu do Louvre
Dia 2
- Explorar o Museu Orsay
- Passeio noturno ao longo do Sena
...
- Sem Dados em Tempo Real: As atrações são geradas pelo Gemini, sem detalhes ao vivo como coordenadas ou horários de funcionamento.
- Saída Apenas em Texto: Sem exportação para PDF ou mapas visuais no MVP.
- Interface Básica: Estilização mínima com formulários HTML.
- Sem Persistência: Os itinerários não são salvos.
- Exportação para PDF: Adicionar ReportLab para itinerários baixáveis.
- Interface Aprimorada: Usar Bootstrap ou React para uma interface mais polida.
- APIs Externas: Integrar APIs de voos/hotéis (por exemplo, Amadeus) para planejamento completo.
- Banco de Dados: Armazenar preferências do usuário no Firestore.
- Entrada por Voz: Adicionar Google Cloud Speech-to-Text para acessibilidade.
- Erros na API do Gemini: Verifique a chave da API no
.env
e teste no Google AI Studio. - Problemas de Análise JSON: Se o Gemini retornar JSON malformado, ajuste a lógica de
strip
noapp.py
. - Limites de Taxa: Monitore o uso da API do Gemini no Google Cloud Console para permanecer dentro dos limites do nível gratuito.
Licença MIT. Sinta-se à vontade para usar e modificar o código conforme necessário.