QnA Makerの回答にfollow-up promptを追加しています。
webチャットから回答は表示できますが、回答のfollow-up promptを表示させる方法がわかりません。
js版のサンプルは見つけましたが、これをc#で実現するにはどうしたらよいでしょうか?
js
1qnaResultHelper.js 2const { MessageFactory } = require('botbuilder'); 3 4/** 5 * QnA Maker から返ってきた答えを適切な形にしてクライアントへ返す 6 * 7 * @param {string} qnaResult QnA Maker から返ってきたanswer 8 * @returns Activity 9 */ 10module.exports.createAnswer = function(context, qnaResult) { 11 12 if (qnaResult.context && qnaResult.context.prompts && qnaResult.context.prompts.length > 0) { 13 // answerにfollow-up promptが付いている 14 return createPrompt(qnaResult); 15 } else { 16 return qnaResult.answer; 17 } 18} 19 20/** 21 * follow-up prompt をクライアントへ返す 22 * 23 * @param {QnAMakerResult} qnaResult 24 * @returns Activity 25 */ 26function createPrompt(qnaResult) { 27 let title = qnaResult.answer; 28 let prompts = qnaResult.context.prompts; 29 let buttons = []; 30 31 // DisplayOrderで並べ替え 32 prompts.sort(function(a, b) { 33 if (a.displayOrder == b.displayOrder) { 34 return 0; 35 } else if (a.displayOrder < b.displayOrder) { 36 return -1; 37 } 38 return 1; 39 }); 40 41 // follow-up promptのボタンを作る 42 for (let prompt of prompts) { 43 buttons.push(prompt.displayText); 44 } 45 46 return MessageFactory.suggestedActions(buttons, title); 47}
js
1qnaBot.js 2this.onMessage(async (context, next) => { 3 this.logger.log('Calling QnA Maker'); 4 5 const qnaResults = await this.qnaMaker.getAnswers(context); 6 7 // If an answer was received from QnA Maker, send the answer back to the user. 8 if (qnaResults[0]) { 9 // 自作したHelperのメソッドを呼び出す 10 let answer = QnAResultHelper.createAnswer(context, qnaResults[0]); 11 await context.sendActivity(answer); 12 13 // If no answers were returned from QnA Maker, reply with help. 14 } else { 15 await context.sendActivity('お答えできません。他の言い方で質問してみてください。'); 16 } 17 18 // By calling next() you ensure that the next BotHandler is run. 19 await next(); 20});
検索しただけで私は何一つわかっていません。
なんとなくコードの雰囲気が似ている気がするのですがどうでしょう?
[Implement the Follow-up prompt for QnA Bot](https://www.joji.me/en-us/blog/implement-follow-up-prompt-for-qna-bot/
あなたの回答
tips
プレビュー