我使用Microsoft bot框架制作了一个Bot,并使用Luis来匹配意图.一些意图将它引导到QNA,并且一些其他意图将它指向图形api.
我的问题是确定是否应该去qna搜索qna中的相关意图或者是否应该使用图形api来获取结果的最佳方法.
截至目前,我使用多个Luis Intents来匹配正确的意图,然后根据所需的意图功能(无论是将其引导到qna对话框还是图形api对话框)重定向它.
`[LuisModel("模型ID","密钥")]
[Serializable]
public class RootDialog : DispatchDialog
{
//this intent directs to graph api dialog
[LuisIntent(DialogMatches.GraphApiIntent)]
public async Task RunGraphapiIntent(IDialogContext context, IActivity activity)
{
UserMessage = (activity as IMessageActivity).Text;
await context.Forward(new GraphApiDailog(), EndDialog, context.Activity, CancellationToken.None);
}
//This intent directs to qna dialog
[LuisIntent(DialogMatches.BlogMatch)]
public async Task RunBlogDialogQna(IDialogContext context, LuisResult result)
{
var userQuestion = (context.Activity as Activity).Text;
(context.Activity as Activity).Text = DialogMatches.BlogMatch;
await context.Forward(new BasicQnAMakerDialog(), this.EndDialog, context.Activity, CancellationToken.None);
}
`
Run Code Online (Sandbox Code Playgroud)
但是这种方法要求我匹配每个意图使用 [LuisIntent("intentstring")]..因为我可以有50或100的意图,这对50个意图编写50个函数是不实际的.
我找到了一种方法来调用api来从 …
c# azure-ad-graph-api botframework azure-language-understanding azure-qna-maker