2022-12-01

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編)

※本記事内容の無断転載を禁じます。

レンジでチンするだけ!ミシュラン経験シェフが監修・あなたにぴったりな料理をお届け【CHEFBOX】

高機能化粧水!4種の和漢エキス・ヒト幹細胞を配合♪【シロメル 】

高いカバー力、なのに軽い付け心地。年齢肌専用ファンデ【ミネラルリキッドファンデーション】

「パッケージ以上オーダーメイド未満」で、「やりたいこと」が実現できるTEMPOSTAR(テンポスター)

日本初上陸の新型パーソナルトレーニング【exercise coach】

24HR フィットネスジム×パーソナルトレーニングジム【STAR FIT(スターフィット)】

本格コーヒーがたっぷり10銘柄50袋入り!【10gコーヒーお試しセット】

【開運】商品の決定版:手書き護符

あなたのフライパン焦げ付きませんか?王様フライパンPENTAは革命的です!

bitcoinjs-lib、bip32、bip39を使ってビットコインアドレスを生成する
Cannot read property makeRandom of undefinedと言われた場合
web3.jsとwindow.ethereumでコントラクト関数を引数つきでコールしプロパティを取得する
JavaScriptで外部URLのファイルをダウンロードしてデータを取得する
【MetaMask】window.ethereumのeth_callで任意のコントラクト関数を呼ぶ
window.ethereum.requestに渡すdataフィールドをABIエンコードで作成する
【Solidity】Remix IDEを使用してサーバー不要のコントラクト開発&デバッグ【Ethereum】
【Windows】Googleフォトからダウンロードした動画が音声のみで映像が再生されない場合
PostgreSQLをソースコードからインストールしてsystemdのサービスとして動かす
5chブラウザJane Styleの板一覧にゲーム板等が表示されない場合
Windows版Google Driveが使用中と言われアンインストールできない場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Googleスプレッドシートを編集したら自動で更新日時を入れる
【Javascript】JSON配列内にある特定要素の取得法【Node.js】
Ubuntuで固定IPアドレスを使う設定をする
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Hackintosh】組立PCにWindowsとmacOSを同居させる場合の注意点
Google ColaboratoryのTensorFlowバージョンを変更する(1.X←→2.X)