Les choix techniques

Avant d'entrer dans les guides, il est utile de comprendre sur quelle base technique ils reposent. Web-Soul privilégie une approche simple : utiliser des outils libres ou largement accessibles, les faire fonctionner localement lorsque c'est pertinent, et les assembler en fonction du besoin.

Une IA locale, spécialisée

L'objectif n'est pas de construire une nouvelle version de ChatGPT. L'idée est différente : partir d'un modèle d'intelligence artificielle existant et lui donner accès à une base de connaissances précise, construite pour un usage déterminé.

Une association, un artisan, un indépendant ou une petite structure peut ainsi disposer d'un outil spécialisé dans son propre domaine, avec ses documents, ses procédures, ses références et son vocabulaire.

Cette approche permet également de garder la maîtrise de l'infrastructure et des données utilisées par le système.

Où faire fonctionner cette IA ?

Deux possibilités sont principalement envisagées :

  • un serveur local, installé chez l'utilisateur ou dans ses locaux ;
  • un VPS, serveur virtuel loué auprès d'un hébergeur et accessible à distance.

Le choix dépend principalement des ressources disponibles, du niveau de confidentialité recherché, du nombre d'utilisateurs et de la puissance nécessaire. Il n'existe donc pas une configuration unique à reproduire systématiquement.

Une architecture modulaire

Plutôt que d'installer une application unique qui ferait tout, Web-Soul utilise plusieurs composants spécialisés. Chaque outil possède une fonction précise et peut être remplacé ou faire évoluer l'ensemble sans devoir reconstruire toute l'installation.

Les principaux composants

  • Docker : exécute les différents services dans des conteneurs isolés.
  • Traefik : gère l'accès aux services et leur exposition en HTTPS.
  • Ollama : permet d'exécuter localement les modèles d'IA.
  • AnythingLLM : fournit une interface pour travailler avec les modèles et leurs bases de connaissances.
  • Qdrant : stocke et recherche les représentations vectorielles utilisées pour retrouver les informations pertinentes.
  • n8n : automatise les échanges et les traitements entre les différents services.

D'autres outils peuvent venir compléter cette base lorsque le besoin le justifie. Ils ne sont pas ajoutés simplement parce qu'ils existent : chaque composant doit avoir une fonction identifiable dans l'architecture.

Pourquoi cette organisation ?

Le premier objectif est la reproductibilité. Un système correctement documenté doit pouvoir être installé ailleurs sans repartir de zéro.
Le deuxième est la modularité. Les services sont séparés afin de pouvoir les mettre à jour, les remplacer ou les adapter indépendamment.
Le troisième est la maîtrise. Lorsque les ressources le permettent, faire fonctionner les modèles et les données localement réduit la dépendance à des services externes et permet de mieux contrôler l'environnement technique.

Cette architecture reste volontairement progressive. On commence avec une configuration raisonnable, puis on augmente les ressources ou les composants uniquement lorsque le besoin apparaît.

Les guides

Les choix précédents sont expliqués et mis en pratique dans plusieurs séries de guides. Chaque guide part d'un élément précis de l'architecture et avance étape par étape, sans supposer que le lecteur dispose déjà d'une infrastructure complète.

Les guides sont construits progressivement. Certains composants sont donc déjà documentés, tandis que d'autres viendront compléter l'architecture au fur et à mesure.

Une construction progressive

L'ensemble n'a pas vocation à devenir une usine à gaz. L'objectif est au contraire de pouvoir commencer petit, comprendre chaque élément, puis ajouter uniquement ce qui apporte une réelle utilité.

C'est aussi le principe des guides : comprendre avant d'installer, installer avant d'automatiser, et automatiser seulement lorsque cela apporte quelque chose.

0:00
0:00
Défiler vers le haut