Можно ли вставить / вставить историю прошлых разговоров пользователя в диалоговое окно чата? - PullRequest
2 голосов
/ 02 июля 2019

Я пытаюсь вставить / вставить прошлый разговор пользователя в окно чата платформы ботов.В настоящее время мы используем фреймворки bot v3 и v4, а в LuisDialog контекст IDialogContext типа. ConversationData - это место, где хранятся данные разговора, мы собираем их оттуда и сохраняем в хранилище.Затем мы можем получить его обратно, но свойство context.ConversationData доступно только для чтения.Так есть ли способ выполнить вставку прошлой истории разговоров пользователя в диалоги Microsoft Bot Framework или это запрещено дизайном?Если это может быть выполнено в Microsoft Bot Framework v3 или v4, пожалуйста, дайте мне знать.Спасибо!

Я попытался заменить объект context.conversationData, но, поскольку он доступен только для чтения, он не сработал.Я также вижу, что в ConversationData есть метод, который является: context.ConversationData.SetValue (строковый ключ, значение T), но не уверен, предназначен ли он для выполнения того, что я пытаюсь.

1 Ответ

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

Важно отметить, что история разговоров отличается от context.ConversationData.ConversatonData - указатель на данные, находящиеся в области охвата dialog.id, и по умолчанию содержит стек диалогов (в Botnet Dotnet v3, каждый весь диалог двоично сериализуется / десериализуется в и из ConversationData).Вы также можете использовать это свойство для хранения / извлечения пользовательских данных, относящихся к беседе.В Bot Builder V3 интерфейс для хранения истории разговоров на самом деле IActivityLogger, в то время как в Bot Builder V4 интерфейс ITranscriptLogger.Дополнительную информацию можно найти здесь

Как только история разговора будет правильно сохранена, следующим шагом будет отправка этой истории разговору.Оба SDK V3 и V4 реализуют конечную точку SendConversationHistoryAsync: V3 , V4 В настоящее время у нас нет образца, демонстрирующего, как это сделать, но мы работаем над этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...