Même sans aucune connaissance, nous vous amènerons au point où vous pouvez créer Slack Bot et Line Bot à l'aide de Watson.
[Mis à jour le 6 juin 2019] Ce message a été écrit à l'époque de Watson Conversation, le prédécesseur de Watson Assistant, et bien que les captures d'écran soient encore anciennes, les idées et les opérations de base de Watson Assitant Ne change pas, veuillez donc le lire comme le dernier environnement. </ font>
■ Je voudrais aborder les points suivants.
(1) Introduction à la réflexion, création d'un compte ② Méthode de conception du flux de dialogue en utilisant "Réservation d'hôtel" comme exemple ③ Utilisation du contexte, utilisation pratique de diverses fonctions non mentionnées dans le didacticiel ④ Comment créer un lien avec la logique Java ** ⑤ Créez un chatbot avec Watson + Java + Slack ** ← Cet article
Cette fois, comme la 5ème fois, j'aimerais créer ** ④ Watson + Java + Slack chatbot **.
Cette fois, nous utiliserons ** Java ** pour lier ** Watson ** et ** Slack ** pour créer un chatbot.
La coordination n'est pas particulièrement difficile, il suffit de transmettre le texte saisi par l'utilisateur dans ** Slack ** à ** Watson Conversation ** et de renvoyer le résultat à l'utilisateur.
Exécutez le code ci-dessous pour lancer le Slack Bot. C'est la seule description. Slack et Watson travaillent maintenant ensemble.
WcsSlackBotExample00.java
public class WcsSlackBotExample00 {
//Modifiez ici et entrez les informations d'identification Watson
private static final String WATSON_CONVERSATION_USERNAME = "EDIT_ME_USERNAME_HERE";
private static final String WATSON_CONVERSATION_PASSWORD = "EDIT_ME_PASSWORD_HERE";
private static final String WATSON_CONVERSATION_WORKSPACE_ID = "EDIT_ME_WORKSPACE_ID_HERE";
//Modifiez ici et entrez le jeton d'API du bot Slack
private static final String SLACK_BOT_API_TOKEN = "EDIT_ME_SLACK_API_TOKEN";
public static void main(String[] args) throws IOException {
final WcsClient watson = new WcsClient(
WATSON_CONVERSATION_USERNAME,
WATSON_CONVERSATION_PASSWORD,
WATSON_CONVERSATION_WORKSPACE_ID);
SlackletService slackService = new SlackletService(SLACK_BOT_API_TOKEN);
slackService.addSlacklet(new Slacklet() {
@Override
public void onDirectMessagePosted(SlackletRequest req, SlackletResponse resp) {
//Un message direct adressé à BOT a été publié
SlackUser slackUser = req.getSender();
//Contenu du message (texte)
String userInputText = req.getContent();
//Obtenez l'ID de l'utilisateur Slack et laissez l'ID de cet utilisateur Slack être l'ID utilisateur unique de Watson
String wcsClientId = slackUser.getId();
//Envoyer le texte saisi par l'utilisateur à Watson et générer Watson(outputText)Recevoir
String botOutputText = watson.sendMessageForText(wcsClientId, userInputText);
//Afficher la réponse de Watson dans Slack
slackService.sendDirectMessageTo(slackUser, botOutputText);
}
});
//Lancement du service slacklet(Connectez-vous à Slack)
slackService.start();
}
}
Une fois exécuté, il s'agira d'un échange de messages directs individuel avec Slackbot, comme indiqué ci-dessous. Nous allons exécuter le chat bot de Watson (flux de dialogue).
À propos, il est normal que plusieurs utilisateurs se connectent à Slackbot en même temps.
Le code source complet peut être trouvé dans le référentiel suivant https://github.com/riversun/watson-java-slackbot-ja
Le flux de dialogue utilise le ** Chatbot de réservation d'hôtel (amélioré) ** créé précédemment comme exemple. Vous pouvez le télécharger à partir de ce qui suit. https://riversun.github.io/wcs/org.riversun.WcsContextTestJa.zip
private static final String WATSON_CONVERSATION_USERNAME = "EDIT_ME_USERNAME_HERE";
private static final String WATSON_CONVERSATION_PASSWORD = "EDIT_ME_PASSWORD_HERE";
private static final String WATSON_CONVERSATION_WORKSPACE_ID = "EDIT_ME_WORKSPACE_ID_HERE";
private static final String SLACK_BOT_API_TOKEN = "EDIT_ME_SLACK_API_TOKEN";
Tout d'abord, modifiez-le et entrez les informations de connexion à Watson et Slack.
final WcsClient watson = new WcsClient(
WATSON_CONVERSATION_USERNAME,
WATSON_CONVERSATION_PASSWORD,
WATSON_CONVERSATION_WORKSPACE_ID);
SlackletService slackService = new SlackletService(SLACK_BOT_API_TOKEN);
** nouveau ** chacun de la classe d'assistance ** WcsClient ** pour l'utilisation de Watson Conversation à partir de Java et de la classe d'assistance ** SlackletService ** pour la création de Slack Bot en Java.
slackService.addSlacklet(new Slacklet() {
@Override
public void onDirectMessagePosted(SlackletRequest req, SlackletResponse resp) {
・ ・ ・ ・ ・ ・ ・
}
});
Créez une classe de rappel ** Slacklet ** qui reçoit le ** message direct ** que l'utilisateur a envoyé au BOT dans Slack. (Pour ** Slacklet **, consultez cet article "Easy to make Slack Bot with Java")
Jetons un coup d'œil au contenu de ** public void onDirectMessagePosted (SlackletRequest req, SlackletResponse resp) **.
String userInputText = req.getContent();
Récupérez le texte saisi par l'utilisateur dans Slack avec ** # getContent **
String wcsClientId = slackUser.getId();
Obtenez l'ID utilisateur slack avec ** slackUser # getId **. Watson utilisera cet ID utilisateur tel quel comme ID unique pour identifier l'utilisateur.
String botOutputText = watson.sendMessageForText(wcsClientId, userInputText);
** WcsClient # sendMessageForText ** envoie le texte saisi par l'utilisateur à Watson et reçoit la réponse (botOutputText) de Watson comme valeur de retour.
slackService.sendDirectMessageTo(slackUser, botOutputText);
Envoie la réponse de Watson sous forme de message direct à l'utilisateur.
Nous avons vu un exemple de la façon dont Watson et Slack travaillent ensemble en Java.
J'ai pu créer un Slack Bot en utilisant Watson assez facilement, Pour rendre son utilisation encore plus facile en tant que Slack Bot En plus des messages directs, vous pouvez rejoindre BOT sur la chaîne Je pense que c'est une bonne idée de parler à BOT à @mention et de faire preuve d'ingéniosité. (Le savoir-faire à ce sujet est résumé dans Easy to make Slack Bot with Java.)
La prochaine fois, nous lierons ** LINE ** (LINE BOT) et ** Watson **.
Recommended Posts