A Model to explore the morrocan and hassani culture
# TURATH.ai
TURATH.ai est une plateforme RAG (Retrieval-Augmented Generation) orientee patrimoine/culture, composee de trois services qui travaillent ensemble :
- un frontend **Next.js** (`rag-frontend`) pour l'interface utilisateur,
- un backend **Spring Boot** (`rag-backend`) pour l'orchestration du chat,
- un sidecar **FastAPI + ChromaDB** (`rag-sidecar`) pour la recherche semantique.
## Apercu visuel
## Architecture du projet
1. L'utilisateur pose une question dans le frontend (`rag-frontend`).
2. Le frontend envoie la requete au backend via `POST /api/chat`.
3. Le backend appelle le sidecar Python (`
localhost`) pour recuperer les passages pertinents.
4. Le backend construit la reponse finale avec le modele LLM configure (`llm.url` dans `application.properties`).
5. La reponse est retournee au frontend.
## Structure des dossiers
- `rag-frontend/` : application Next.js (UI, composants, service de chat).
- `rag-backend/` : API Java Spring Boot (endpoint chat, orchestration RAG).
- `rag-sidecar/` : microservice FastAPI pour embeddings, reranking, et recherche ChromaDB.
- `heritage_data/` et `rag-sidecar/turath_chroma_data/` : donnees/index utilises pour la recherche.
- `images/` : captures et visuels du projet.
## Stack technique
- **Frontend**: Next.js 16, React 19, TypeScript, Tailwind.
- **Backend**: Java 17, Spring Boot 3.
- **ML/RAG**: FastAPI, sentence-transformers, ChromaDB, PyTorch.
## Endpoints utiles
- Backend chat : `POST
localhost`
- Sidecar health : `GET
localhost`
- Sidecar search : `GET
localhost`
## Lancement rapide (local)
> Les ports ci-dessous sont ceux declares dans les fichiers de configuration du projet.
> Execute les commandes depuis la racine du projet (`TURATH.ai/`).
### 1) Demarrer le sidecar Python
```zsh
cd rag-sidecar
python3 rag_api.py
```
### 2) Demarrer le backend S …