I will introduce how to use CHATBOT that can be used from ** Ruby **.
Use ** Dialogflow ** for CHATBOT. It is a service provided by google, and it seems easy to use once you get used to it. I have explained the settings of Dialogflow, but I have omitted the explanation of the meaning of items.
It seems that the demand for CHATBOT is increasing due to the corona virus, so I hope it will be helpful for those who are considering introducing CHATBOT to their services.
https://cloud.google.com/dialogflow/pricing The free plan has a frame of 180 requests / minute for text, and there is enough volume for verification.
https://cloud.google.com/dialogflow/quotas Since the number of intents (conversations) is up to 2,000, it may not be enough for a large service, but this is also sufficient.
First, create a CHATBOT with Dialogflow. If you have already made it, please skip it.
Create an agent. An agent is a unit of CHATBOT. If you want to create another CHATBOT, it's like creating another agent.
--Access the URL below and log in.
https://dialogflow.cloud.google.com/
--Click ** [Create new agent] ** from the menu. --Enter the agent information. -Enter ** agent name **, ** LANGUAGE **, ** TIME ZONE . - GOOGLE PROJECT ** is automatically generated. A project for this agent will be generated in ** GCP (GoogleCloudPlatform) **, so be careful not to forget to delete the GCP project when deleting the agent.
-** Click the [CREATE] ** button to generate the agent.
An intent is a conversation in a CHATBOT. When you create an agent, "** Default Welcome Intent **" is already automatically generated, so this time we will use it. I will omit the detailed explanation about the intent, so please google.
** About Default Welcome Intent ** Upon receipt of the conversation, such as "long time", "Hello", "Hi", is the intent to return to the "Hello!".
Generate a ** key file ** to access Dialogflow from a Ruby program.
--Click the ** [Gears] ** button from the Dialogflow menu
-Click the link ** under the ** Project ID
--When the Google Project screen appears, click ** [IAM]> [Service Account] ** from the menu.
-** Click Create Service Account **. --Enter the service account details. -Enter the ** service account name ** and ** service account ID **.
-** Click the [Create] ** button. --Enter the permissions of the service account. -For ** Role **, select ** Dialogflow API Administrator **.
-** Click the [Continue] ** button. --On the next screen, click the ** [Finish] ** button without entering anything.
--From the service account list screen, click ** [Create Key] ** from ** Operation ** of the created service account. --Select ** [JSON] ** on the Create Private Key screen and click ** [Create] **.
Then the JSON file will be downloaded. This JSON file is used when executing a Ruby program.
Let's call the downloaded file ** milky-agent-xxxxx.json **.
It's finally about Ruby. The execution environment of Ruby is written on the assumption that it already exists.
First prepare the environment required for execution, and then execute the program.
--Place the JSON file in an appropriate directory and register it in the environment variable. By registering in ** GOOGLE_APPLICATION_CREDENTIALS **, it will be automatically read when the program is executed.
/// milky-agent-xxxxx.json~/Suppose you put it in the tmp directory.
$ export GOOGLE_APPLICATION_CREDENTIALS=~/tmp/milky-agent-xxxxx.json
--Install the gems needed to access Dialogflow.
$ gem install google-cloud-core
$ gem install google-cloud-dialogflow
The program to be executed is written below. Copy ** project_id ** and ** session_id ** from your GCP project.
milkybot.rb
project_id = "[GCP project ID]"
session_id = "[Service account key ID]"
text = "Hello"
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"
--Run the program.
$ ruby milkybot.rb
Query text:Hello
Intent detected: Default Welcome Intent
Intent confidence: 1.0
Fulfillment text:Hello!
If you see the above, you are successful! Try changing ** text ** in the program to something like "after a long time" or "hi". I think you will get the same answer.
After that, if you register various conversations on Dialogflow, you can create your own favorite CHATBOT. The investigation was difficult, but when I tried it, it was surprisingly easy.
Recommended Posts