Import/Export du bot

1. Objectif

Il est possible d'exporter puis d'importer - c'est-à-dire dupliquer ou cloner - un bot avec les API du BMS. Généralement, cette opération est effectuée en vue de dupliquer une instance de production vers une instance de recette ou basculer d'un serveur SaaS vers un serveur OnPremise.

2. Mode opératoire

La procédure se déroule en 4 temps (hors étape facultative) :

  • Lancer un export du bot

  • Attendre la fin de l'export du bot / Vérification du statut de l'opération

  • [Facultatif] Télécharger l'export du bot

  • Lancer l'import du bot

  • Attendre la fin de l'import du bot / Vérification du statut de l'import

2.1 Prérequis

Afin de pouvoir réaliser l'ensemble des étapes, il sera nécessaire de disposer :

  • De l'UUID du bot à exporter - bot source

  • De l'UUID du bot cible

  • Du token sur le serveur du bot à exporter (cf. Authentification "Basic HTTP")

  • Du token sur le serveur du bot cible (cf. Authentification "Basic HTTP") et de connaître les pages d'appel aux API de dydu.

Ces pages sont accessibles via l'adresse suivante : https://[server]/servlet/api/doc3/index.html

Par exemple, pour le serveur SaaS earth, il s'agit de : https://app1.earth.doyoudreamup.com/servlet/api/doc3/index.html. Chaque API est ensuite accessible dans sa catégorie.

2.2 Export du bot

L'export du bot s'effectue grâce à l'API Export bot data, disponible dans la catégorie Transfer Bot data.

Remplissez les champs nécessaires puis lancez l'export :

  • botUUID : UUID du bot à exporter (ex: "52345ac9-1804-4898-96df-5ce03d800e50")

  • includeGalery : true (Sauf exception si vous ne souhaitez pas exporter la galerie)

  • Authorization : token d'autorisation (ex : "Basic bG9naW46bW90ZGVwYXNzZQ==")

  • DialogsPassword : mot de passe permettant de décoder les dialogues (Remplir uniquement si vous avez activé l'option "Encrypter les dialogues" dans le BMS, sinon laissez vide). Puis cliquez sur Execute

2.2.1 Succès

Si tout va bien, vous devriez avoir un code de retour 202 et aucun message de retour.

2.2.2 Erreurs

Si vous avez une erreur 403, avec un message de type :

"error": "Missing or invalid parameters [authentication]"

Pensez à vérifier si votre couple login / mot de passe est correct et si vous n'avez pas oublié le "Basic " avant votre token encodé.

2.3 Attendre la fin de l'export / Vérification du statut de l'opération

L'export du bot s'effectue grâce à l'API Get export bot data status, disponible dans la catégorie Transfer Bot data.

Remplissez les champs nécessaires puis lancez l'opération :

  • botUUID : UUID du bot à exporter (ex: "52345ac9-1804-4898-96df-5ce03d800e50")

  • Authorization : token d'autorisation (ex : "Basic bG9naW46bW90ZGVwYXNzZQ==")

2.3.1 Succès

Si tout se passe bien, vous devriez avoir un code retour 200 et un message de retour confirmant la bonne opération. Dans le message de retour, il sera indiqué "exportStatus" : "DONE".

Si l'export est long - dans le cadre de bases de connaissances importantes ou dialogues nombreux - le message de retour comportera "exportStatus":"PROCESSING". Dans ce cas, il faudra vérifier le statut ultérieurement (après 5-10 minutes) pour voir si l'export est terminé.

2.3.2 Erreurs

En cas d'erreur, vous aurez tout de même un code retour 200. Dans le message de retour, il sera indiqué "exportStatus":"ERROR".

La ou les raisons de ces erreurs sont détaillées dans le message. Une des raisons est le problème de synchronisation des configuration des chatbox. Vous verrez alors un message de type "configurationsStatuses":{"5588419e-2fc7-4266-97aa-bd0982d2593c":"TO_FIX". Cela explique que la chatbox ayant l'ID 5588419e-2fc7-4266-97aa-bd0982d2593c doit être fixée avant l'export.

2.4 Télécharger l'export du bot

Cette étape est facultative et non recommandée car elle ajoute de la complexité dans le processus.

Si vous souhaitez télécharger les données de votre bot, il faut utiliser l'API Get exported bot data, disponible dans la catégorie Transfer Bot data.

Remplissez les champs nécessaires puis lancez l'opération :

  • botUUID : UUID du bot à exporter (ex: "52345ac9-1804-4898-96df-5ce03d800e50")

  • Authorization : token d'autorisation (ex : "Basic bG9naW46bW90ZGVwYXNzZQ==")

Succès Si tout se passe bien, vous devriez avoir un code retour 200 et un lien qui s'affiche vous permettant de télécharger le fichier.

2.5 Import du bot

L'import du bot s'effectue grâce à l'API import bot data from url, disponible dans la catégorie Transfer Bot data.

Cette API permet d'importer un zip depuis une URL, que ce soit l'URL d'export de bots ou une URL classique type https://www.monsite.com/exports/monbot.zip.

Remplissez les champs nécessaires puis lancez l'export :

  • botUUID : UUID du bot cible (ex : "c3e2fc66-6139-11eb-ae93-0242ac130002")

  • Authorization : token d'autorisation du bot cible (ex: "Basic bm91dmVhdWxvZ2luOm5vdXZlYXVtbW90ZGVwYXNzZQ==")

  • Url-Authorization : token d'autorisation du bot source (ex : "Basic bG9naW46bW90ZGVwYXNzZQ==")

  • body : Url du zip (ex: "https://www.monsite.com/exports/monbot.zip") ou de l'API d'export (ex : "https://app1.earth.doyoudreamup.com/servlet/api/bot/exported/c3e2fc66-6139-11eb-ae93-0242ac130002")

Deux notables ici :

Il n'est possible d'importer une configuration que sur un bot existant. Si vous n'avez pas de bot, il est nécessaire d'en créer un auparavant. Si vous importez sur un bot existant, les données existantes ne seront pas supprimées. Le champ Url-Authorization n'est utile que si vous récupérez l'export depuis l'API d'export du BMS.

Succès Si tout se passe bien, vous devriez avoir un code retour 202 et aucun message de retour.

2.6 Attendre la fin de l'import / Vérification du statut de l'opération

L'import du bot s'effectue grâce à l'API Get import bot data status, disponible dans la catégorie Transfer Bot data.

Remplissez les champs nécessaires puis lancez l'opération :

  • botUUID : UUID du bot cible (ex : "c3e2fc66-6139-11eb-ae93-0242ac130002")

  • Authorization : token d'autorisation du bot cible (ex: "Basic bm91dmVhdWxvZ2luOm5vdXZlYXVtbW90ZGVwYXNzZQ==")

2.6.1 Succès

Si tout se passe bien, vous devriez avoir un code retour 200 et un message de retour confirmant la bonne opération. Dans le message de retour, il sera indiqué "importStatus":"DONE".

Ce message de retour - au format JSON - contiendra également le détails de l'import :

  • startDate et endDate : respectivement la date de début de l'import et la date de fin de l'import

  • importedKnowledges : Retour sur l'import des connaissances

  • importedDialogs : Retour sur l'import des dialogues

  • importedUsers : Retour sur l'import des utilisateurs

Si l'export est long - dans le cadre de bases de connaissances importantes ou dialogues nombreux, le message de retour comportera "importStatus":"PROCESSING". Dans ce cas, il faudra vérifier le statut ultérieurement (après 5-10 minutes) pour voir si l'export est terminé.

2.6.2 Erreurs

En cas d'erreur, vous aurez tout de même un code retour 200. Dans le message de retour, il sera indiqué "importStatus":"ERROR".

La ou les raisons de ces erreurs sont détaillées dans le message.

3. Limites de l'export / import

Cette opération d'export / import de bot fonctionne bien pour les éléments suivants :

  • Base de connaissances

  • Configuration des chatbox v4

  • Les utilisateurs

  • Les langues et espaces de consultation

mais deux points nécessitent une attention particulière.

Le premier concerne les dialogues qui ne sont pas exportés en totalité mais seulement en partie. Concrètement, l'opération d'export ne fait qu'exporter les dialogues des 30 derniers jours et il n'est pas possible d'aller au delà.

Le second point concerne les groupes de formulations de la base sociale ou de bases externes - type metabot. La liaison avec les groupes de formulations issus de bots externes n'est pas toujours conservée. Concrètement, l'utilisation de groupes de formulations de la base sociale ou de bases externes fait référence à des ID. Ces IDs ne sont pas forcément les mêmes d'un serveur à l'autre et nécessitent donc une modification manuelle. Les groupes de formulations définis au sein du bot seront bien conservés et correctement importés.

4. Logs

Les traces des imports sont disponibles une fois que l'action est terminée. Pour cela, vous pouvez vous rendre dans la section "Console" et afficher les messages en Info. Exemple :

Dernière mise à jour

Tous droits réservés @ 2023 dydu.