対話型 Bot for FAQ チュートリアル 第 1.1 版 2017 年 12 月 4 日 富士通株式会社 1 / 10
変更履歴 版数 修正日 修正箇所 修正内容 1.0 2017/7/27 初版 1.1 2017/12/4 - プロパティを修正 2 / 10
はじめに 本書の目的本書は Zinrai プラットフォームサービスが提供する API を利用するための具体的な手順を説明しています 本書の対象読者本書は Zinrai プラットフォームサービスでアプリケーションやサービスを開発 運用する方を対象に記述します 本書を読むためには 以下の知識が必要です インターネットに関する基本的な知識 使用するオペレーティングシステムに関する基本的な知識 WebAPI に関する基本的な知識 お願い 本書で使用している画面イメージ 実行例などは 最新環境のものとは異なることがあります 本書は 予告なしに変更されることがあります 本書を無断で他に転用しないようお願いします 本書に記載されたデータの使用に起因する第三者の特許権およびその他の権利の侵害については 当社はその責を負いません 輸出管理規制について 本ドキュメントを輸出または第三者へ提供する場合は お客様が居住する国および米国輸出管理関連法 規等の規制をご確認のうえ 必要な手続きをおとりください 登録商標について 本書に記載されている会社名および製品名は それぞれ各社の商標または登録商標である場合があります なお 本書では 会社名および製品名に付記される登録表示 ((TM) または (R)) は省略しています 3 / 10
目次 第 1 章はじめに... 5 1.1 API をご利用になる前に... 5 1.2 チュートリアルで使用している API 一覧... 5 第 2 章チュートリアル... 6 2.1 アクセストークンの取得... 6 2.1.1 アクセストークンの取得方法... 6 2.2 対話制御... 6 2.2.1 初回... 6 2.2.2 質問... 7 2.2.3 FAQ を選択... 8 2.3 履歴抽出... 9 2.3.1 対話 ID と紐づく対話情報を出力する... 9 2.3.2 レスポンス対話履歴 DB に格納されている対話情報を出力する... 9 4 / 10
第 1 章はじめに 対話型 Bot for FAQ では お客様からの問合せ内容に対して 自動応答 (ChatBot) を適用することにより オペレータ業務を代行しコールセンター全体の負荷を軽減するとともに お客様に対して新しい顧客体験を提供します 本チュートリアルでは 対話制御と履歴参照の API の具体的な使用手順について説明します 1.1 API をご利用になる前に対話型 Bot for FAQ をご利用になるには 対話制御処理で使用する FAQ データおよび学習済みモデルを予め登録しておく必要があります 本書は 本サービスのご利用に必要な各種データの登録が完了していることを前提に記述しています 1.2 チュートリアルで使用している API 一覧 本チュートリアルで使用している API は 以下の通りです API の詳細は各リファレンスを参照してください API API 処理内容 チュートリアル上の使用用途 POST /CommunicationsBot/v1/conversation 対話 利用者が投げかけた発話に対して登録しておいた QA の情報をもとに回答を提示します GET /CommunicationsBot/v1/dlghist 対話履歴の抽出 ユーザとシステムの対話履歴を 抽出します 5 / 10
第 2 章チュートリアル 本書は 対話型 Bot for FAQ API を利用するための具体的手順を説明したものです 2.1 アクセストークンの取得対話型 Bot for FAQ API を使用するためにはアプリケーションの認証トークン ( アクセストークン ) が必要です アクセストークンは API 認証から発行される期限付きのトークンです アクセストークンは認証済みのアプリケーションからのアクセスかどうか確認するために必要となるため API を実行前に期限が切れていないアクセストークンを取得する必要があります 2.1.1 アクセストークンの取得方法 API 認証に対してトークンを取得するための情報を Body 部にセットして認証を行います API 認証で使用 する各パラメータについてはこちらのリファレンスを参照してください 2.2 対話制御 対話制御は対話型 Bot を利用して 利用者が投げかけた質問などの発話に対して あらかじめ登録してお いた QA の情報をもとに回答を提示します 2.2.1 初回対話を開始する際には input sessionid のフィールドは空文字でリクエストを送ります user_id のフィールドには 36 桁以内の任意の整数を user_name のフィールドには 64 バイト以内の任意の値を入力してください リクエスト例 curl -k -X POST "https://zinrai-pf.jp-east-1.paas.cloud.global.fujitsu.com/communicationsbot/v1/conversation" -H 'content-type: application/json; charset=utf-8' -d '{"input":"","sessionid":"","user_id":"00123456789","user_name":" 富士通太郎 "' -H "X-Access-Token: [ アクセストークン ]" -H "X-Service-Code: FJAI000010-00006" レスポンス例 { "output":[" こんにちは \nai チャットサポートです \n サポートをいたします "," どのような件でお問い合わせですか?"], "output_url":"", "user_id":"00123456789", "user_name":" 富士通太郎 ", "faq_ans":[], "sessionid":"3d19713b-78bc-43db-a452-c6c5f2f79185", "response code":200 6 / 10
2.2.2 質問初回のリクエストによって対話が開始され 内部で sessionid が付与されます 2 回目以降の問い合わせの際 sesionid のフィールドには初回リクエスに対するレスポンスに記載されている sessionid を指定してください input フィールドには 対話型 Bot に問い合わせたい内容を自然文にて入力してください (1 発話の文字数の最大値は 500 文字です ) FAQ の一覧が絞り込まれるまではシステムより問い返しが返されます 問い返された内容に答える形で input フィールドにユーザの発話を入力してください リクエスト例 curl -k -X POST "https://zinrai-pf.jp-east-1.paas.cloud.global.fujitsu.com/communicationsbot/v1/conversation" -H 'content-type: application/json; charset=utf-8' -d '{"input":" インターネットにつながらない ","sessionid":"3d19713b-78bc-43db-a452-c6c5f2f79185","user_id":"00123456789","user_name":" 富士通太郎 "' -H "X-Access-Token: [ アクセストークン ]" -H "X-Service-Code: FJAI000010-00006" レスポンス例 { "output":[" インターネットがつながらない についてのお問い合わせですね "," 何か思い当たるきっかけはありますか "], "output_url":"", "user_id":"00123456789", "user_name":" 富士通太郎 ", "faq_ans":[], "sessionid":"3d19713b-78bc-43db-a452-c6c5f2f79185", "response code":200 7 / 10
2.2.3 FAQ を選択対話を進めていき 質問が絞り込まれると FAQ の一覧が提示されます 以下のように faq_ans フィールドにシステムから FAQ の一覧が提示されます { "output":[" インターネットにつながらない 制限ありと表示されてつながらない 無線 LAN windows8 についてのお問い合わせですね "," 該当しそうな情報をお探ししました この中にありますでしょうか? 以下よりご選択ください "], "output_url":"","user_id":"00123456789", "user_name":" 富士通太郎 ", "faq_ans":[ {"faq_ans_title":"faq のタイトル 1","faq_ans_id":"0000-0001", {"faq_ans_title":"faq のタイトル 2","faq_ans_id":"0000-0002", {"faq_ans_title":"faq のタイトル 3","faq_ans_id":"0000-0003", {"faq_ans_title":"faq のタイトル 4","faq_ans_id":"0000-0004", {"faq_ans_title":"faq のタイトル 5","faq_ans_id":"0000-0005", {"faq_ans_title":" この中にはない ","faq_ans_id":"" ], "sessionid":"f200320e-e00f-4160-8310-d4df445986ce", "response code":200 faq_ans フィールド内の faq_ans_title と同じ文言をユーザ発話に入力することで 提示された FAQ を選択し FAQ の内容を確認することができます リクエスト例 curl -k -X POST "https://zinrai-pf.jp-east-1.paas.cloud.global.fujitsu.com/communicationsbot/v1/conversation" -H 'content-type: application/json; charset=utf-8' -d '{"input":"faq のタイトル 1","sessionid":"f200320e-e00f-4160-8310-d4df445986ce","user_id":"00123456789","user_name":" 富士通太郎 "' -H "X-Access-Token: [ アクセストークン ]" -H "X-Service-Code: FJAI000010-00006" レスポンス例 { "output":["faq の冒頭文が表示されます 長い場合は次のように先頭の文が...\nhttp://url1"," この回答で解決しましたか? "], "output_url":"http://url1", "user_id":"00123456789", "user_name":" 富士通太郎 ", "faq_ans":[ {"faq_ans_title":" 解決した ","faq_ans_id":"", {"faq_ans_title":" 違う回答を見たい ","faq_ans_id":"" ], "sessionid":"f200320e-e00f-4160-8310-d4df445986ce", "response code":200 8 / 10
2.3 履歴抽出 履歴抽出はユーザとシステムの対話履歴を抽出することができます 2.3.1 対話 ID と紐づく対話情報を出力する対話 ID を指定して対話履歴を抽出します こちらは対話型 Bot にて質問を解決できず メールや電話などの他のサポート窓口に対応を引き継ぐ時に オペレータの方が使用することを想定しています パラメータとして 12 桁の対話 ID[XXXX-XXXX-XX] を指定することで 特定のユーザの対話履歴を抽出します リクエスト例 curl -k -X GET "https://zinrai-pf.jp-east-1.paas.cloud.global.fujitsu.com/communicationsbot/v1/ dlghist?taiwaid=1706-1200-01" -H "X-Access-Token: [ アクセストークン ]" -H "X-Service-Code: FJAI000010-00106" レスポンス例 { "1706-0600-01": [ {"taiwaid":"1706-0600-01","speaker":" 富士通太郎 ","text":"", {"taiwaid":"1706-0600-01","speaker":"greet","text":" おはよう \n6 月のあいさつ文です ", {"taiwaid":"1706-0600-01","speaker":"knowledgeexploring","text":" サポートをいたします どのような件でお困りでしょうか?",... ] "response code":200 2.3.2 レスポンス対話履歴 DB に格納されている対話情報を出力する期間を指定して対話履歴を抽出します 対話履歴を活用して対話型 Bot に対して学習を行わせる前に ユーザのフィードバックが正しくなされているかを確認するために使用することを想定しています パラメータとして取得開始年月日時分秒 [ yyyymmddhhmmss 形式 ] 取得終了年月日時分秒 [ yyyymmddhhmmss 形式 ] を指定します リクエスト例 curl -k -X GET "https://zinrai-pf.jp-east-1.paas.cloud.global.fujitsu.com/communicationsbot/v1/ dlghist?starttime=20170608000000&endtime=20170612000000" -H "X-Access-Token: [ アクセストークン ]" -H "X-Service-Code: FJAI000010-00106" 9 / 10
レスポンス例 {"conversation": {"conversation_id":"1706-0800-09", "messages":[ {"speaker":"user","message_type":"f20231b6-4369-4d03-90c5-bf0607155dc2:chatbot_201706081058298 18","text":"","time":"2017-06-08T10:58:30+09:00", {"speaker":"bot","message_type":"greet","text":" おはようございます \nai チャットサポートです \n サポートをいたします ","time":"2017-06-08t10:58:30+09:00", {"speaker":"bot","message_type":"knowledgeexploring","expanded_information":{"type":"none","remarks": "","text":" どのような件でお問い合わせですか?","time":"2017-06-08T10:58:30+09:00" ] {"conversation": {"conversation_id":"1706-0800-10","messages":[ {"speaker":"user","message_type":"7604f9c5-db74-4d0c-9e37-07655b53a8a2:chatbot_201706081100017 03","text":"","time":"2017-06-08T11:00:02+09:00", {"speaker":"bot","message_type":"greet","text":" こんにちは \nai チャットサポートです \n サポートをいたします ","time":"2017-06-08t11:00:02+09:00", {"speaker":"bot","message_type":"knowledgeexploring","expanded_information":{"type":"none","remarks": "","text":" どのような件でお問い合わせですか?","time":"2017-06-08T11:00:02+09:00", {"speaker":"user","message_type":"7604f9c5-db74-4d0c-9e37-07655b53a8a2:chatbot_201706081100017 03","text":" インターネットにつながらない ","time":"2017-06-08t11:00:06+09:00", {"speaker":"bot","message_type":"knowledgeexploring","expanded_information":{"type":"none","remarks": "","text":" インターネットにつながらない についてのお問い合わせですね ","time":"2017-06-08t11:00:06+09:00", {"speaker":"bot","message_type":"knowledgeexploring","expanded_information":{"type":"answer","remarks ":{"id_type":"akp_id","id":["0000-0001","0000-0002","0000-0003","0000-0004","0000-0005"],"text":" 該当しそうな情報をお探ししました この中にありますでしょうか? 以下よりご選択ください ","time":"2017-06-08t11:00:06+09:00" ] 10 / 10