This is the backend for Journeo, an LLM-based travel itinerary planner. It allows users to chat with an LLM chatbot to generate personalized travel itinerary with OpenAI's GPT. Locations from this itinerary are displayed on an interactive map.
- Integrates OpenAI's API for dynamic itinerary generation based on user input.
- Utilizes Google's Geocoding API and Places API to asynchronously geocode and obtain details for each place generated.
- Python
- FastAPI
- Mapbox Geocoding API
Note: This is only the backend of the application. You will need to set up and run the frontend as well for full functionality.
-
Create a Mapbox account and obtain a Mapbox access token.
-
Create an OpenAI account and obtain an OpenAI API Key.
-
Clone the repository:
git clone https://github.com/eugene-lok/journeo-backend.git
-
Create a virtual environment in the root of the project:
python3 -m venv env
- On Linux/Mac:
source env/bin/activate
- On Windows:
\env\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Create a
.env
file in the root of your project with the following keys:
MAPBOX_ACCESS_TOKEN=your_mapbox_access_token OPENAI_API_KEY=your_openai_api_key
- Create a
-
Run the FastAPI server:
uvicorn app.main:app --reload
-
The API will be accessible on
http://localhost:8000
. Ensure the frontend has been setup and is running as well.