Configuration
La plupart de la configuration est effectuée à l'aide de fichiers de format de données JSON. La configuration peut également être définie à l'aide de variables d'environnement.
Configuration globale de Botpress
Il s'agit du fichier principal utilisé pour configurer le serveur Botpress. Il sera créé automatiquement lorsqu'il manquera. Les valeurs par défaut devraient être bonnes lors du lancement de Botpress.
Configuration du serveur HTTP
Par défaut, le projet Botpress démarrera un serveur HTTP sur localhost, en écoutant le port 3000. Si le port configuré est déjà utilisé, il choisira le prochain port disponible (3001, 3002,...). Vous pouvez les modifier se paramètre en éditant httpServer.host et httpServer.port.
Exposer votre robot sur Internet
Lorsque vous êtes prêt à exposer votre robot en externe, vous devrez modifier certains paramètres du serveur. Le serveur ne prend pas en charge les connexions HTTPS, vous devrez donc configurer un proxy inverse devant lui (par exemple : NGINX). Cette situation signifie que votre serveur écoutera toujours les connexions sur le port 3000, mais votre proxy inverse répondra aux requêtes sur le port 80. C'est également le proxy inverse gérant les connexions sécurisées si vous souhaitez accéder à votre bot en utilisant https. À ce stade, Botpress ne sait pas comment accéder au robot à partir du Web. Vous devrez modifier la configuration de httpServer.externalUrl. Définissez la variable de configuration sur le nom d'hôte complet, par exemple https://bot.gladir.com.
Changer l'URL de base de votre robot
Par défaut, Botpress est accessible à la racine de votre domaine (exemple : https://robot.gladir.com/). Il est possible de modifier cela afin de pouvoir le diffuser à partir d'une URL différente, par exemple https://robot.gladir.com/botpress/votrechemin/. Tout ce que vous avez à faire est de définir l'URL externe, soit dans la variable d'environnement (EXTERNAL_URL), soit via le fichier botpress.config.json. Le chemin sera automatiquement extrait de cette URL et sera utilisé comme chemin racine.
Configuration des journals de bord
Les journals de bord sont très utiles pour déboguer et comprendre ce qui se passe lorsque le bot ne se comporte pas comme prévu. Lorsque vous démarrez Botpress à partir du binaire (ou en utilisant l'image Docker), le bot est en mode débogage. Cela signifie que de nombreuses informations seront affichées dans la console pour comprendre ce qui se passe. Il existe 5 niveaux différents de journal de bord :
Niveau | Description |
---|---|
Debug | Affiche des informations très détaillées sur les opérations du robot. |
Info | Donne des informations générales ou utile. |
Warn | Message d'attention, signifie que quelque chose ne s'est pas déroulé comme prévu, mais que le robot a pu récupérer. |
Error | Une erreur doit être corrigée. |
Critical | Quelque chose empêche le robot ou le serveur de se comporter correctement. Dans ce niveau, le robot peut ne pas fonctionner du tout. |
Modifier le niveau de détails du journal de bord
Il existe trois configurations différentes de niveaux de détails pour le journal de bord :
Niveau de détails | Nom | Description |
---|---|---|
0 | Production | Production : La console affichera les informations, avertissements, d'erreurs et journal de bord critiques. Dans la console de journal de bord du studio, les développeurs de robots verront les journals de bord de débogage de leur bot. Aucune trace de pile ne sera affichée dans la console. |
1 | Developer | Développeur : Même chose que Production, mais la console inclura également des traces de pile. |
2 | Debug | Débogage : Comprend tout de Production et eu Developer. Les journals de bord de débogage seront affichés dans la console principale. |
Les traces de pile sont des informations supplémentaires utilisées par les développeurs pour identifier la source d'une erreur. Ils sont utiles lors du développement, mais en production, ils peuvent masquer des messages de journal importants.
Par défaut, Botpress utilise la configuration Debug. Lorsque vous exécutez Botpress en production BP_PRODUCTION=true ou avec le mode d'unité d'allocation CLUSTER_ENABLED=true, les journals de bord seront configurés comme Production. Vous pouvez configurer le niveau de détails en utilisant une variable d'environnement (VERBOSITY_LEVEL=0 pour la production) ou en utilisant la ligne de commande (exemple : -vv pour Debug).
Comment enregistrer les journals de bord sur le système de fichiers
Il est également possible d'envoyer la sortie du journal de bord vers un fichier dans un dossier spécifique. Pour y arriver, vous devez modifiez votre fichier botpress.config.json pour qu'il corresponde à ceci :
- {
- /*... */
- "logs": {
- /* ... */
- "fileOutput": {
- "enabled": true,
- "folder": "./", // Remplacez ceci par n'importe quel dossier, par défaut il sera dans le même dossier que l'exécutable
- "maxFileSize": 10000 // Par défaut, la taille maximale du fichier sera maintenue sous 10 Mo
- }
- },
- }
Journal de bord avancée
Dans un environnement de production, vous souhaiterez peut-être conserver des journals de bords supplémentaires tels que la piste d'audit complète. Vous pouvez activer des journals de bord plus granulaires en utilisant la variable d'environnement DEBUG et en enregistrant ces journals de b ord supplémentaires dans un fichier séparé comme ceci :
# Système d'exploitation Linux et Mac OS X # Ajouter la piste d'audit au fichier journal DEBUG=bp:audit:* ./bp -p 2>> ./botpress.log |
Activer ou désactiver les modules
Lorsque vous démarrez Botpress pour la première fois, les modules les plus populaires inclus avec le binaire seront ajoutés à votre fichier botpress.config.json. Si vous souhaitez désactiver ou activer des modules, vous pouvez le faire dans la page d'administration dorsale ou en modifiant la propriété modules dans botpress.config.json.
Si vous choisissez ce dernier, notez que la chaîne de caractères MODULE_ROOT est une chaîne de caractères spéciale étant remplacée lors de la lecture de votre fichier de configuration. Il représente l'emplacement du dossier modules sur votre disque dur; vous ne devriez pas avoir à le changer.
- {
- /*...*/"modules": [
- {// Lorsque vous ajoutez de nouveaux modules, vous devez définir leur emplacement et s'ils sont activés ou non.
- "location": "MODULES_ROOT/analytics",
- "enabled": true // Vous pouvez changer ceci en false pour désactiver le module.
- },
- {
- "location": "MODULES_ROOT/basic-skills",
- "enabled": true
- }
- }
Configuration individuelle du robot
Chaque robot que vous créez aura son propre fichier de configuration. Il se trouve dans data/bots/BOT_ID/bot.config.json. La plupart des options disponibles peuvent être modifiées en cliquant sur le lien Config à côté du nom du robot dans le panneau d'administration, ou en accédant au panneau de configuration depuis le bot studio.
Configuration du module
Lorsque vous activez un module sur Botpress, il est disponible dans le monde entier, ce qui signifie que vous ne pouvez pas les désactiver ou les activer pour des robots spécifiques. Cependant, vous pouvez configurer chaque robot différemment. Chaque module a une configuration différente, ainsi, lorsque vous exécutez un module pour la première fois, la configuration par défaut sera créée dans data/global/config/MODULE_NAME.json. Si vous avez besoin d'une configuration spéciale pour votre robot, à partir de l'éditeur de code, vous pouvez cliquer avec le bouton droit sur n'importe quelle configuration globale, puis Duplicate to current bot. Vous pouvez également créer manuellement un dossier de configuration dans le dossier du robot, y copier le fichier de configuration : data/bots/BOT_ID/config/MODULE_NAME.json.
Variables d'environnement
La plupart de ces variables peuvent être définies dans le fichier de configuration data/global/botpress.config.json. La configuration de l'infrastructure (comme la base de données, le mode d'unité d'allocation,...) n'est pas disponible dans le fichier de configuration, car elle est requise avant le chargement de la configuration. Le projet Botpress prend en charge les fichiers .env, vous n'avez donc pas à les définir chaque fois que vous démarrez l'application. Enregistrez le fichier dans le même dossier que l'exécutable.
Commun
Variable d'environnement | Description | Par défaut |
---|---|---|
PORT | Cette variable d'environnement permet de définit le port que Botpress écoutera. | 3000 |
BP_HOST | Cette variable d'environnement permet d'indiquer l'hôte pour vérifier les connexions entrantes. | localhost |
EXTERNAL_URL | Cette variable d'environnement permet d'indiquer s'il s'agit de l'URL externe que les utilisateurs saisissent dans la barre d'adresse pour parler avec le robot. | http://HOST:PORT |
DATABASE_URL | Cette variable d'environnement permet d'indiquer la chaîne de caractères de connexion complète pour se connecter à la base de données. Pour postgres, commencez par «postgres://» | - |
BP_PRODUCTION | Cette variable d'environnement permet de définir Botpress en mode production. Cela a le même effet que de le démarrer avec -p. | false |
BPFS_STORAGE | Cette variable d'environnement permet d'indiquer la destination d'entreposage utilisée par BPFS pour lire et écrire des fichiers (globaux et robots). | disk |
PRO_ENABLED | Cette variable d'environnement permet d'activer la version pro de Botpress, la clef de licence sera requise. | false |
BP_LICENSE_KEY | Cette variable d'environnement permet d'indiquer la clef de licence (peut également être spécifiée dans botpress.config.json). | - |
CLUSTER_ENABLED | Cette variable d'environnement permet d'activer la prise en charge de plusieurs noeuds à l'aide de Redis. | false |
REDIS_URL | Cette variable d'environnement permet d'indiquer la chaîne de caractères de connexion pour vous connecter à votre instance Redis. | - |
AUTO_MIGRATE | Cette variable d'environnement permet d'indiquer les bots à migré automatiquement vers la version Botpress en cours d'exécution. | - |
DEBUG | Cette variable d'environnement permet d'indiquer les espaces de noms à déboguage. | - |
Exécution et modules
Variable d'environnement | Description | Par défaut |
---|---|---|
VERBOSITY_LEVEL | Cette variable d'environnement permet d'indiquer à Botpress d'être plus détaillés lors du traitement des demandes. Cette variable d'environnement a les mêmes effets que le paramètre -v. | |
BP_DECISION_MIN_CONFIENCE | Cette variable d'environnement permet de définir le seuil minimum requis pour que le moteur de décision Decision Engine élise une suggestion. | 0.3 |
FAST_TEXT_VERBOSITY | Cette variable d'environnement permet de définir le niveau de détails que FastText utilisera lors de l'entraînement des modèles. | 0 |
FAST_TEXT_CLEANUP_MS | Cette variable d'environnement permet d'indiquer que le modèle sera conservé en mémoire jusqu'à ce qu'il ne reçoive aucun message à traiter pendant cette durée. | 60000 |
REVERSE_PROXY | Cette variable d'environnement permet d'indiquer que lorsqu'il est activé, il utilise "x-forwarded-for" pour récupérer l'adresse IP de l'utilisateur au lieu de remoteAddress. | false |
Il est également possible d'utiliser des variables d'environnement pour remplacer la configuration du module. Le modèle est BP_MODULE_%MODULE_NAME%_%OPTION_PATH%, le tout en majuscules. Par exemple, pour définir l'option languageSources du module nlu, vous utiliseriez BP_MODULE_NLU_LANGUAGESOURCES. Vous pouvez lister les variables d'environnement disponibles pour chaque module en activant le drapeau «DEBUG=bp:configuration:modules:*».
Sécurité
Ces variables peuvent être utilisées pour désactiver certaines fonctionnalités sensibles destinées aux super administrateurs.
Variable d'environnement | Description | Par défaut |
---|---|---|
BP_CODE_EDITOR_DISABLE_ADVANCED | Cette variable d'environnement permet d'indiquer que l'éditeur avancé ne dispose pas de certaines garanties et n'est destiné qu'aux utilisateurs expérimentés. Il peut être complètement désactivé à l'aide de cette variable d'environnement. | false |
BP_CODE_EDITOR_DISABLE_UPLOAD | Cette variable d'environnement permet d'empêcher les utilisateurs de téléverser des fichiers lors de l'utilisation de l'éditeur avancé. | false |
BP_DISABLE_SERVER_CONFIG | Cette variable d'environnement permet d'empêcher les super-administrateurs d'accéder à la page «Production Checklist» du panneau d'administration, car elle peut contenir des informations sensibles. | false |