Cicerone is an AI-based travel assistant that creates tourist itineraries. It uses a single agent to understand user preferences and generate a plan for a trip.
The goal of this project is to demonstrate how to build a simple web application using the Google Agent Development Kit (ADK). The application uses a single agent to generate a travel itinerary based on user input.
The application provides the following capabilities:
- Itinerary Generation: The agent takes a location, user interests, budget, and available time to generate a travel itinerary.
- Location Suggestions: The agent uses Google Maps to find attractions and restaurants that match user interests.
- Route Planning: The itinerary includes a schedule with routes, travel times, and public transportation advice.
- Web Interface: A web interface is provided to input travel preferences and view the generated itinerary.
The application is built using the Google Agent Development Kit (ADK) and served via a FastAPI web server.
cicerone-agent/: This directory contains the core ADK agent definition.agent.py: Defines thecicerone_agent, its instructions, and the tools it uses.
main.py: The FastAPI web server that exposes the agent and serves the frontend application.static/: Contains the frontend files.index.html: The main HTML page with the user interface.script.js: The JavaScript code that handles user input and communication with the agent's API.
requirements.txt: Lists the Python dependencies for the project..env: Used to store environment variables, such as API keys.
To run the application locally, follow these steps:
- Install the dependencies:
pip install -r requirements.txt
- Set up the environment variables:
Create a
.envfile in the root of the project and add your Google API key:MODEL=gemini-2.5-flash # Add your Google API key if not using Vertex AI # GOOGLE_API_KEY=YOUR_API_KEY - Run the web server:
python -m uvicorn main:app --reload
- Access the application:
Open your web browser and go to
http://127.0.0.1:8000.
- Open the web application in your browser.
- Fill in the form with the location you want to visit, your interests, budget, and the duration of your trip.
- Click the "Generate Itinerary" button.
- The agent will process your request and display an itinerary.