Spaces:
Paused
Paused
| title: Kibali AI | |
| emoji: 🧠 | |
| colorFrom: green | |
| colorTo: blue | |
| sdk: docker | |
| sdk_version: "1.0.0" | |
| app_file: app.py | |
| pinned: false | |
| # 🇬🇦 Kibali AI — Intelligence Artificielle Gabonaise Souveraine | |
| Assistant IA expert du Gabon, avec contexte géographique, RAG sur documents PDF, mémoire conversationnelle adaptative et recherche web en temps réel. | |
| Modèle : `BelikanM/kibali-final-merged` (7B quantisé 4-bit) chargé sur GPU CUDA. | |
| ## 🚀 Fonctionnalités | |
| - Réponses naturelles en français, toujours factuelles et chaleureuses | |
| - Contexte géolocalisé (Libreville par défaut, configurable) | |
| - Upload et interrogation de documents PDF (RAG vectoriel avec FAISS) | |
| - Mémoire conversationnelle persistante et adaptative | |
| - Recherche web intégrée (Tavily) | |
| - API FastAPI complète avec streaming de génération | |
| ## 🔗 Endpoints API | |
| - `POST /chat` → conversation principale | |
| - `GET /status` → état du système (chunks, mémoire, GPU, etc.) | |
| - `POST /upload` → import de PDFs | |
| - `POST /clear-memory` → réinitialisation mémoire | |
| - `/docs` → documentation Swagger interactive | |
| - `/static` → fichiers statiques (logo, etc.) | |
| ## 🛠️ Stack technique | |
| - FastAPI + Uvicorn | |
| - Transformers + BitsAndBytes (quantisation 4-bit) | |
| - Sentence-Transformers + FAISS (embedding & RAG) | |
| - Tavily pour la recherche web | |
| - Docker CUDA 12.4 (GPU accéléré) | |
| ## 🔐 Secrets requis | |
| Ajouter dans **Settings → Secrets** du Space : | |
| - `TAVILY_API_KEY` → votre clé Tavily (format `tvly-...`) | |
| ## 📂 Structure du projet | |
| - `app.py` → API FastAPI principale | |
| - `tools/` → outils personnalisés (web, raisonnement, géo) | |
| - `static/` → assets statiques | |
| - `Dockerfile` → build CUDA optimisé | |
| - `requirements.txt` → dépendances Python | |
| ## 🌍 Utilisation | |
| L’API est prête à être consommée par n’importe quel frontend (React, Streamlit, Gradio, mobile, etc.). | |
| ### Exemple de requête `/chat` | |
| ```json | |
| { | |
| "messages": [{"role": "user", "content": "Bonjour Kibali, quel est le climat à Libreville aujourd'hui ?"}], | |
| "latitude": 0.4061, | |
| "longitude": 9.4673, | |
| "city": "Libreville", | |
| "thinking_mode": true | |
| } | |