Сохранить вопрос, если на этот вопрос нет ответа (новый вопрос) в Базе знаний QnA Maker - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь сохранить новые вопросы, заданные пользователем, моему боту QnA maker в базу данных Azure, чтобы я мог добавить ответы на эти вопросы в свою базу знаний.

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

Так что, пожалуйста, сообщите, как этого добиться, любые ссылки или предложения приветствуются.

1 Ответ

1 голос
/ 05 июля 2019

Мне удалось добиться чего-то подобного с помощью списка SharePoint.

https://stackoverflow.com/a/56612401/9611859

Если вы хотите добавить ответ в список SharePoint без ответа, мне удалось заставить его работать, используяпакет csom-node и Bot Framework v4 / NodeJS.Конечно, это не самое элегантное решение, но оно работает.

Bot.JS

const csomapi = require('../node_modules/csom-node');
settings = require('../settings').settings;

// Set CSOM settings
csomapi.setLoaderOptions({url: settings.siteurl});

Чуть дальше вниз по странице ...

// If no answers were returned from QnA Maker, reply with help.
            } else {
                await context.sendActivity("Er sorry, I don't seem to have an answer.");
                console.log(context.activity.text);
                var response = context.activity.text;
                var authCtx = new AuthenticationContext(settings.siteurl);
                authCtx.acquireTokenForApp(settings.clientId, settings.clientSecret, function (err, data) {

                    var ctx = new SP.ClientContext("/sites/yoursite");  //set root web
                    authCtx.setAuthenticationCookie(ctx);  //authenticate
                        var web = ctx.get_web();
                        var list = web.get_lists().getByTitle('YourList');
                        var creationInfo = new SP.ListItemCreationInformation();
                        var listItem = list.addItem(creationInfo);
                        listItem.set_item('Title', response);
                        listItem.update();
                        ctx.load(listItem);
                        ctx.executeQueryAsync();
                });
            }
...