SAAIA est un assistant IA RAG 100% on-prem pour environnements industriels/entreprise.
État actuel : le chemin standard génère la réponse avec le petit LLM local du poste. L'amendement A755 ajoute une capacité avancée optionnelle : le client crée un handoff explicite et le backend pilote alors un grand LLM configuré, revalide les preuves et publie seulement le résultat sourcé validé. Cette capacité reste
TESTE_NON_APPROUVEet désactivée par défaut.
Le développement dispose aussi de deux modes externes explicitement bornés :
OpenAiDev pour la baseline GPT-5.6 Terra et RunPodBench pour qualifier un
llama-server distant. Ils sont désactivés par défaut et servent à préparer la
cible avancée finale : un grand modèle hébergé sur l'infrastructure on-prem du
client, sans dépendance OpenAI ou RunPod. Voir
documents/agent/llm-provider-architecture-v1.md.
backend/ : API .NET (RAG, ingestion, chat-store, admin, health/ready, audit, licensing)infra/ : Docker Compose prod + scripts d'exploitation (install/backup/restore/diag/smoke)client/ : app WinUI (UI chat + orchestration + gestion LLM local + support bundle)contracts/ : DTO/contrats partagéstools/ : outils (signature de config, etc.)# depuis la racine du repo
powershell -NoProfile -ExecutionPolicy Bypass -File .\infra\scripts\prod\install.ps1
# vérifier la readiness
curl http://localhost:5122/ready
$body = @'
{"query":"accord transfert code source","topK":5,"minScore":0.0,"mode":"default"}
'@
$body | curl.exe -s -X POST "http://localhost:5122/rag/search" `
-H "Content-Type: application/json" `
-H "X-Api-Key: <YOUR_API_KEY>" `
--data-binary "@-"
powershell -NoProfile -ExecutionPolicy Bypass -File .\client\scripts\run-client-x64.ps1
Les logs client sont dans : %LOCALAPPDATA%\SAAIA\logs\.
Optionnel : déposer un fichier de provisioning (ex : URL serveur, options UI) sous :
C:\ProgramData\SAAIA\provisioning.jsonLa clé seat (poste) est idéalement attribuée par poste (licensing), et stockée via DPAPI côté client.
Scripts principaux :
infra/scripts/prod/install.ps1infra/scripts/prod/update.ps1infra/scripts/prod/backup.ps1infra/scripts/prod/restore.ps1infra/scripts/prod/diag.ps1infra/scripts/prod/smoke.ps1Runbooks : infra/runbooks/.
documents/ (dynamiques).SAAIA est un assistant IA RAG 100% on-prem pour environnements industriels/entreprise.
État actuel : le chemin standard génère la réponse avec le petit LLM local du poste. L'amendement A755 ajoute une capacité avancée optionnelle : le client crée un handoff explicite et le backend pilote alors un grand LLM configuré, revalide les preuves et publie seulement le résultat sourcé validé. Cette capacité reste
TESTE_NON_APPROUVEet désactivée par défaut.
Le développement dispose aussi de deux modes externes explicitement bornés :
OpenAiDev pour la baseline GPT-5.6 Terra et RunPodBench pour qualifier un
llama-server distant. Ils sont désactivés par défaut et servent à préparer la
cible avancée finale : un grand modèle hébergé sur l'infrastructure on-prem du
client, sans dépendance OpenAI ou RunPod. Voir
documents/agent/llm-provider-architecture-v1.md.
backend/ : API .NET (RAG, ingestion, chat-store, admin, health/ready, audit, licensing)infra/ : Docker Compose prod + scripts d'exploitation (install/backup/restore/diag/smoke)client/ : app WinUI (UI chat + orchestration + gestion LLM local + support bundle)contracts/ : DTO/contrats partagéstools/ : outils (signature de config, etc.)# depuis la racine du repo
powershell -NoProfile -ExecutionPolicy Bypass -File .\infra\scripts\prod\install.ps1
# vérifier la readiness
curl http://localhost:5122/ready
$body = @'
{"query":"accord transfert code source","topK":5,"minScore":0.0,"mode":"default"}
'@
$body | curl.exe -s -X POST "http://localhost:5122/rag/search" `
-H "Content-Type: application/json" `
-H "X-Api-Key: <YOUR_API_KEY>" `
--data-binary "@-"
powershell -NoProfile -ExecutionPolicy Bypass -File .\client\scripts\run-client-x64.ps1
Les logs client sont dans : %LOCALAPPDATA%\SAAIA\logs\.
Optionnel : déposer un fichier de provisioning (ex : URL serveur, options UI) sous :
C:\ProgramData\SAAIA\provisioning.jsonLa clé seat (poste) est idéalement attribuée par poste (licensing), et stockée via DPAPI côté client.
Scripts principaux :
infra/scripts/prod/install.ps1infra/scripts/prod/update.ps1infra/scripts/prod/backup.ps1infra/scripts/prod/restore.ps1infra/scripts/prod/diag.ps1infra/scripts/prod/smoke.ps1Runbooks : infra/runbooks/.
documents/ (dynamiques).