このチュートリアルでは、チャットボットに知識案内スキルを実装します。
このチュートリアルは、「チャットボットを作ろう」が完了していることを前提としています。
知識検索スキルを作成しよう
知識検索を担当するボットを作成します。
本チュートリアルでは、WikipediaCGSを使用しているため単語での知識検索のみに対応しています。
一般公開されている他のAPIなどと組み合わせることで、文章での知識検索を行うことも可能です。
作業手順
- ボットエディタにログインし、ボット管理画面で「WikipediaBot」という名前のボットを作成します。
- オプションのボット設定画面でボット編集の「公開」を「project」に変更します。
- 作成したボットに知識検索スキルを記述したシナリオ(WikipediaSkill.aiml)を登録します。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687<?xml version="1.0" encoding="UTF-8"?><aiml version="2.5.0" xmlns="http://www.nttdocomo.com/aiml/schema" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nttdocomo.com/aiml/schema/AIML.xsd"><category><pattern>*</pattern><template><!-- ユーザ発話から、Wikipediaで検索するキーワードを抽出する。 --><think><set name="_var_keyword"><srai>#extractKeyword <star/></srai></set></think><!-- キーワードが抽出できた場合のみ、WikipediaCGSを呼び出す。 --><condition name="_var_keyword"><li value="|undefined">お調べするキーワードがわかりませんでした。</li><li><!-- WikipediaCGSを呼び出す。 --><ext name="wikipedia"><arg name="keyword"><get name="_var_keyword"/></arg></ext><!-- WikipediaCGSの結果を取得する。 --><condition name="_ext_wikipedia_status"><!-- 結果が取得できた場合。 --><li value="true">「<get name="_ext_wikipedia_title"/>」についてお調べしました。<get name="_ext_wikipedia_search_result"/><a target="_blank" href="<get name="_ext_wikipedia_link_url"/>">Wikipediaへ</a></li><!-- 結果が取得できなかった場合。 --><li>「<get name="_var_keyword"/>」についてお調べしましたが、よくわかりませんでした。</li></condition></li></condition></template></category><category><pattern>#extractKeyword *</pattern><template><think><set name="topic">extract-keyword</set></think><srai><star/></srai><think><set name="topic"/></think></template></category><topic name="extract-keyword"><category><pattern level="surface" partial="true">*とは</pattern><pattern partial="true">*について</pattern><pattern partial="true">*って</pattern><pattern partial="true">*の意味</pattern><pattern partial="true">*を調べて</pattern><pattern partial="true">*を検索</pattern><pattern partial="true">* 調べて</pattern><pattern partial="true">* 検索</pattern><pattern partial="true">* 意味</pattern><template><star/></template></category><category><pattern>*</pattern><template><condition name="_namelister_ne"><li value="|undefined"><get name="_task_extractedWords_1_value"/></li><li><get name="_namelister_ne"/></li></condition></template></category></topic></aiml> - 作成したボットのシナリオをデプロイします。
スキルコントローラに組みこもう
スキルコントローラに、知識検索スキルを組み込みます。
ポイント
意図解釈によるスキル呼び出しの他に、UDCでもスキル呼び出しを行うと予期していなかったユーザ発話に対して知識検索結果を表示することができます。
作業手順
- スキルコントローラボットに、知識検索スキルを持たせるシナリオ(WikipediaSkillController.aiml)を登録します。
1234567891011<?xml version="1.0" encoding="UTF-8"?><aiml version="2.5.0" xmlns="http://www.nttdocomo.com/aiml/schema" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nttdocomo.com/aiml/schema/AIML.xsd"><category><pattern label="ST001004002"/><template><sraix botid="<ProjectID>_WikipediaBot"><get name="input"/></sraix></template></category></aiml> - 作成したボットのシナリオをデプロイします。
動作確認しよう
APIコンソール画面で動作を確認します。