2024-11-30

Watson Assistantは簡単には質問に対する回答ボットで、質問回答セットはIBMのページGUIで登録、実際の呼び出しは外からAPIを呼ぶのだが、それぞれ単独のHowToサイトはあるものの両者を同時に作って連携説明しているサイトが皆無なのでメモ。
Watson Assistantについては
https://cloud.ibm.com/docs/services/assistant?topic=assistant-getting-started
ですべて説明されている。今回はまずGUIで最低限のアシスタントを作成しAPIから呼んで結果を表示する。
- ユーザー「旅行に行きたい」→BOT「太郎さん、国内ですか?海外ですか?」
- ユーザー「海外に行きたい」→BOT「そうですか、海外に行きたいんですね太郎さん」
で終わる最低限ボット。ここで、APIは裏で同時にコンテキスト(=Contenxt=変数)として「自分の名前」を渡すことを想定。
初回登録・ログイン・起動
・IBMクラウドにメールアドレスでユーザー登録しパスワードを得て、ログイン
・最初は左メニュータブの「Watson」を選んで、料金プラン無料の「ライト」、場所は「東京」を選んで作成する。
・2回目からは左メニュータブの「リソース・リスト」→「Watson Assistant-po」をたぐって、「Watson Assistantの起動」をする。
アシスタントを作成
・「Create Assistant」で、「Name」を「てすと」とだけ入力して「Create」
・スキル作成画面が出るので「Add dialog skill」として「Create skill」タブを選び、
Nameを「てすとスキル」、Languageを「Japanese」として「Create dialog skill」
・てすとスキルをクリックして開き、「Create intent」→Intent name「#旅行」としてCreate intent
・User exampleに「旅行」と入力しAdd example
・戻って次は「Dialog」→「Add node」 Node Name「旅行」、If assistant recognizesにさきほど作ったIntent「#旅行」をセットし、
「Assistant responds」のTextに
- $username?>さん、国内ですか?海外ですか?
と入力する。APIが裏で「username」コンテキスト変数を同時に送ってきていると想定して代入している。
・戻って次は「Entities」→Create Entity 名前に「@旅行の種類」でCreate
・Valueに「国内」、Synonymsはカラで「Add value」
・Valueに「海外」、Synonymsはカラで「Add value」
・戻って次は「Dialog」→さっき作った旅行Dialogをクリックし子ノードを作成「Add child enode」。
Node Name「旅行返答」、If assistant recognizesにさきほど作ったEntity「@旅行の種類」をセットし、
「Assistant responds」右端メニュー「Open context editor」を選びThen set contextを出す。
「VARIABLE」に「$traveltype」、VALUEに「"@旅行の種類"」を入力する。
エンティティーをダブルクオテーションで囲うと、設定したコンテキスト変数にセットされる仕組み。
そして、「Assistant responds」のTextに
- そうですか、$traveltype?>に行きたいんですね$username?>さん
と入力してサンプルアシスタント完成。右上の「Try it」で試してみる。
- いらっしゃいませ。ご用件を入力してください。
- 旅行に行きたい
- さん、国内ですか?海外ですか?
- 国内でお願いします
- そうですか、国内に行きたいんですねさん
と、意図した動作になっている。ユーザーの名前が入るところがカラだが、これはusername変数を渡していない
=Assistantが知らない=からであり、APIから呼ぶときに同時に渡せばここにユーザー名が入るはずである。
アシスタントが出来上がったので、次回はいよいよAPIから呼び出してみる。
次回:Watson AssistantをGUIで作成しAPIから呼び出す(Python編)
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
オープンソースリップシンクエンジンSadTalkerをDebianで動かす
ファイアウォール内部のOpenAPI/FastAPIのdocsを外部からProxyPassで呼ぶ
Debian 12でsshからshutdown -h nowしても電源が切れない場合
【Windows&Mac】アプリのフルスクリーンを解除する方法
Debian 12でtsコマンドが見つからないcommand not found
Debian 12でsyslogやauth.logが出力されない場合
Debian 12で固定IPアドレスを使う設定をする
Debian 12 bookwormでNVIDIA RTX4060Ti-OC16GBを動かす
【Debian】apt updateでCD-ROMがどうのこうの言われエラーになる場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
GitLabにHTTPS経由でリポジトリをクローン&読み書きを行う
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Intel Macbook2020にBootCampで入れたWindows11 Pro 23H2のBluetoothを復活させる
【Apache】サーバーに同時接続可能なクライアント数を調整する
【Debian】apt updateでCD-ROMがどうのこうの言われエラーになる場合
Debian 12で固定IPアドレスを使う設定をする
DebianにウェブサーバーApache2をセットアップ