Cléa-API

Framework de chargement de documents, recherche hybride et RAG (vectorielle + métadonnées + génération) pour PostgreSQL + pgvector.
Conçu 100 % local & hors-ligne pour vos données sensibles (médicales, financières, juridiques…).

Licence MIT


Accès rapides 📚

Sujet Documentation
Chargement & extraction Extracteurs · Segmentation
Base de données & index vectoriels Database
Moteur de recherche hybride Search
Pipeline end-to-end Pipeline
IA générative & RAG (AskAI) AskAI
Référence API Python (autogen) Doc Loader · Vectordb · Pipeline
OpenAPI / Endpoints REST REST API

Caractéristiques principales

  • 🔒 100 % local & hors-ligne : aucun appel à des services externes, parfait pour les données confidentielles
  • 📂 Chargement multi-formats : PDF, DOCX, HTML, JSON, TXT…
  • 🧩 Segmentation hiérarchique : Section → Paragraphe → Chunk
  • 🔍 Recherche hybride : ivfflat ou HNSW + filtres SQL + re-ranking Cross-Encoder
  • 🤖 RAG avec petits LLMs (AskAI) : génération augmentée en local (Qwen3-0.6B/1.7B)
  • Pipeline "one-liner" :
  from pipeline import process_and_store
  process_and_store("report.pdf", theme="R&D")
  • 🛠️ Extensible : ajoutez un extracteur ou un modèle en quelques lignes
  • 🐳 Docker-ready & CI-friendly (tests PyTest, MkDocs)

Structure du dépôt

.
├── doc_loader/   # Extraction & chargement
├── vectordb/     # Modèles & recherche
├── pipeline/     # Orchestration end-to-end
├── askai/        # RAG & génération locale
├── docs/         # Documentation MkDocs ← vous êtes ici
├── demo/         # Exemples de fichiers
└── main.py       # Démarreur FastAPI + configuration

Installation rapide

git clone https://github.com/votre-repo/clea-api.git
cd clea-api

# Dépendances Python
uv pip install -r requirements.txt
uv pip install -r askai/requirements_askai.txt   # pour AskAI

# Variables d’environnement
cp .env.sample .env
# (éditez DB_USER, DB_PASSWORD, etc.)

# Initialiser la DB + extension pgvector
uv python -m vectordb.src.database init_db

# Lancer l’API
./start.sh   # ou uv run main.py

L’API sera disponible sur http://localhost:8080.


Conçu pour un usage local et sécurisé, sans fuite de données vers le cloud. Voir le README principal pour plus de détails.