Spaces:
Running
Running
| title: Code Éducation RAG | |
| emoji: 📘 | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: gradio | |
| sdk_version: "4.44.1" | |
| python_version: "3.11" | |
| app_file: app.py | |
| pinned: false | |
| # Code Éducation RAG | |
| **Assistant juridique RAG pour le Code de l’éducation français** | |
| --- | |
| ## 🇫🇷 PARTIE 1 — README (Français) | |
| ### 1. Présentation générale | |
| **Code Éducation RAG** est une application de **Retrieval‑Augmented Generation (RAG)** dédiée au **Code de l’éducation français**. | |
| Application Hugging Face : https://huggingface.co/spaces/FabIndy/code-education-rag | |
| Objectif principal : | |
| **faire gagner du temps aux chefs d’établissement et personnels de direction**, en leur permettant de : | |
| - retrouver rapidement les articles pertinents ; | |
| - consulter le **texte officiel exact** ; | |
| - obtenir un **résumé IA clair et rapide** ; | |
| - poser des **questions juridiques ciblées**. | |
| L’application est déployée sur **Hugging Face Spaces** et utilise **l’API Groq** pour les générations IA (latence très faible). | |
| --- | |
| ### 2. Architecture du projet | |
| ``` | |
| hf-code-education/ | |
| ├── app.py # Interface utilisateur (HF Space) | |
| ├── src/ | |
| │ ├── rag_core.py # Orchestrateur central (routage des modes) | |
| │ ├── list.py # Mode LIST : recherche d’articles | |
| │ ├── fulltext.py # Texte officiel exact | |
| │ ├── synthesis.py # Synthèse extractive contrôlée | |
| │ ├── qa.py # Résumé IA & QA via Groq | |
| │ ├── resources.py # Accès API Groq | |
| │ ├── config.py # Paramètres globaux | |
| │ └── utils.py # Fonctions utilitaires | |
| ├── data/ # Chunks JSONL (1 article = 1 chunk) | |
| ├── db/ # Index FAISS | |
| ├── requirements.txt | |
| └── README.md | |
| ``` | |
| --- | |
| ### 3. Fonctionnement du RAG | |
| Le système repose sur une **séparation stricte des responsabilités**, indispensable en contexte juridique. | |
| #### Mode LIST | |
| - Recherche lexicale + sémantique | |
| - Inspirée de Légifrance (mots‑clés, proximité, centralité) | |
| - **Sortie : liste d’articles pertinents** | |
| - Aucune génération IA | |
| #### Mode TEXTE OFFICIEL | |
| - Chargement du texte exact depuis les chunks | |
| - **Aucune transformation** | |
| - Zéro interprétation | |
| #### Mode RÉSUMÉ IA | |
| Pipeline contrôlé et rapide : | |
| 1. Pré‑traitement par `synthesis.py` (extraction de segments clés) | |
| 2. Envoi des extraits à l’API **Groq** | |
| 3. Génération d’un résumé court et structuré | |
| Mention explicite : | |
| > *Résumé IA : reformulation automatique pouvant contenir des erreurs ou omissions.* | |
| #### Mode QUESTION IA (QA) | |
| - Analyse de la question | |
| - Contexte strictement limité au texte officiel | |
| - Réponse concise et juridiquement prudente | |
| --- | |
| ### 4. Pourquoi Groq ? | |
| - Latence tres faible | |
| - Aucun modèle local à charger | |
| - Scalabilité immédiate | |
| - API gratuite | |
| Les modèles locaux GGUF ont été abandonnés (lenteur, complexité, usage peu réaliste). | |
| --- | |
| ### 5. Estimation d’utilisation quotidienne de l’API Groq | |
| Hypothèse réaliste : | |
| - 100 résumés IA / jour | |
| - 100 questions IA / jour | |
| | Usage | Tokens estimés | | |
| |-----------|---------------------------| | |
| | Résumés | ~12 000 | | |
| | Questions | ~22 000 | | |
| | **Total** | **~34 000 tokens / jour** | | |
| --- | |
| ### 6. Variables d’environnement utilisées | |
| Variables actives : | |
| ``` | |
| GROQ_API_KEY | |
| GROQ_MODEL=llama-3.1-8b-instant | |
| GROQ_MAX_TOKENS_SUMMARY=120 | |
| GROQ_MAX_TOKENS_QA=220 | |
| GROQ_TEMPERATURE=0.1 | |
| ``` | |
| --- | |
| ## 🇬🇧 PART 2 — README (English) | |
| ### 1. Overview | |
| **Code Éducation RAG** is a **Retrieval‑Augmented Generation (RAG)** system dedicated to the **French Education Code**. | |
| Hugging Face : https://huggingface.co/spaces/FabIndy/code-education-rag | |
| It enables: | |
| - fast article retrieval, | |
| - access to official legal texts, | |
| - concise AI summaries, | |
| - focused legal Q&A. | |
| The app is deployed on **Hugging Face Spaces** and powered by the **Groq API**. | |
| --- | |
| ### 2. Architecture | |
| ``` | |
| hf-code-education/ | |
| ├── app.py | |
| ├── src/ | |
| │ ├── rag_core.py | |
| │ ├── list.py | |
| │ ├── fulltext.py | |
| │ ├── synthesis.py | |
| │ ├── qa.py | |
| │ ├── resources.py | |
| │ ├── config.py | |
| │ └── utils.py | |
| ├── data/ | |
| ├── db/ | |
| └── README.md | |
| ``` | |
| --- | |
| ### 3. RAG Modes | |
| **LIST** – lexical + semantic retrieval, no AI | |
| **OFFICIAL TEXT** – exact legal content | |
| **AI SUMMARY** – controlled extractive context + Groq | |
| **AI QA** – cautious interpretation based on official text only | |
| --- | |
| ### 4. Why Groq? | |
| - Ultra‑low latency | |
| - No local model loading | |
| - High reliability | |
| - Free plan | |
| --- | |
| ### 5. Estimated Daily Groq Usage | |
| | Usage | Tokens | | |
| |-----------|----------------| | |
| | Summaries | ~12k | | |
| | Q&A | ~22k | | |
| | **Total** | **~34k / day** | | |
| --- | |
| ### 6. Environment Variables | |
| ``` | |
| GROQ_API_KEY | |
| GROQ_MODEL | |
| GROQ_MAX_TOKENS_SUMMARY | |
| GROQ_MAX_TOKENS_QA | |
| GROQ_TEMPERATURE | |
| ``` | |
| --- | |
| ## Conclusion | |
| This project implements a **pragmatic legal RAG system**, designed for **real professional use**, prioritizing: | |
| - reliability, | |
| - explainability, | |
| - speed, | |
| - technical sobriety. | |