Aller au contenu

Déployer une plateforme avec Docker

Dans les guides Créer son premier bot avec Tock Studio et Programmer des parcours en Kotlin, vous avez utilisé la plateforme de démonstration. Cela vous a permis de découvrir la construction et la configuration des bots Tock sans avoir à installer la plateforme au préalable.

Dans ce guide, vous allez apprendre à déployer une plateforme complète Tock en quelques minutes, grâce aux exemples d'implémentations Docker / Docker Compose fournies.

Notez qu'il est tout à fait possible de déployer Tock sans utiliser Docker.

Ce que vous allez créer

  • Une plateforme Tock complète en local : Tock Studio, Bot API, etc.

  • Un bot et une configuration minimale pour tester la plateforme

  • (Optionnel) Un programme Kotlin se connectant à la plateforme locale en WebSocket

Pre-requis

  • Environ 20 minutes

  • Pour déployer la plateforme en local, un environnement de développement avec des versions récentes de Docker et Docker Compose installées

Si vous ne souhaitez pas utiliser Docker, pas de problème. Il y a d'autres manières de déployer la base MongoDB et les services Kotlin sur JVM. Vous pouvez toutefois parcourir les Dockerfile et docker-compose.yml à titre d'exemples pour instancier ces services.

  • (Optionnel) Pour le programme en WebSocket, un environnement de développement (ou IDE) supportant Kotlin, par exemple IntelliJ avec des versions récentes du JDK et de Maven

Sans IDE ou sans Maven, pas de problème. Il est tout à fait possible de compiler et exécuter le programme avec d'autres outils.

Déployer une plateforme Tock - sans les sources

Il est possible de récupérer seulement quelques fichiers du dépôt GitHub, sans télécharger toutes les sources Tock. En quelques lignes de commande, la plateforme est opérationnelle.

Il est cependant indispensable d'avoir des versions récentes de Docker et Docker Compose.

Pour démarrer depuis les sources du dépôt Tock Docker, passez plutôt au Paragraphe suivant.

# Get the latest docker-compose from GitHub (including Bot API)
$ curl -o docker-compose.yml https://raw.githubusercontent.com/theopenconversationkit/tock-docker/master/docker-compose-bot.yml
# Get the latest database-init script from GitHub
$ mkdir -p scripts && curl -o scripts/setup.sh https://raw.githubusercontent.com/theopenconversationkit/tock-docker/master/scripts/setup.sh && chmod +x scripts/setup.sh
# Get the latest Tock version/tag from GitHub
$ curl -o .env https://raw.githubusercontent.com/theopenconversationkit/tock-docker/master/.env

# Run the stack
$ docker compose up

Déployer une plateforme Tock - depuis les sources

Ceci est une manière alternative de démarrer Tock, à partir du dépôt Tock Docker.

Il vous faut, en plus de Docker et Docker Compose, soit un client Git pour récupérer les sources (commande git clone) soit avoir déjà copié les sources de GitHub en local.

Pour démarrer sans Git ni les sources du dépôt en local, suivez le paragraphe précédent.

# Get the latest sources from GitHub
$ git clone https://github.com/theopenconversationkit/tock-docker.git && cd tock-docker
# Make the database-init script executable
$ chmod +x scripts/setup.sh

# Run the stack (including Bot API)
$ docker compose -f docker-compose-bot.yml up

Acceder à Tock Studio

Une fois la plateforme prête, les interfaces Tock Studio sont sur le port 80 par défaut :

Après le déploiement de la plateforme, celle-ci s'initialise, et il peut falloir attendre quelques secondes avant que les interfaces Tock Studio soient accessibles.

  • Connectez-vous avec les identifiants admin@app.com / password par défaut

Il est évidemment recommandé de changer ces valeurs à l'installation d'une plateforme destinée à une utilisation pérenne (production, plateforme partagée entre équipes, etc.).

Créer une application, un connecteur et une intention

Comme dans le guide premier bot utilisant la plateforme de démonstration, vous allez créer une application Tock et un connecteur pour commencer à utiliser la plateforme locale. N'hésitez pas à retourner voir les précédents guides pour plus de commentaires.

Au premier accès à la plateforme locale :

  • Choose your language : sélectionnez une langue - vous pourrez en ajouter d'autres par la suite - puis Next

  • Select a first Channel : sélectionnez slack, puis Next

  • Create your Assistant : Create

Notez l'API Key automatiquement générée pour votre application (Settings > Configurations). Elle vous servira si vous essayez le mode WebSocket dans la suite de ce guide (optionnel).

  • Allez dans Stories & Answers > New Story

  • Saisissez une phrase utilisateur par exemple "bonjour"

  • Dans le champs Add new Answer, saisissez une réponse par exemple "quelle belle journée!"

  • Terminez avec Create Story

  • Allez dans Test > Test

  • Dites "bonjour" 🙋, le bot vous répond 🤖

Connecter un parcours en Kotlin (optionnel)

Comme dans le guide programmer des parcours utilisant la plateforme de démonstration, vous allez créer une application Kotlin se connectant en WebSocket à la plateforme Tock locale. N'hésitez pas à retourner voir les précédents guides pour plus de détails.

Le classpath doit inclure tock-bot-api-websocket pour utiliser le mode WebSocket.

  • Créez un fichier Kotlin (par exemple dans src/main/kotlin/StartWebSocket.kt)

  • Editez-le avec le code suivant :

import ai.tock.bot.api.client.newBot
import ai.tock.bot.api.client.newStory
import ai.tock.bot.api.websocket.start

fun main() {
    start( // Do not use #startWithDemo when integrating with a local platform 
        newBot(
            "PUT-YOUR-TOCK-APP-API-KEY-HERE", // Get your app API key in Settings > Configurations in Tock Studio
            newStory("qui-es-tu") { // Réponse pour l'intention 'qui-es-tu'
                send("Je suis un assistant conversationnel construit avec Tock")
                end("Comment puis-je aider ?")
            }
        ),
        "http://localhost:8080" // Local platform URL (default host/port)
    ) 
}
  • Remplacez la clef d'API par celle de votre propre application Tock. Pour cela, dans Tock Studio, allez dans Settings > Configurations et reportez la valeur API Key dans le code.

  • Exécutez la fonction (main) dans votre environnement de développement.

  • Retournez dans Tock dans Test > Test et dites "qui es-tu ?" : le bot ne répond pas encore.

  • Allez dans Language Understanding > Inbox sentences, pour la phrase que vous venez de saisir :

    • Changez l'intention pour New intent

    • Nommez-la "qui-es-tu" comme dans le code (pour que le lien se fasse)

    • Créez l'intention avec Create

    • Terminez la qualification de la phrase avec Validate

  • Retournez dans Test > Test. Dites "qui es-tu ?" : le bot répond !

Felicitations!

Vous venez de déployer votre propre plateforme conversationnelle Tock en local.

Cela peut servir à mieux appréhender l'architecture et vérifier la portabilité de la solution, mais aussi lors de développements, pour les contributeurs Tock ou encore si vous devez travailler sans accès à Internet (en mobilité, sur un réseau restreint, etc.).

Attention, l'implémentation Docker fournie ne suffit pas à garantir résilience et montée en charge de la plateforme quelles que soient les conditions en production. Pour cela, quelques recommandations sont proposées dans la section haute disponibilité du manuel Tock.

Continuer...

Vous venez de terminer les guides de démarrage rapide Tock. À partir de là, vous pouvez :

D'autres pages présentent aussi des études de cas clients, des exemples de code, et comment contacter la communauté Tock.

Chat with Tock
×