Help us understand the problem. What is going on with this article?

爆速!Watson Assistant入門

More than 1 year has passed since last update.

はじめに

今回はIBM WatsonのAssistant(旧Conversation)という機能の使用方法を解説したいと思います。

この記事を最後まで読んでいただくと、あなたはオリジナルのBotを作成しAPIとして利用することができます。

なお質問などございましたら、コメント欄などにお気軽にどうぞ。

それでは早速はじめましょう。まずはこちらからIBM Cloudのアカウントを作成してください。

次にMy IBM Dashboardにアクセスして

image.png

上記の起動ボタンをクリック。

ワークスペースを作成する

IBM Cloudのトップ画面です。画面上部の リソースの作成 をクリック。

スクリーンショット 2018-05-13 12.20.24.png

画面左のmenu最下部にWatsonがあるのでクリック。
image.png

Assistantをクリック。
image.png

こんな画面が出るはず
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3133363533332f37653066653266312d393633352d386637332d643130642d3139333762333733366331642e706e67.png

画面下部にスクロールをすると以下の設定が表示される。ライトプランのままで作成ボタンをクリック。
image.png

作成するとこんな画面になるのでツールの起動をクリック。
スクリーンショット 2018-05-13 12.39.35.png

新しいタブが開きます。Workspaceタブをクリック。
image.png

Create a new workspacecreate+ ボタンをクリック。
image.png

こんなポップアップが出現。任意の値を入力して create をクリック。
image.png

ワークスペース作成完了。
image.png

Intentsについて

Intent(意図・思考のような意味)
つまりユーザーが何をしたいのか判定するための概念です。

for example

  • ピザが食べたい
  • 旅行に行きたい
  • 病気かもしれない
  • ネットに接続できない
  • ホテルを予約したい

Intentを作成します。

Add intentをクリック。
image.png

Intents概要

今回のサンプルはこんな感じに定義しました。
image.png

作成し終わったら画面上部の ボタンをクリック。

Content Catalogについて

スクリーンショット 2018-05-13 13.27.58.png

よく使う会話などIntentを自動的に追加してくれる機能です。
割と最近追加された機能で筆者もまだ詳しくはないです。

entityについて

目的語の部分にあたります
〜を、〜がのような

for example

  • スマートフォン
    • スマートフォン
    • スマフォ
    • Smart Phone
    • IPhone
    • Android
  • ゲーム機
    • PS4
    • PS3
    • プレイステーション4
    • プレイステーション3
    • 任天堂Switch
    • ニンテンドーDS
    • Wii U
    • Wii
    • Xbox One

entity概要

Entitiesタブをクリック。
image.png

Add entityをクリック。
image.png

今回のサンプルはこんな感じに定義しました。
image.png
作成し終わったら画面上部の ボタンをクリック

Dialogについて

Dialogは実際に会話のフローを定義します。フローはノードとよばれるブロックの連続で成り立ちます。

Dialogタブをクリックし、 Creaet+ をクリック。
image.png

このような画面が表示される。
image.png

主な機能

image.png

if bot recognizes

対象のノードが選択される条件をしていします。
Intent, entity, context などが条件に指定できます。

Then respond with

返却するメッセージを指定します。(複数パターンを定義することができます)
<? input.text ?> はユーザーの入力値を保持しています。

And finally

最後に何をするかを設定します。
次のnodeの選択や、なにがトリガーで次のnodeを呼び出すかなどを定義できます。

  • Wait for user input はユーザーの入力を待ちます。
  • Jump toはレスポンスが終了次第、次のノードへ自動的に移動します。

ノードを追加

Add nodeボタンをクリック。
image.png

image.png

会議室を予約する会話を追加する。
image.png
作成できたらホテルを予約するノードも追加しましょう。

時間を指定できるようにします。EntitiesタブをクリックしてからSystem entitiesタブをクリック。

スクリーンショット 2018-05-13 13.35.43.png

sys-dateをonにします。
スクリーンショット 2018-05-13 13.38.24.png

Dialogにまた戻ります。会議室を予約ノードに右にある○が連続しているところをクリックして Add child node をクリック。
スクリーンショット 2018-05-13 13.47.25.png

以下のように値を設定してください。
スクリーンショット 2018-05-13 13.49.35.png

If bot recognizes:
@sys-date

Then respond with:
<?entities['sys-date']?.value.reformatDateTime('yyyy年MM月dd日')?>でございますね。予約しました。ありがとうございました!

try it out

try it outというチャットをすぐにテストできる機能もあります。
Dialogを定義したら使って見ましょう。

スクリーンショット 2018-05-13 13.32.06.png

このようにDialogのテストを行うことができます。
スクリーンショット 2018-05-13 13.33.39.png

スクリーンショット 2018-05-13 13.52.59.png

APIとして利用する際

APIリファレンスを参考にご自身のアプリケーションに設定します。(他にもSlackやLineを利用することもできます。)

Assistantのリファレンスはこちら

NodeとJavaとPythonで利用することができます。

認証情報は以下から確認することができます。
スクリーンショット 2018-05-13 13.58.15.png

API ExplorerでAPIの動作確認をすることもできます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away