# Tunisia Hotel AI Advisor
This project is designed for a Tunisian travel agency, enabling users to query hotel information in Tunisia and receive accurate, vocalized responses. The backend leverages web scraping, semantic search, and generative AI to deliver up-to-date and personalized hotel information.
## Table of Contents
- Overview
- Demo
- Features
- Tech Stack
- Request Processing Workflow
- Data Initialization Workflow
- Setup Instructions
- Future Improvements
## Overview
The backend powers a voice agent that automates responses to common hotel-related queries, enhancing customer experience by providing 24/7 service. It processes user queries, retrieves relevant hotel data, generates coherent responses, and converts them into audio for a seamless interaction.
## Demo
github.com
## Features
- **Semantic Search**: Uses Qdrant and FastEmbed for efficient, context-aware hotel information retrieval.
- **Generative AI**: Employs Claude Haiku (via Anthropic API) for intelligent response generation.
- **Web Scraping**: Leverages Firecrawl to extract hotel data from TripAdvisor.
- **Text-to-Speech**: Converts text responses to audio using pyttsx3.
- **API Integration**: Exposes a `/ask` endpoint for frontend interaction, returning both text and audio responses.
## Tech Stack
- **Language**: Python
- **Frameworks & Libraries**:
- FastAPI: For building the API.
- Firecrawl: For web scraping (TripAdvisor).
- Qdrant: Vector database for semantic search.
- FastEmbed: For generating text embeddings.
- pyttsx3: For text-to-speech conversion.
- python-dotenv: For environment variable management.
- anthropic: For interacting with Claude Haiku API.
- **External APIs**:
- Claude Haiku (Anthropic): For response generation.
- Firecrawl API: For web scraping.
- TripAdvisor: Data source for hotel information.
- **Data Formats**:
- Embeddings: Numeric vectors for semantic search.
- Markdown/HTML: Scraped …