Сохранение данных разговора с ботом как сущностью в таблице хранилища azure (node.js)

В настоящее время я работаю над ботом, в моем проекте я хочу хранить данные бота (т.е. пакеты свойств пользователя, разговора и частного разговора), в основном то, что пользовательский ввод и ответ вернули в хранилище Azure с использованием Node.js. Я могу войти в консоль, но не в хранилище Azure.

Подскажите, пожалуйста, как реализовать описанную выше концепцию.

Попробуйте использовать session.userData(). Для получения дополнительной информации проверьте docs.microsoft.com/en-us/azure/bot-service/nodejs/…

Master Chief 11.04.2018 15:08

Вы хотите вести журнал всей истории разговоров или только ее части?

D4RKCIDE 11.04.2018 18:42

@JasonSowers записывает всю историю разговоров

GuessssMe 12.04.2018 03:29
0
3
297
1

Ответы 1

Для хранения данных о состоянии диалога в хранилище таблиц Azure вы можете легко использовать Управление данными настраиваемого состояния с помощью хранилища таблиц Azure для Node.js.

Чтобы хранить всю историю сообщений разговора, вы можете использовать промежуточное программное обеспечение receive и send, добавить собственную логику для вставки истории в хранилище Talbe. Обратите внимание на следующий фрагмент кода:

bot.use({
    receive: (evt, next) => {
        console.log(evt);
        if (evt.type == 'message') {
            azureTableClient.insertOrReplace(evt.address.user.id + `-` + new Date().valueOf(), evt.type, `[USER to BOT]: ${evt.text}`, false, ((err, etag, res) => {
                if (err) {
                    console.log(er)
                }
            }))
        }
        next();
    },
    send: (evt, next) => {
        // console.log(evt);
        azureTableClient.insertOrReplace(evt.address.user.id + `-` + new Date().valueOf(), evt.type, `[BOT to USER]: ${evt.text}`, false, ((err, etag, res) => {
            if (err) {
                console.log(er)
            }
        }))
        next();
    }
})

Другие вопросы по теме