CHATBOT (Dialogflow) utilisé depuis Ruby

1.Tout d'abord

Je vais vous présenter comment utiliser CHATBOT qui peut être utilisé à partir de ** Ruby **.

Utilisez ** Dialogflow ** pour CHATBOT. C'est un service fourni par Google, et il semble facile à utiliser une fois que vous vous y êtes habitué. J'ai expliqué les paramètres de Dialogflow, mais j'ai omis l'explication de la signification des éléments.

Il semble que la demande de CHATBOT augmente en raison de la catastrophe corona. J'espère que cela sera utile pour ceux qui envisagent d'introduire CHATBOT dans leurs services.

1-1. Qu'est-ce que Dialogflow?

dialogflow https://cloud.google.com/dialogflow/docs > Dialogflow est une plate-forme de compréhension du langage naturel qui facilite la conception d'interfaces utilisateur conversationnelles et l'intégration dans des applications mobiles, des applications Web, des appareils, des robots, des systèmes de réponse vocale interactive, etc. Dialogflow peut être utilisé pour fournir aux utilisateurs une nouvelle façon de travailler.

plan

https://cloud.google.com/dialogflow/pricing Le plan gratuit a un cadre de 180 requêtes / minute pour le texte, et il y a suffisamment de volume pour la vérification.

limite supérieure

https://cloud.google.com/dialogflow/quotas Étant donné que le nombre d'intentions (conversations) peut atteindre 2000, cela peut ne pas être suffisant pour un grand service, mais cela est également suffisant.

2. Créez CHATBOT avec Dialogflow

Commencez par créer un CHATBOT avec Dialogflow. Si vous l'avez déjà fait, veuillez l'ignorer.

2-1. Créer un agent

Créez un agent. Un agent est une unité de CHATBOT. Si vous voulez créer un autre CHATBOT, c'est comme créer un autre agent.

Accéder au flux de dialogue

https://dialogflow.cloud.google.com/ dialogflow

Créer un agent

--Cliquez sur ** [Créer un nouvel agent] ** dans le menu.

dialogflow

Créer un intent

Une intention est une conversation dans CHATBOT. Lorsque vous créez un agent, "** Intention de bienvenue par défaut **" est déjà généré automatiquement, nous allons donc l'utiliser cette fois. Je vais omettre l'explication détaillée de l'intention, donc s'il vous plaît google.

** À propos de l'intention de bienvenue par défaut ** À la réception de la conversation, comme "long time", "Hello", "Hi", est l'intention de revenir au "Hello!".

3. Obtenez les informations d'identification

Générez un ** fichier clé ** pour accéder à Dialogflow à partir d'un programme Ruby.

3-1. Ouvrez Google Project

Visitez Google Project

--Cliquez sur le bouton ** [Gear] ** dans le menu Dialogflow

dialogflow

-Cliquez sur le lien ** sous ** ID du projet

dialogflow

3-2. Créer une clé

Accéder au compte de service

--Lorsque l'écran Google Project apparaît, cliquez sur ** [IAM]> [Compte de service] ** dans le menu.

dialogflow

Créer un compte de service

dialogflow dialogflow

Créer une clé

dialogflow

Ensuite, le fichier JSON sera téléchargé. Ce fichier JSON est utilisé lors de l'exécution de programmes Ruby.

Appelons le fichier téléchargé ** milky-agent-xxxxx.json **.

4. Créez un programme Ruby

Il s'agit enfin de Ruby. L'environnement d'exécution de Ruby est écrit en supposant qu'il existe déjà.

Préparez d'abord l'environnement requis pour l'exécution, puis exécutez le programme.

4-1. Installation du package

Définition des variables d'environnement

--Placez le fichier JSON dans un répertoire approprié et enregistrez-le dans la variable d'environnement. En vous inscrivant dans ** GOOGLE_APPLICATION_CREDENTIALS **, il sera lu automatiquement lorsque le programme sera exécuté.

/// milky-agent-xxxxx.json~/Supposons que vous le placiez dans le répertoire tmp.
$ export GOOGLE_APPLICATION_CREDENTIALS=~/tmp/milky-agent-xxxxx.json

Installation du package

--Installez les gemmes nécessaires pour accéder à Dialogflow.

$ gem install google-cloud-core
$ gem install google-cloud-dialogflow

4-2. Programme

Le programme à exécuter est écrit ci-dessous. Copiez ** project_id ** et ** session_id ** à partir du projet GCP.

milkybot.rb


project_id = "[ID du projet GCP]"
session_id = "[ID de clé de compte de service]"
text = "Bonjour"
language_code = "jp"

require "google/cloud/dialogflow"

session_client = Google::Cloud::Dialogflow.sessions
session = session_client.session_path project: project_id,
                                      session: session_id

query_input = { text: { text: text, language_code: language_code } }
response = session_client.detect_intent session:     session,
                                        query_input: query_input
query_result = response.query_result

puts "Query text:        #{query_result.query_text}"
puts "Intent detected:   #{query_result.intent.display_name}"
puts "Intent confidence: #{query_result.intent_detection_confidence}"
puts "Fulfillment text:  #{query_result.fulfillment_text}\n"

5. Exécuter

$ ruby milkybot.rb 
Query text:Bonjour
Intent detected:   Default Welcome Intent
Intent confidence: 1.0
Fulfillment text:salut!

Si vous voyez ce qui précède, vous avez réussi! Essayez de changer ** text ** dans le programme en quelque chose comme "après une longue période" ou "salut". Je pense que vous obtiendrez la même réponse.

Après cela, si vous enregistrez diverses conversations sur Dialogflow, vous pouvez créer votre propre CHATBOT préféré. L'enquête a été difficile, mais quand je l'ai essayée, c'était étonnamment facile.

Recommended Posts

CHATBOT (Dialogflow) utilisé depuis Ruby
De Java à Ruby !!
Essayez d'utiliser Cocoa de Ruby
Utiliser le programme C de Ruby
[Ruby] À quoi sert «!!»?
[Ruby] Recevoir les entrées de la console
[Ruby] Échapper à plusieurs boucles [Nest]
Introduction à Ruby (à partir d'autres langues)
Méthodes Ruby souvent utilisées dans Rails