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編)
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Intel Macbook2020にBootCampで入れたWindows11 Pro 23H2のBluetoothを復活させる
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Apache】サーバーに同時接続可能なクライアント数を調整する
Windows版Google Driveが使用中と言われアンインストールできない場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【Linux】iconv/libiconvをソースコードからインストール
Googleスプレッドシートを編集したら自動で更新日時を入れる
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
【ひかり電話+VoIPアダプタ】LANしか通ってない環境でアナログ電話とFAXを使う
Windows11でMacのキーボードを使うには