📝 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

ServiceImage/TechPortRôle
chat-interfacenginx:alpine8080Serveur web statique + reverse proxy
AnythingLLMmintplexlabs/anythingllm3001Chat IA (workspaces, embedding docs)
templates-apiNode.js 18 Alpine (custom)3000CRUD JSON templates (HTTP natif)
n8ndocker.n8n.io/n8nio/n8n5678Workflow : 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

IDEspace ConfluenceChamps requis
incidentDOCproblem, equipment, solution, steps
procedurePROCEDURESprocedure_name, objective, steps
setupSETUPsystem_name, environment, installation_steps
changelogCHANGELOGsystem, 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