how to make bot to search particular intent when a user selects particular selection using luis c# iam trying...
iam trying to call particular intent when someone selects any intent eg:if user selects cmtools intent then the user can ask questions related to cmtools only. Other than cmtools if user asks question then the bot should rply Sorry not a good match.Please help me with the code to call intents from switch case or any other idea is appreciated.
Thanks in advance!
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Builder.Luis;
using Microsoft.Bot.Builder.Luis.Models;
using Newtonsoft.Json;
using System.Text;
namespace Microsoft.Bot.Sample.LuisBot
{
[LuisModel("id","key")]
[Serializable]
public class BasicLuisDialog : LuisDialog<object>
{
// QnA Maker global settings
// assumes all KBs are created with same Azure service
static string qnamaker_endpointKey = "endpointkey";
static string qnamaker_endpointDomain = "chatbot";
// QnA Maker Knowledge base
static string AIS_KB= "id1";
static string Speed_KB = "id2";
static string CMTools_KB = "id3";
// QnA Maker Finance Knowledge base
// Instantiate the knowledge bases
public QnAMakerService AIS_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", AIS_KB, qnamaker_endpointKey);
public QnAMakerService Speed_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", Speed_KB, qnamaker_endpointKey);
public QnAMakerService CMTools_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", CMTools_KB, qnamaker_endpointKey);
public const string AIS_KBIntent = "AIS_KB";
public const string Speed_KBIntent = "Speed_KB"; // new intent
public const string CMTools_KBIntent = "CMTools_KB"; // new intent
public class Metadata
{
public string name { get; set; }
public string value { get; set; }
}
public class Answer
{
public IList<string> questions { get; set; }
public string answer { get; set; }
public double score { get; set; }
public int id { get; set; }
public string source { get; set; }
public IList<object> keywords { get; set; }
public IList<Metadata> metadata { get; set; }
}
public class QnAAnswer
{
public IList<Answer> answers { get; set; }
}
[Serializable]
public class QnAMakerService
{
private string qnaServiceHostName;
private string knowledgeBaseId;
private string endpointKey;
public QnAMakerService(string hostName, string kbId, string endpointkey)
{
qnaServiceHostName = hostName;
knowledgeBaseId = kbId;
endpointKey = endpointkey;
}
async Task<string> Post(string uri, string body)
{
using (var client = new HttpClient())
using (var request = new HttpRequestMessage())
{
request.Method = HttpMethod.Post;
request.RequestUri = new Uri(uri);
request.Content = new StringContent(body, Encoding.UTF8, "application/json");
request.Headers.Add("Authorization", "EndpointKey " + endpointKey);
var response = await client.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
}
public async Task<string> GetAnswer(string question)
{
string uri = qnaServiceHostName + "/qnamaker/knowledgebases/" + knowledgeBaseId + "/generateAnswer";
string questionJSON = @"{'question': '" + question + "'}";
var response = await Post(uri, questionJSON);
var answers = JsonConvert.DeserializeObject<QnAAnswer>(response);
if (answers.answers.Count > 0)
{
return answers.answers[0].answer;
}
else
{
return "No good match found.";
}
}
}
public enum Selection
{
CMTools, AIS, Speed
}
[LuisIntent("AppSelection")]
private async Task AppSelection(IDialogContext context, LuisResult result)
{
var options = new Selection { Selection.CMTools, Selection.AIS, Selection.Speed };
var descriptions = new string { "CMTools", "AIS", "Speed" };
PromptDialog.Choice<Selection>(context, ResumeAfterOrderSelectionClarification,options, "Please choose your application?", descriptions: descriptions );
}
private async Task ResumeAfterOrderSelectionClarification(IDialogContext context, IAwaitable<Selection> result,LuisResult result1)
{
var selection = await result;
await context.PostAsync($"Thanks for choosing {selection}. how can I help you ?");
switch(selection){
case CMTools:
await context.PostAsync($"CMTools");
//code needed to call CMTools_KB intent
break;
case AIS:
await context.PostAsync($"AIS_KB");
//code needed to call AIS_KB intent
break;
case Speed:
await context.PostAsync($"Speed_KB");
// Ask the HR knowledge base
//code needed to call Speed_KB intent
break;
default:
await context.PostAsync($"testing.........");
}
}
[LuisIntent("")]
[LuisIntent("None")]
public async Task NoneIntent(IDialogContext context, LuisResult result)
{
HttpClient client = new HttpClient();
await this.ShowLuisResult(context, result);
}
[LuisIntent("AIS_KB")]
public async Task AIS_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await AIS_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
[LuisIntent("Speed_KB")]
public async Task Speed_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await Speed_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
[LuisIntent("CMTools_KB")]
public async Task CMTools_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await CMTools_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
private async Task ShowLuisResult(IDialogContext context, LuisResult result)
{
await context.PostAsync($"Sorry , I am not able to help you with this questions,Please connect our L2 Support Group");
var qnaMakerAnswer = await CMTools_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
await context.PostAsync($"it is finished ");
context.Wait(MessageReceived);
}
}
}
chatbot
add a comment |
iam trying to call particular intent when someone selects any intent eg:if user selects cmtools intent then the user can ask questions related to cmtools only. Other than cmtools if user asks question then the bot should rply Sorry not a good match.Please help me with the code to call intents from switch case or any other idea is appreciated.
Thanks in advance!
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Builder.Luis;
using Microsoft.Bot.Builder.Luis.Models;
using Newtonsoft.Json;
using System.Text;
namespace Microsoft.Bot.Sample.LuisBot
{
[LuisModel("id","key")]
[Serializable]
public class BasicLuisDialog : LuisDialog<object>
{
// QnA Maker global settings
// assumes all KBs are created with same Azure service
static string qnamaker_endpointKey = "endpointkey";
static string qnamaker_endpointDomain = "chatbot";
// QnA Maker Knowledge base
static string AIS_KB= "id1";
static string Speed_KB = "id2";
static string CMTools_KB = "id3";
// QnA Maker Finance Knowledge base
// Instantiate the knowledge bases
public QnAMakerService AIS_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", AIS_KB, qnamaker_endpointKey);
public QnAMakerService Speed_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", Speed_KB, qnamaker_endpointKey);
public QnAMakerService CMTools_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", CMTools_KB, qnamaker_endpointKey);
public const string AIS_KBIntent = "AIS_KB";
public const string Speed_KBIntent = "Speed_KB"; // new intent
public const string CMTools_KBIntent = "CMTools_KB"; // new intent
public class Metadata
{
public string name { get; set; }
public string value { get; set; }
}
public class Answer
{
public IList<string> questions { get; set; }
public string answer { get; set; }
public double score { get; set; }
public int id { get; set; }
public string source { get; set; }
public IList<object> keywords { get; set; }
public IList<Metadata> metadata { get; set; }
}
public class QnAAnswer
{
public IList<Answer> answers { get; set; }
}
[Serializable]
public class QnAMakerService
{
private string qnaServiceHostName;
private string knowledgeBaseId;
private string endpointKey;
public QnAMakerService(string hostName, string kbId, string endpointkey)
{
qnaServiceHostName = hostName;
knowledgeBaseId = kbId;
endpointKey = endpointkey;
}
async Task<string> Post(string uri, string body)
{
using (var client = new HttpClient())
using (var request = new HttpRequestMessage())
{
request.Method = HttpMethod.Post;
request.RequestUri = new Uri(uri);
request.Content = new StringContent(body, Encoding.UTF8, "application/json");
request.Headers.Add("Authorization", "EndpointKey " + endpointKey);
var response = await client.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
}
public async Task<string> GetAnswer(string question)
{
string uri = qnaServiceHostName + "/qnamaker/knowledgebases/" + knowledgeBaseId + "/generateAnswer";
string questionJSON = @"{'question': '" + question + "'}";
var response = await Post(uri, questionJSON);
var answers = JsonConvert.DeserializeObject<QnAAnswer>(response);
if (answers.answers.Count > 0)
{
return answers.answers[0].answer;
}
else
{
return "No good match found.";
}
}
}
public enum Selection
{
CMTools, AIS, Speed
}
[LuisIntent("AppSelection")]
private async Task AppSelection(IDialogContext context, LuisResult result)
{
var options = new Selection { Selection.CMTools, Selection.AIS, Selection.Speed };
var descriptions = new string { "CMTools", "AIS", "Speed" };
PromptDialog.Choice<Selection>(context, ResumeAfterOrderSelectionClarification,options, "Please choose your application?", descriptions: descriptions );
}
private async Task ResumeAfterOrderSelectionClarification(IDialogContext context, IAwaitable<Selection> result,LuisResult result1)
{
var selection = await result;
await context.PostAsync($"Thanks for choosing {selection}. how can I help you ?");
switch(selection){
case CMTools:
await context.PostAsync($"CMTools");
//code needed to call CMTools_KB intent
break;
case AIS:
await context.PostAsync($"AIS_KB");
//code needed to call AIS_KB intent
break;
case Speed:
await context.PostAsync($"Speed_KB");
// Ask the HR knowledge base
//code needed to call Speed_KB intent
break;
default:
await context.PostAsync($"testing.........");
}
}
[LuisIntent("")]
[LuisIntent("None")]
public async Task NoneIntent(IDialogContext context, LuisResult result)
{
HttpClient client = new HttpClient();
await this.ShowLuisResult(context, result);
}
[LuisIntent("AIS_KB")]
public async Task AIS_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await AIS_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
[LuisIntent("Speed_KB")]
public async Task Speed_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await Speed_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
[LuisIntent("CMTools_KB")]
public async Task CMTools_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await CMTools_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
private async Task ShowLuisResult(IDialogContext context, LuisResult result)
{
await context.PostAsync($"Sorry , I am not able to help you with this questions,Please connect our L2 Support Group");
var qnaMakerAnswer = await CMTools_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
await context.PostAsync($"it is finished ");
context.Wait(MessageReceived);
}
}
}
chatbot
1
Could you please try to reduce the amount of your code to make more clear which part is relevant to your question?
– Ferdinand Fejskid
Nov 21 '18 at 11:58
Just to clarify, by 'if user selects cmtools intent then the user can ask questions related to cmtools only' do you mean, the user can choose from a list? Because LUIS doesn't quite work this way.
– JJ_Wailes
Nov 21 '18 at 21:13
add a comment |
iam trying to call particular intent when someone selects any intent eg:if user selects cmtools intent then the user can ask questions related to cmtools only. Other than cmtools if user asks question then the bot should rply Sorry not a good match.Please help me with the code to call intents from switch case or any other idea is appreciated.
Thanks in advance!
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Builder.Luis;
using Microsoft.Bot.Builder.Luis.Models;
using Newtonsoft.Json;
using System.Text;
namespace Microsoft.Bot.Sample.LuisBot
{
[LuisModel("id","key")]
[Serializable]
public class BasicLuisDialog : LuisDialog<object>
{
// QnA Maker global settings
// assumes all KBs are created with same Azure service
static string qnamaker_endpointKey = "endpointkey";
static string qnamaker_endpointDomain = "chatbot";
// QnA Maker Knowledge base
static string AIS_KB= "id1";
static string Speed_KB = "id2";
static string CMTools_KB = "id3";
// QnA Maker Finance Knowledge base
// Instantiate the knowledge bases
public QnAMakerService AIS_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", AIS_KB, qnamaker_endpointKey);
public QnAMakerService Speed_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", Speed_KB, qnamaker_endpointKey);
public QnAMakerService CMTools_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", CMTools_KB, qnamaker_endpointKey);
public const string AIS_KBIntent = "AIS_KB";
public const string Speed_KBIntent = "Speed_KB"; // new intent
public const string CMTools_KBIntent = "CMTools_KB"; // new intent
public class Metadata
{
public string name { get; set; }
public string value { get; set; }
}
public class Answer
{
public IList<string> questions { get; set; }
public string answer { get; set; }
public double score { get; set; }
public int id { get; set; }
public string source { get; set; }
public IList<object> keywords { get; set; }
public IList<Metadata> metadata { get; set; }
}
public class QnAAnswer
{
public IList<Answer> answers { get; set; }
}
[Serializable]
public class QnAMakerService
{
private string qnaServiceHostName;
private string knowledgeBaseId;
private string endpointKey;
public QnAMakerService(string hostName, string kbId, string endpointkey)
{
qnaServiceHostName = hostName;
knowledgeBaseId = kbId;
endpointKey = endpointkey;
}
async Task<string> Post(string uri, string body)
{
using (var client = new HttpClient())
using (var request = new HttpRequestMessage())
{
request.Method = HttpMethod.Post;
request.RequestUri = new Uri(uri);
request.Content = new StringContent(body, Encoding.UTF8, "application/json");
request.Headers.Add("Authorization", "EndpointKey " + endpointKey);
var response = await client.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
}
public async Task<string> GetAnswer(string question)
{
string uri = qnaServiceHostName + "/qnamaker/knowledgebases/" + knowledgeBaseId + "/generateAnswer";
string questionJSON = @"{'question': '" + question + "'}";
var response = await Post(uri, questionJSON);
var answers = JsonConvert.DeserializeObject<QnAAnswer>(response);
if (answers.answers.Count > 0)
{
return answers.answers[0].answer;
}
else
{
return "No good match found.";
}
}
}
public enum Selection
{
CMTools, AIS, Speed
}
[LuisIntent("AppSelection")]
private async Task AppSelection(IDialogContext context, LuisResult result)
{
var options = new Selection { Selection.CMTools, Selection.AIS, Selection.Speed };
var descriptions = new string { "CMTools", "AIS", "Speed" };
PromptDialog.Choice<Selection>(context, ResumeAfterOrderSelectionClarification,options, "Please choose your application?", descriptions: descriptions );
}
private async Task ResumeAfterOrderSelectionClarification(IDialogContext context, IAwaitable<Selection> result,LuisResult result1)
{
var selection = await result;
await context.PostAsync($"Thanks for choosing {selection}. how can I help you ?");
switch(selection){
case CMTools:
await context.PostAsync($"CMTools");
//code needed to call CMTools_KB intent
break;
case AIS:
await context.PostAsync($"AIS_KB");
//code needed to call AIS_KB intent
break;
case Speed:
await context.PostAsync($"Speed_KB");
// Ask the HR knowledge base
//code needed to call Speed_KB intent
break;
default:
await context.PostAsync($"testing.........");
}
}
[LuisIntent("")]
[LuisIntent("None")]
public async Task NoneIntent(IDialogContext context, LuisResult result)
{
HttpClient client = new HttpClient();
await this.ShowLuisResult(context, result);
}
[LuisIntent("AIS_KB")]
public async Task AIS_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await AIS_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
[LuisIntent("Speed_KB")]
public async Task Speed_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await Speed_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
[LuisIntent("CMTools_KB")]
public async Task CMTools_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await CMTools_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
private async Task ShowLuisResult(IDialogContext context, LuisResult result)
{
await context.PostAsync($"Sorry , I am not able to help you with this questions,Please connect our L2 Support Group");
var qnaMakerAnswer = await CMTools_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
await context.PostAsync($"it is finished ");
context.Wait(MessageReceived);
}
}
}
chatbot
iam trying to call particular intent when someone selects any intent eg:if user selects cmtools intent then the user can ask questions related to cmtools only. Other than cmtools if user asks question then the bot should rply Sorry not a good match.Please help me with the code to call intents from switch case or any other idea is appreciated.
Thanks in advance!
using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Builder.Luis;
using Microsoft.Bot.Builder.Luis.Models;
using Newtonsoft.Json;
using System.Text;
namespace Microsoft.Bot.Sample.LuisBot
{
[LuisModel("id","key")]
[Serializable]
public class BasicLuisDialog : LuisDialog<object>
{
// QnA Maker global settings
// assumes all KBs are created with same Azure service
static string qnamaker_endpointKey = "endpointkey";
static string qnamaker_endpointDomain = "chatbot";
// QnA Maker Knowledge base
static string AIS_KB= "id1";
static string Speed_KB = "id2";
static string CMTools_KB = "id3";
// QnA Maker Finance Knowledge base
// Instantiate the knowledge bases
public QnAMakerService AIS_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", AIS_KB, qnamaker_endpointKey);
public QnAMakerService Speed_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", Speed_KB, qnamaker_endpointKey);
public QnAMakerService CMTools_KBQnAService = new QnAMakerService("https://" + qnamaker_endpointDomain + ".azurewebsites.net", CMTools_KB, qnamaker_endpointKey);
public const string AIS_KBIntent = "AIS_KB";
public const string Speed_KBIntent = "Speed_KB"; // new intent
public const string CMTools_KBIntent = "CMTools_KB"; // new intent
public class Metadata
{
public string name { get; set; }
public string value { get; set; }
}
public class Answer
{
public IList<string> questions { get; set; }
public string answer { get; set; }
public double score { get; set; }
public int id { get; set; }
public string source { get; set; }
public IList<object> keywords { get; set; }
public IList<Metadata> metadata { get; set; }
}
public class QnAAnswer
{
public IList<Answer> answers { get; set; }
}
[Serializable]
public class QnAMakerService
{
private string qnaServiceHostName;
private string knowledgeBaseId;
private string endpointKey;
public QnAMakerService(string hostName, string kbId, string endpointkey)
{
qnaServiceHostName = hostName;
knowledgeBaseId = kbId;
endpointKey = endpointkey;
}
async Task<string> Post(string uri, string body)
{
using (var client = new HttpClient())
using (var request = new HttpRequestMessage())
{
request.Method = HttpMethod.Post;
request.RequestUri = new Uri(uri);
request.Content = new StringContent(body, Encoding.UTF8, "application/json");
request.Headers.Add("Authorization", "EndpointKey " + endpointKey);
var response = await client.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
}
public async Task<string> GetAnswer(string question)
{
string uri = qnaServiceHostName + "/qnamaker/knowledgebases/" + knowledgeBaseId + "/generateAnswer";
string questionJSON = @"{'question': '" + question + "'}";
var response = await Post(uri, questionJSON);
var answers = JsonConvert.DeserializeObject<QnAAnswer>(response);
if (answers.answers.Count > 0)
{
return answers.answers[0].answer;
}
else
{
return "No good match found.";
}
}
}
public enum Selection
{
CMTools, AIS, Speed
}
[LuisIntent("AppSelection")]
private async Task AppSelection(IDialogContext context, LuisResult result)
{
var options = new Selection { Selection.CMTools, Selection.AIS, Selection.Speed };
var descriptions = new string { "CMTools", "AIS", "Speed" };
PromptDialog.Choice<Selection>(context, ResumeAfterOrderSelectionClarification,options, "Please choose your application?", descriptions: descriptions );
}
private async Task ResumeAfterOrderSelectionClarification(IDialogContext context, IAwaitable<Selection> result,LuisResult result1)
{
var selection = await result;
await context.PostAsync($"Thanks for choosing {selection}. how can I help you ?");
switch(selection){
case CMTools:
await context.PostAsync($"CMTools");
//code needed to call CMTools_KB intent
break;
case AIS:
await context.PostAsync($"AIS_KB");
//code needed to call AIS_KB intent
break;
case Speed:
await context.PostAsync($"Speed_KB");
// Ask the HR knowledge base
//code needed to call Speed_KB intent
break;
default:
await context.PostAsync($"testing.........");
}
}
[LuisIntent("")]
[LuisIntent("None")]
public async Task NoneIntent(IDialogContext context, LuisResult result)
{
HttpClient client = new HttpClient();
await this.ShowLuisResult(context, result);
}
[LuisIntent("AIS_KB")]
public async Task AIS_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await AIS_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
[LuisIntent("Speed_KB")]
public async Task Speed_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await Speed_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
[LuisIntent("CMTools_KB")]
public async Task CMTools_KBIntent(IDialogContext context, LuisResult result)
{
// Ask the HR knowledge base
var qnaMakerAnswer = await CMTools_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
context.Wait(MessageReceived);
}
private async Task ShowLuisResult(IDialogContext context, LuisResult result)
{
await context.PostAsync($"Sorry , I am not able to help you with this questions,Please connect our L2 Support Group");
var qnaMakerAnswer = await CMTools_KBQnAService.GetAnswer(result.Query);
await context.PostAsync($"{qnaMakerAnswer}");
await context.PostAsync($"it is finished ");
context.Wait(MessageReceived);
}
}
}
chatbot
chatbot
asked Nov 21 '18 at 11:29
Azhagar MAzhagar M
12
12
1
Could you please try to reduce the amount of your code to make more clear which part is relevant to your question?
– Ferdinand Fejskid
Nov 21 '18 at 11:58
Just to clarify, by 'if user selects cmtools intent then the user can ask questions related to cmtools only' do you mean, the user can choose from a list? Because LUIS doesn't quite work this way.
– JJ_Wailes
Nov 21 '18 at 21:13
add a comment |
1
Could you please try to reduce the amount of your code to make more clear which part is relevant to your question?
– Ferdinand Fejskid
Nov 21 '18 at 11:58
Just to clarify, by 'if user selects cmtools intent then the user can ask questions related to cmtools only' do you mean, the user can choose from a list? Because LUIS doesn't quite work this way.
– JJ_Wailes
Nov 21 '18 at 21:13
1
1
Could you please try to reduce the amount of your code to make more clear which part is relevant to your question?
– Ferdinand Fejskid
Nov 21 '18 at 11:58
Could you please try to reduce the amount of your code to make more clear which part is relevant to your question?
– Ferdinand Fejskid
Nov 21 '18 at 11:58
Just to clarify, by 'if user selects cmtools intent then the user can ask questions related to cmtools only' do you mean, the user can choose from a list? Because LUIS doesn't quite work this way.
– JJ_Wailes
Nov 21 '18 at 21:13
Just to clarify, by 'if user selects cmtools intent then the user can ask questions related to cmtools only' do you mean, the user can choose from a list? Because LUIS doesn't quite work this way.
– JJ_Wailes
Nov 21 '18 at 21:13
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53411136%2fhow-to-make-bot-to-search-particular-intent-when-a-user-selects-particular-selec%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53411136%2fhow-to-make-bot-to-search-particular-intent-when-a-user-selects-particular-selec%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Could you please try to reduce the amount of your code to make more clear which part is relevant to your question?
– Ferdinand Fejskid
Nov 21 '18 at 11:58
Just to clarify, by 'if user selects cmtools intent then the user can ask questions related to cmtools only' do you mean, the user can choose from a list? Because LUIS doesn't quite work this way.
– JJ_Wailes
Nov 21 '18 at 21:13