🏛️ AI-powered chatbot exploring Tunisian archaeological sites using RAG (Retrieval-Augmented Generation) with Llama3, ChromaDB & Streamlit. Local-first, conversation-aware, with source citations for heritage discovery.
# Tunisia Archaeological Chatbot
An intelligent RAG-based chatbot for exploring Tunisia's archaeological heritage through natural language conversations.
## Overview
This system combines semantic search, vector databases, and large language models to provide accurate responses about Tunisian archaeological sites with full source attribution.
**Key Features:**
- Semantic search using ChromaDB and Sentence Transformers
- Context-aware conversations with Llama3
- Automatic source citation with relevance scoring
- Persistent chat history with SQLite
- Local-first deployment (no external APIs)
## Features
### Core Functionality
- **RAG Pipeline**: Vector embeddings with Sentence Transformers and semantic search via ChromaDB
- **Conversational AI**: Multi-turn dialogues with context awareness using Llama3
- **Source Attribution**: Automatic citations with relevance scores and metadata
- **Persistence**: SQLite-backed chat history with search and analytics
### User Interface
- Clean Streamlit web interface
- Real-time response streaming
- Conversation management (create, load, delete, search)
- System status monitoring
- Privacy-first local deployment
## Architecture
### System Components
```
User Interface (Streamlit)
↓
RAG Engine
↓ ↓
ChromaDB Ollama/Llama3
↓
SQLite Database
```
### Technology Stack
- **Web Framework**: Streamlit
- **Vector Database**: ChromaDB
- **Embeddings**: Sentence Transformers (all-MiniLM-L6-v2)
- **LLM**: Llama3 via Ollama
- **Database**: SQLite3
- **Language**: Python 3.8+
## Quick Start
### Prerequisites
- Python 3.8+
- Ollama (Installation)
- 4GB RAM minimum
### Installation
**1. Clone and setup environment**
```bash
git clone
github.com
cd tunisia-archaeological-chatbot
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
```
**2. Configure Ollama**
```bash
ollama pull llama3
ollama serve # Keep runni …