今回は、前回の続きの記事です。
前回の記事で、画面上に Answer Finding の結果とその確信度を表示してみました。
今回は、パッセージの表示を追加してみます。さらに、カスタム・レスポンスを使って見栄えの調整も行います。
カスタマイズ手順
2 つのステップで実施します。
- カスタム拡張機能の呼び出し定義にパッセージ関連を追加
- カスタム・レスポンスを定義した index.html を作成
それでは順番に見ていきます。
カスタム拡張機能の呼び出し定義にパッセージ関連を追加
検索結果を保存するセッション変数と Watson Discovery を呼び出すアクションを作成します。
セッション変数の追加
パッセージ関連のセッション変数を追加します。
セッション変数の作成方法は、注文のキャンセル処理を追加する 〜セッション変数の使い方〜 をご参照ください。
今回追加するセッション変数は 赤字 です。
Name | Type | Description |
---|---|---|
query_text | Any | 検索文字列 |
search_result | Any | 検索結果の保存 |
title | Any | wikipediaのタイトル |
answer | Any | Answer Findingで見つかった回答 |
answer_confidence | Number | 回答の確信度 |
link | Any | wikipediaのリンク |
snippet | Any | パッセージ本体 |
passage_start_offset | Any | パッセージの開始位置 |
answer_start_offset | Number | 回答の開始位置 |
answer_end_offset | Number | 回答の終了位置 |
ステップの修正
Discoveryにつないでアクションのステップ を修正します。
ステップ 2 のAnd then パート
ステップ 3 のVariable values パート
今回追加する変数は 赤字 です。
セット先変数 | 値 |
---|---|
search_result | ${search_result}.get(0) |
answer | ${search_result}.document_passages.get(0).answers.get(0).answer_text |
link | ${search_result}.url |
title | ${search_result}.title |
answer_confidence | ${search_result}.document_passages.get(0).answers.get(0).confidence |
snippet | ${search_result}.document_passages.get(0).passage_text |
answer_start_offset | ${search_result}.document_passages.get(0).answers.get(0).start_offset |
answer_end_offset | ${search_result}.document_passages.get(0).answers.get(0).end_offset |
passage_start_offset | ${search_result}.document_passages.get(0).start_offset |
ステップ 3 のAssistant says パート
JSON view を使用して編集します。
{
"generic": [
{
"user_defined": {
"link": "${link}",
"title": "${title}",
"answer": "${answer}",
"snippet": "${snippet}",
"answer_confidence": "${answer_confidence}",
"answer_end_offset": "${answer_end_offset}",
"user_defined_type": "search_card",
"answer_start_offset": "${answer_start_offset}",
"passage_start_offset": "${passage_start_offset}"
},
"response_type": "user_defined"
}
]
}
カスタム・レスポンスを定義した index.html を作成
ポイントだけ、ご説明します。
全てのコードは、Github wd_extensions にて公開しております。
カスタム・レスポンス・カード WACTextholderTile の定義をスタイル・セクションに記述しています。
searchCardHandler 関数にて、表示項目を定義しています。
回答の確信度が 0.4 以上に絞り込む処理とパッセージ内での回答の強調表示を行う関数を定義しています。
標準機能のサーチでは、確信度が低い回答も表示されていましたが、reformat() 関数を修正することで調整できますね。
試してみる
前回もやった同じ質問をしてみます。
質問 『ピザの日はいつ』
質問 『宅配ピザを始めたお店は』
質問 『ピザの誕生秘話』
Anser Finding の結果、Answer Finding の確信度、パッセージをカスタム・レスポンスで作成したカード内に表示できるようになりました。
いかがでしたでしょうか
Watson Discovery への接続パラメータの変更や検索結果を自由にレイアウトできるようになりました。
標準機能のサーチだけで機能が不足する場合は、今回の記事を参考に、色々とカスタマイズしてみてください。
本日が、Qitta Advent Calendar 2022 最終日です。無事終えることができました。
また、私の記事を参照してくれた皆さん、本当にありがとうございます。
参考情報
Qiita Advent Calendar 2022
公式サイト: Watson Discovery API - Query パラメータ
Github: Watson Discovery Extension OpenAPI 文書
関連記事
扱いたかった記事