Как записать все разговоры, происходящие в чате — с помощью Bot framework

#c# #botframework

#c# #botframework

Вопрос:

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

Пример:

Я пытаюсь запечатлеть полный разговор между обеими сторонами по поводу OnCompletionAsyncDelegate события «». Есть ли какая-либо альтернатива для записи всего разговора?

Спасибо.

Комментарии:

1. Что значит записывать весь разговор?

2. @EzequielJadib Я думаю, что он хочет создать полную трассировку всех сообщений, отправленных пользователем, и того, что ответил бот. Поэтому, возможно, будет полезно проанализировать ход происходящего разговора и проанализировать его человеком, чтобы понять, как пользователи используют бота и как бот ведет себя. Я смотрю на то же самое прямо сейчас, я хотел бы централизовать это в одном месте в конструкторе ботов или найти способ перехватывать конвейерный запрос и регистрировать отправленные и полученные сообщения.

Ответ №1:

Если вы используете LUIS, одним из решений является создание собственного класса Dialog, который расширяет LuisDialog, переопределите MessageReceived для расшифровки текста входящего сообщения, а другие ваши диалоги расширяют этот новый класс вместо LuisDialog.

Если вы не используете LUIS, ваш новый класс может просто реализовать эту логику в вашей собственной реализации MessageReceived от IDialog.

Логика транскрибирования должна была бы где-то регистрировать этот текст, возможно, в табличном хранилище или в динамической базе данных.

Это помогает?

Ответ №2:

У меня есть учебное пособие, в котором показано, как записывать разговор в базу данных: реализация базы данных SQL Server с помощью Microsoft Bot Framework

Ключевой фрагмент кода, который фиксирует разговор, является:

 // *************************
// Log to Database
// *************************
// Instantiate the BotData dbContext
Models.BotDataEntities DB = new Models.BotDataEntities();
// Create a new UserLog object
Models.UserLog NewUserLog = new Models.UserLog();
// Set the properties on the UserLog object
NewUserLog.Channel = activity.ChannelId;
NewUserLog.UserID = activity.From.Id;
NewUserLog.UserName = activity.From.Name;
NewUserLog.created = DateTime.UtcNow;
NewUserLog.Message = activity.Text.Truncate(500);
// Add the UserLog object to UserLogs
DB.UserLogs.Add(NewUserLog);
// Save the changes to the database
DB.SaveChanges();
 

Комментарии:

1. у вас есть node.js версия этого