#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 версия этого