Watson Conversation - Хранение и управление контекстом для пользователей в приложении

Мы используем службу Watson Conversation для работы с чат-ботом. Мы хотим настроить стандартную последовательность общения с пользователями с помощью Dialog, намерений и сущностей. Мы пишем приложение на java для связи со службой разговора через RESTful API. Я понимаю, что мы должны поддерживать контекст и передавать его между приложением и Conversation до тех пор, пока разговор не закончится. Я понимаю, что для этого нам необходимо хранить контекст каждого пользователя в нашем приложении и управлять им. Не могли бы вы пояснить, правильно ли я понимаю? Также подходит ли Java для этой функции? Спасибо


person Raghu Bandi    schedule 09.03.2017    source источник
comment
Репозиторий botkit-middleware имеет пример в Node.js, который управляет этими контекстами github.com/ watson-developer-cloud / botkit-middleware   -  person data_henrik    schedule 09.03.2017


Ответы (2)


У каждого разговора есть свой собственный идентификатор_ беседы и свой собственный контекст в Json, отправленном из службы. Таким образом, вам не нужно хранить каждый контекст в вашем приложении. Можно, но это не обязательно.

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

person Danilo Silveira    schedule 09.03.2017
comment
Спасибо Данило. Это означает, что для любого пользователя я буду хранить не более одного контекста в контекстной карте в любой момент времени. Контекст будет обновляться после каждого ответа от службы разговора. Если идентификатор пользователя уникален, мне не нужно беспокоиться о беседе. Для каждого запроса пользователя я извлекаю контекст для пользователя, обновляю его и отправляю обратно в службу разговора. Это правильно? - person Raghu Bandi; 10.03.2017
comment
Спасибо Данило. Я имею в виду, что для каждого пользователя я буду хранить не более одного контекста в контекстной карте в любой момент времени. Контекст будет обновляться после каждого ответа от службы разговора. Если идентификатор пользователя уникален, мне не нужно беспокоиться о беседе. Для каждого запроса пользователя я извлекаю контекст для пользователя, обновляю его и отправляю обратно в службу разговора. Это правильно? - person Raghu Bandi; 10.03.2017
comment
Да это оно. Вы извлекаете контекст из json, обновляете текст сообщения и отправляете его обратно. Вам не о чем больше беспокоиться. - person Danilo Silveira; 10.03.2017

Существует ряд SDK для разных языков, которые облегчают вам задачу.

https://github.com/watson-developer-cloud

person Simon O'Doherty    schedule 09.03.2017
comment
Спасибо, Саймон. Мы будем использовать java SDK для связи со службой разговора. Однако мы должны позаботиться о хранении карты, содержащей пользователей и их контексты, через логику нашего приложения. Правильно, Саймон? - person Raghu Bandi; 09.03.2017
comment
Привет, Дуди, я подумал, что ты поможешь мне ответить на stackoverflow.com/questions/42723050/ - person Raghu Bandi; 13.03.2017