Introduction à l'architecture du système QAnswer

Pour installer QAnswer sur site, contactez-nous à

Architecture de l'application

Voici un schéma expliquant l'architecture globale de l'application QAnswer :

qanswer architecture

L'architecture globale de QAnswer se compose de 3 parties :

  • Nginx WAF — responsable du routage externe, du pare-feu applicatif web et de la gestion TLS/SSL.
  • QAnswer Core — la partie fonctionnelle de QAnswer, qui fournit les fonctionnalités nécessaires.
  • QAnswer Monitoring — responsable de la surveillance de l'état de QAnswer.

QAnswer contient les composants logiciels suivants :

  • Traefik — répartiteur de charge pour le routage du trafic interne ;
  • une application web front-end React pour accéder aux APIs et interagir avec elles via une interface utilisateur intuitive ;
  • QAnswer Doc — le site de documentation que vous lisez en ce moment ;
  • QAnswer Python Backend — point d'entrée du backend, responsable de la sécurité, de l'authentification, de l'autorisation, des modèles d'IA et de l'indexation ;
  • QAnswer LLM — la couche de service du grand modèle de langage ;
  • QAnswer Embedder — le modèle d'embedding utilisé pour la recherche sémantique ;
  • un serveur de transcription pour la conversion parole-texte ;
  • Clamav — analyse les fichiers téléversés à la recherche de virus ;
  • un serveur Selenium pour scraper des sites web ;
  • une base de données Postgres qui stocke les informations des utilisateurs.
  • Valkey — magasin clé/valeur pour la mise en cache et les files d'attente ;
  • une instance ElasticSearch ;
Info
Le bundle fournit également une pile de supervision complète (Grafana, Loki, Prometheus, OpenTelemetry et des exporteurs pour chaque service) avec des tableaux de bord prêts à l'emploi pour les services principaux, les dépendances tierces et les ressources système.

Prérequis

Matériel

  • 16 Go de RAM
  • 200 Go de disque
  • Un GPU avec au moins 48 Go de mémoire (nous recommandons le NVIDIA® L40S)

Logiciel

  • une distribution Linux (nous utilisons Ubuntu par défaut)
  • Docker version 20 ou plus récente
  • Docker Compose
  • Le nvidia-container-toolkit installé, pour utiliser des GPU NVIDIA dans un conteneur
  • Une clé de licence, ainsi qu'un nom d'utilisateur et un jeton d'accès (fournis par nous)

(Cela prend en charge 7 à 13 utilisateurs simultanés selon la charge RAG ou Chat. Contactez-nous à info@the-qa-company.com pour vous aider à dimensionner votre infrastructure.)

Démarrage rapide

Une fois votre clé de licence et vos identifiants de registre en main, le déploiement du bundle se fait en quelques étapes :

1. Cloner le dépôt du bundle

git clone -b main https://gitlab.the-qa-company.com/qanswer-app/qanswer-bundle.git
cd qanswer-bundle

2. Renseigner vos identifiants

export QANSWER_KEY=YOUR_KEY
export HUGGINGFACE_TOKEN=YOUR_HF_KEY

YOUR_KEY est votre clé de licence ; YOUR_HF_KEY est le jeton Hugging Face que nous fournissons.

3. Se connecter au registre d'images

docker login -u $QANSWER_REGISTRY_USER -p $QANSWER_REGISTRY_PASSWORD \
  https://registry.gitlab.the-qa-company.com:443/v2/qanswer-app

QANSWER_REGISTRY_USER et QANSWER_REGISTRY_PASSWORD sont les identifiants du registre docker que nous fournissons.

4. Télécharger toutes les images

./init.sh

5. Démarrer QAnswer

./deploy-scripts/up.sh

# or manually:
docker compose up -d

6. Ouvrez votre navigateur à l'adresse http://localhost:4567/

7. Les identifiants par défaut sont nom d'utilisateur : admin / mot de passe : 123456

Avertissement
Ce démarrage rapide utilise des réglages par défaut destinés à l'évaluation. Avant de passer en production, définissez une véritable URL publique et de vrais secrets (mot de passe admin, secret JWT, mot de passe Postgres) et configurez votre serveur de messagerie — voir le README du bundle pour la liste de contrôle complète de mise en production.