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.