Le Web Service IngestWSG

, par Bertrand Degoy

Ce Web Service est une API REST + flux SSE, conçue pour orchestrer les traitements liés aux thèmes de données dans une application RAG. Il permet :
 des actions serveur sur les thèmes (ingestion, suppression…),
 de diffuser des logs en direct vers le dashboard,
 de superviser l’état du verrouillage,
 de publier des métadonnées utiles à l’interface.

Le service est utilisé par le Rag Manager et la commande IngestCmd.

Routes exposées :

Route Méthode Rôle principal
/api/ GET Message d’accueil, diagnostic minimal
/api/post POST Exécute une action donnée (ingest, delete, etc.) sur un thème
/api/status GET Indique si un thème est actuellement verrouillé
/api/stream GET Flux SSE pour push de logs ou messages vers le client
/api/version GET Renvoie la version logicielle du backend
/api/themes GET Liste tous les thèmes disponibles (sous-répertoires de /data)

Description des routes :

/api/ — Ping de service
 Méthode : GET
 Usage : Vérifier que l’API est en ligne
 Réponse : Hi sailor, new in computers ?

/api/post — Exécuter une action serveur
 Méthode : POST
 Body (form-data) :
- action : une action parmi ingest, delete, persist, create_index, re_index
- theme : nom d’un thème valide
 Traitement :
- Vérifie que le thème existe
- Vérifie que l’action est autorisée
- Lance les traitements correspondants (myIngestion)
- Active le verrou pendant l’opération
- Trace les étapes dans la console (dashboard)
 Erreurs :
-raise CustomWarning si paramètre manquant ou thème inconnu
- Traitement des exceptions internes

/api/status — État de verrouillage du thème
 Méthode : GET
 Paramètre : theme
 Réponse JSON :

"theme" : "nom_du_theme",
"locked" : true | false

 Usage : permet de désactiver dynamiquement les boutons côté interface si verrou actif

/api/stream — Flux SSE de logs
 Méthode : GET
 Type : Server-Sent Events
 Réponse :
- Format : data : \n\n
- Si vide : data : \n\n
- Reconnexion recommandée : retry : 5000

 Usage : connecte le dashboard à ce flux pour afficher les logs en direct (via EventSource)

/api/version — Version du backend
 Méthode : GET
 Réponse : version logicielle actuelle (ex : 1.3.7)

/api/themes — Liste des thèmes disponibles
 Méthode : GET
 Réponse JSON :
["alpha", "beta", "gamma"]
- Source : sous-répertoires de /data/

Usage côté client :
 Requête Ajax vers /api/status pour activer/désactiver les boutons
 EventSource("/api/stream") pour recevoir les logs
 Envoi de formulaire vers /api/post pour exécuter une action serveur

Accès réservé : connectez vous pour en savoir plus.