📝 Note
pro/chatbot avl/architecture
Architecture — ChatBot AVL
Vue d’ensemble
Plateforme de génération de documentation Confluence assistée par IA. L’utilisateur répond à des questions via chat conversationnel ; n8n orchestre la génération via Ollama et publie sur Confluence.
Composants principaux
| Service | Image/Tech | Port | Rôle |
|---|---|---|---|
| chat-interface | nginx:alpine | 8080 | Serveur web statique + reverse proxy |
| AnythingLLM | mintplexlabs/anythingllm | 3001 | Chat IA (workspaces, embedding docs) |
| templates-api | Node.js 18 Alpine (custom) | 3000 | CRUD JSON templates (HTTP natif) |
| n8n | docker.n8n.io/n8nio/n8n | 5678 | Workflow : collecte → LLM → Confluence |
Flux de données
Browser
│
├── GET /templates → nginx → templates-api:3000
├── POST /webhook/doc-chat → nginx → n8n:5678
│ │
│ ┌─────────┴──────────┐
│ │ n8n Workflow │
│ │ 1. Load template │→ templates-api
│ │ 2. Collect answers │
│ │ 3. Call Ollama │→ Ollama (LLM local)
│ │ 4. Publish │→ Confluence API
│ └─────────────────────┘
│
└── GET /api/anythingllm/* → nginx → anythingllm:3001
Structure des données de session
{
sessionId: 'session-1234567890', // généré côté client
templateId: 'incident',
sessionData: { problem: '...', equipment: '...', ... },
conversation: [{ role: 'user'|'assistant', content: '...' }],
nextField: 'problem' | 'equipment' | ... | 'complete'
}
Sessions stockées localStorage uniquement — pas de persistance serveur.
Templates disponibles
| ID | Espace Confluence | Champs requis |
|---|---|---|
| incident | DOC | problem, equipment, solution, steps |
| procedure | PROCEDURES | procedure_name, objective, steps |
| setup | SETUP | system_name, environment, installation_steps |
| changelog | CHANGELOG | system, date, description, notes, version |
Dépendances externes
- Confluence : Publication via API REST (URL + espace via env vars)
- Ollama : Génération LLM locale (appelé depuis n8n)
- AnythingLLM : Chat IA + embedding documents (PDF, TXT, MD, URLs)
Schémas
ChatBot AVL/
├── incident-chat/
│ ├── chat-interface/ # HTML/CSS/JS vanilla (Nginx)
│ ├── docker-compose-generic.yml
│ └── nginx-generic.conf
├── templates/ # JSONs templates (volume monté)
├── templates-api/ # Node.js HTTP natif (Dockerfile)
└── workflows/ # n8n workflow JSON