Public Access
55 lines
2.4 KiB
Python
55 lines
2.4 KiB
Python
import os
|
|
import requests
|
|
from bs4 import BeautifulSoup
|
|
from modules.logger import log_event
|
|
|
|
EDUCATION_RAG_DIR = "/DATA/AppData/MULTI-IA-AETHAS38/RAG/Education_Nationale"
|
|
|
|
def synchroniser_programmes_officiels():
|
|
"""
|
|
Scrape ou récupère les données textuelles de référence pour alimenter
|
|
automatiquement le RAG Éducation Nationale.
|
|
"""
|
|
os.makedirs(EDUCATION_RAG_DIR, exist_ok=True)
|
|
|
|
# Exemple de source institutionnelle publique ou de structuration de base
|
|
url_reference = "https://www.education.gouv.fr/les-programmes-de-l-ecole-prime-et-du-college-1041"
|
|
|
|
try:
|
|
headers = {"User-Agent": "Aethas38-EducationBot/1.0"}
|
|
response = requests.get(url_reference, headers=headers, timeout=10)
|
|
|
|
if response.status_code == 200:
|
|
soup = BeautifulSoup(response.text, 'html.parser')
|
|
# Extraction propre du contenu textuel des programmes
|
|
contenu_page = ""
|
|
for paragraph in soup.find_all(['p', 'h2', 'h3', 'li']):
|
|
contenu_page += paragraph.get_text() + "\n"
|
|
|
|
if len(contenu_page.strip()) > 100:
|
|
chemin_fichier = os.path.join(EDUCATION_RAG_DIR, "programmes_officiels_socle.txt")
|
|
with open(chemin_fichier, 'w', encoding='utf-8') as f:
|
|
f.write(contenu_page)
|
|
log_event("INFO", "EDUC_RAG", "Synchronisation réussie des programmes officiels.")
|
|
return True
|
|
log_event("WARNING", "EDUC_RAG", "Impossible de joindre la source ou contenu vide.")
|
|
except Exception as e:
|
|
log_event("ERROR", "EDUC_RAG", f"Erreur lors de la synchronisation : {e}")
|
|
|
|
return False
|
|
|
|
def preparer_contexte_pedagogique(niveau: str, matiere: str, objectif: str) -> str:
|
|
"""
|
|
Prépare un prompt contextuel strict pour l'assistant pédagogique
|
|
en s'appuyant sur le RAG Éducation Nationale.
|
|
"""
|
|
from modules.rag_manager import extraire_contexte_rag
|
|
contexte_socle = extraire_contexte_rag("Education_Nationale")
|
|
|
|
prompt_systeme = (
|
|
f"Tu es un assistant pédagogique expert pour un Professeur des Écoles en France. "
|
|
f"Tu dois respecter strictement les programmes officiels de l'Éducation Nationale.\n\n"
|
|
f"Contexte institutionnel et programmes :\n{contexte_socle[:3000]}\n\n"
|
|
f"Mission demandée pour le niveau {niveau} en {matiere} : {objectif}"
|
|
)
|
|
return prompt_systeme |