- Conversational Interface: Engage in natural language conversations for travel planning.
- Multi-Domain Support: Supports flight, hotel, restaurant, and excursion recommendations.
- Semantic Kernel Integration: Leverages advanced AI to process user input and generate precise responses.
- Scalable Architecture: Modular design with clearly separated layers for API, business logic, and infrastructure.
- Custom Exception Handling: Robust error handling for seamless user experience.
- User Input Processing: Processes travel-related queries and extracts parameters.
- Conversation Management: Maintains conversation state through an orchestrator.
- Information Extraction: Uses dedicated skills for extracting flight, hotel, restaurant, and excursion details.
- Data Enhancement: Enhances search results and detailed information with LLM responses powered by Azure OpenAI.
- Dependency Injection: Utilizes dependency modules for orchestrator and infrastructure components ensuring loose coupling.
- FastAPI: Provides a high-performance API for handling requests.
- Azure OpenAI: Integrates with Azure OpenAI for advanced language processing.
- Cosmos DB Integration: Uses Cosmos DB for repository and data storage purposes.
- Modular Codebase: Structured into multiple directories including
api
,core
,infrastructure
,models
,skills
, andutils
. - Logging & Validation: Built-in logging and validation utilities for efficient debugging and error handling.
src
├── exceptions.py
├── run.py
├── chat_interface.py
├── __init__.py
├── api
│ ├── dependencies.py
│ ├── main.py
│ └── __init__.py
├── core
│ ├── config.py
│ ├── models.py
│ ├── orchestrator.py
│ └── __init__.py
├── infrastructure
│ ├── azure_openai.py
│ ├── cosmos_repository.py
│ └── __init__.py
├── models
│ ├── excursion.py
│ ├── flight.py
│ ├── hotel.py
│ ├── restaurant.py
│ ├── user.py
│ └── __init__.py
├── skills
│ ├── excursion_skill.py
│ ├── flight_skill.py
│ ├── hotel_skill.py
│ ├── restaurant_skill.py
│ └── __init__.py
├── utils
│ ├── currency.py
│ ├── date_helper.py
| ├── location_mapper.py
│ ├── logger.py
│ ├── validation.py
│ └── __init__.py
-
Clone the repository:
git clone https://github.com/ShivamGoyal03/RoamMind.git cd RoamMind/src
-
Create a virtual environment:
python -m venv env source env/bin/activate # On Windows: env\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
![]() Shivam Goyal |
Start both FastAPI and Chainlit servers with a single command:
python src/run.py
This will start:
- FastAPI backend at
http://127.0.0.1:8000
- Chainlit UI at
http://127.0.0.1:8501
- API docs at
http://127.0.0.1:8000/api/docs
RoamMind is configured via environment variables and the src/core/config.py
file. Key configuration parameters include:
AZURE_OPENAI_ENDPOINT
: The endpoint URL for Azure OpenAI.AZURE_OPENAI_API_VERSION
: The API version for Azure OpenAI.AZURE_OPENAI_API_KEY
: Your Azure OpenAI API key.- Cosmos DB connection details (if applicable).
- Logging: A custom logger is implemented in
src/utils/logger.py
to track application activity. - Error Handling: Custom exceptions are defined in
src/exceptions.py
for precise error management. - Skills Integration: The
src/skills
directory contains skills for handling domain-specific tasks like flight search, hotel booking, restaurant recommendations, and excursion planning.
For development, you can run the servers separately:
-
FastAPI:
uvicorn src.api.main:app --host 127.0.0.1 --port 8000 --reload
-
Chainlit:
chainlit run src/chat_interface.py --port 8501
Note
RoamMind is a fictional project created solely as a template and does not represent a real product. It serves as the core logic for building AI agent instructions and is not fully production-ready. Contributions are welcome if you want to enhance it. This template provides a foundational framework for a Travel AI Assistant, which you can customize to suit your requirements.
For more information, check out the resources: