Skip to content

Architecture de Tock

Ce chapitre présente l’architecture générale d’une plateforme Tock : composants et dépendances, flux, configuration de proxies, etc.

Architecture fonctionnelle

Deux composants majeurs sont disponibles :

  • le moteur NLU : Natural Language Understanding (voir Tock Studio)
  • le framework conversationnel intégré aux services NLU et à différents connecteurs comme Messenger, Google Assistant ou Slack (voir manuel développeur et connecteurs).

schéma Tock

La plateforme NLU est indépendante de la partie conversationnelle. Il est possible d’utiliser le NLU sans devoir maîtriser la complexité induite par la gestion des conversations. Dans certain cas d’usage importants, comme l’Internet des objets, l’utilisation d’un modèle NLU seule est pertinente.

Architecture technique

Tock est composé de plusieurs composants applicatifs (conteneurs lorsqu’on utilise Docker) et d’une base de donnée MongoDB.

Les descripteurs Docker et Docker Compose fournis (ie. les Dockerfile et docker-compose.yml) décrivent l’architecture de Tock.

Un exemple complet se trouve dans le fichier docker-compose-bot-open-data.yml disponible dans le dépôt tock-docker.

Base de données MongoDB

La base Mongo doit être configurée en replica set, c’est à dire avec au minimum 3 instances déployées. C’est obligatoire car Tock utilise la fonctionnalité des Change Streams qui a comme pré-requis l’installation en replica set.

Il s’agit également d’une bonne pratique afin d’assurer une haute disponibilité de la base de données.

Composants applicatifs

Voici une description rapide des différents composants applicatifs (et images Docker fournies avec Tock) :

Un dernier composant, le bot lui-même, doit être ajouté et rendu accessible aux partenaires et canaux externes auxquels on souhaite s’intégrer.

Bien entendu l’implémentation du bot n’est pas fournie avec Tock (chacun implémente ses fonctionnalités propres pour son besoin) mais un exemple est disponible dans docker-compose-bot-open-data.yml.

Modes de déploiement

  • Le mode plateforme NLU seul (sans partie conversationnelle) :

Schéma NLU

  • Le mode Tock Bot API (recommandé pour la plupart des cas), permettant de développer en Kotlin ou un autre langage à travers l’API conversationnelle de Tock :

BOT API

  • Le mode Tock Bot intégré (historique) permettant de développer en Kotlin uniquement en utilisant toutes les possibilités de Tock mais en accédant à la base MongoDB directement depuis le bot :

Bot TOCK

Voir aussi…