はじめに
今回はIBM WatsonのAssistant(旧Conversation)という機能の使用方法を解説したいと思います。
この記事を最後まで読んでいただくと、あなたはオリジナルのBotを作成しAPIとして利用することができます。
なお質問などございましたら、コメント欄などにお気軽にどうぞ。
それでは早速はじめましょう。まずはこちらからIBM Cloudのアカウントを作成してください。
次にMy IBM Dashboardにアクセスして
上記の起動ボタンをクリック。
ワークスペースを作成する
IBM Cloudのトップ画面です。画面上部の リソースの作成
をクリック。
画面下部にスクロールをすると以下の設定が表示される。ライトプランのままで作成ボタンをクリック。
Create a new workspace
の create+
ボタンをクリック。
こんなポップアップが出現。任意の値を入力して create
をクリック。
Intentsについて
Intent(意図・思考のような意味)
つまりユーザーが何をしたいのか判定するための概念です。
for example
- ピザが食べたい
- 旅行に行きたい
- 病気かもしれない
- ネットに接続できない
- ホテルを予約したい
Intent
を作成します。
Intents概要
作成し終わったら画面上部の ←
ボタンをクリック。
Content Catalogについて
よく使う会話などIntentを自動的に追加してくれる機能です。
割と最近追加された機能で筆者もまだ詳しくはないです。
entityについて
目的語の部分にあたります
〜を、〜がのような
for example
- スマートフォン
- スマートフォン
- スマフォ
- Smart Phone
- IPhone
- Android
- ゲーム機
- PS4
- PS3
- プレイステーション4
- プレイステーション3
- 任天堂Switch
- ニンテンドーDS
- Wii U
- Wii
- Xbox One
entity概要
今回のサンプルはこんな感じに定義しました。
作成し終わったら画面上部の ←
ボタンをクリック
Dialogについて
Dialogは実際に会話のフローを定義します。フローはノードとよばれるブロックの連続で成り立ちます。
Dialogタブをクリックし、 Creaet+
をクリック。
主な機能
if bot recognizes
対象のノードが選択される条件をしていします。
Intent
, entity
, context
などが条件に指定できます。
Then respond with
返却するメッセージを指定します。(複数パターンを定義することができます)
<? input.text ?>
はユーザーの入力値を保持しています。
And finally
最後に何をするかを設定します。
次のnodeの選択や、なにがトリガーで次のnodeを呼び出すかなどを定義できます。
- Wait for user input はユーザーの入力を待ちます。
- Jump toはレスポンスが終了次第、次のノードへ自動的に移動します。
ノードを追加
会議室を予約する会話を追加する。
作成できたらホテルを予約するノードも追加しましょう。
時間を指定できるようにします。EntitiesタブをクリックしてからSystem entitiesタブをクリック。
Dialogにまた戻ります。会議室を予約ノードに右にある○が連続しているところをクリックして Add child node
をクリック。
If bot recognizes:
@sys-date
Then respond with:
でございますね。予約しました。ありがとうございました!try it out
try it outというチャットをすぐにテストできる機能もあります。
Dialogを定義したら使って見ましょう。
APIとして利用する際
APIリファレンスを参考にご自身のアプリケーションに設定します。(他にもSlackやLineを利用することもできます。)
Assistantのリファレンスはこちら
NodeとJavaとPythonで利用することができます。
API ExplorerでAPIの動作確認をすることもできます。