首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式调用Luis intent方法并从表单流传递数据

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

Stack Overflow用户
提问于 2019-02-27 21:05:29
回答 1查看 220关注 0票数 0

我有一个获取用户输入的表单。在完成表单时,我想触发luis意图。我使用json触发意图,但它给了我所有意图的数据,而不是触发最高得分意图。从c#代码调用luis的所有可能方法是什么

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

代码语言:javascript
运行
复制
        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

代码语言:javascript
运行
复制
            };

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

}

Luis意图方法- LuisIntent("DocumentSearch")公共异步任务上下文(IDialogContext context,LuisResult result) {

代码语言:javascript
运行
复制
        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);

    }
EN

回答 1

Stack Overflow用户

发布于 2019-03-01 01:45:07

我认为this文章可能会帮助你在bot框架中根据你的场景使用表单,然后你可以根据返回的最高得分意图调用所需的意图方法。我认为this文章可能对您调用intent方法很有用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54906203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档