繁体   English   中英

如何以编程方式调用Luis Intent方法并从表单流传递数据

[英]How to Call Luis intent method programatically and pass data from form flow

我有一个要获取用户输入的表单。 完成表格后,我想触发luis intent。我使用json触发了intent,但它为我提供了所有intent的数据,而不是触发了最高得分的intent。 从C#代码调用luis的所有可能方法是什么

表单代码-公共静态IForm BuildForm(){

        OnCompletionAsyncDelegate<DocumentFormFlow> processDocumentSearch = async (context, Docdata) =>
        {
            string message = "Thanks for using chat bot Please wait while we search your document , Welcome Again !!! :)";
            await context.PostAsync(message);
            string query = "fetch me " + Docdata.ClientName + " " + Docdata.SelectDocument + "document";

//这里我要触发下面给出的luis intent方法DocumentSearchIntent

            };

        return new FormBuilder<DocumentFormFlow>()
                .Message("Welcome to the  Chat bot !")
                .OnCompletion(processDocumentSearch)
                .Build();

}

Luis意图方法-[LuisIntent(“ DocumentSearch”)]公共异步任务DocumentSearchIntent(IDialogContext上下文,LuisResult结果){

        FilesFound.Clear();
        var msj = context.MakeMessage();
        var clientname = string.Empty;
        var documenttype = string.Empty;
        EntityRecommendation rec;
        if (result.TryFindEntity("ClientName", out rec))
            clientname = rec.Entity;
        if (result.TryFindEntity("DocumentType", out rec))
            documenttype = rec.Entity;
        if (documenttype.Contains("."))
            documenttype = documenttype.Replace(" ", "");

        if (clientname == string.Empty || documenttype == string.Empty)
            msj.Text = "Could you please provide both input for client name and document.";
        else
        {
            DirSearch(path, clientname, documenttype);



            int count = 0;
            do
            {
                if (FilesFound.Count == 0)
                {
                    msj.Text = "No document found for this search";
                    break;
                }

                msj.Text += FilesFound[count].ToString();
                count++;
            } while (count < FilesFound.Count);


        }
        await context.PostAsync(msj);
        context.Wait(MessageReceived);

    }

我觉得这个文章可以帮助你在BOT框架中使用的形式根据你的情况,你可以调用基于返回的得分最高的意图所需的意图方法。 我想, 文章给你打电话的意图方法可能是有用的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM