Как вызвать метод намерения Луиса программно и передать данные из потока формы - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть форма, где я получаю пользовательский ввод.После завершения формы я хочу вызвать намерение Луиса. Я использовал json, чтобы вызвать намерение, но оно дало мне данные со всем намерением вместо того, чтобы вызывать самое важное.каковы все возможные способы вызова luis из кода c #

код формы - общедоступный static 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 DocumentSearchIntent, приведенный ниже

            };

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

}

Метод намерения Луиса - [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);

    }

1 Ответ

0 голосов
/ 28 февраля 2019

Я думаю, эта статья может помочь вам в использовании формы в соответствии с вашим сценарием в среде ботов. Затем вы можете вызвать метод требуемого намерения на основе возвращенного верхнего намерения оценки.Я думаю, эта статья может быть полезна для вызова метода намерения.

...