Как добавить параметр в существующий список параметров из предыдущего контекста в Dialogflow? - PullRequest
0 голосов
/ 13 июня 2018

Я создаю чат-бота, который запрашивает у пользователей симптомы, по одному за раз.

Существует один объект @symptom, представляющий собой список.Я хотел бы выяснить, как добавить каждый новый симптом в список параметров симптомов из существующих контекстов.

Например,

Bot: Пожалуйста, введите свой первыйсимптом.

Пользователь: Кашель

symptoms = ['cough']

Бот: Пожалуйста, введите ваш второй симптом.

Лихорадка: Лихорадка

symptoms = ['cough', 'fever']

Бот: Пожалуйста, введите свой третий симптом.

Пользователь: Дыхание

symptoms = ['cough', 'fever']

Как мне создать такой поток?

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

1 Ответ

0 голосов
/ 14 июня 2018

Это тоже - это скорее проблема проектирования :) Вы можете примерно достичь того, что вы описали, с помощью намерений и контекстов последующей деятельности, но лучшим способом было бы более четко разделить намерение и сопоставление параметровот любого вида дальнейшей внутренней обработки.

Вы должны, если вы еще этого не сделали, определить свой symptom объект как объект отображения разработчика .Это дает возможность сопоставить произвольное количество синонимов к одному опорному значению:

reference value: fever
synonyms: fever, feverishness, high temperature, febricity, febrility

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

Эта структура гарантирует, что вы всегда получите параметр из четко определенного набора значений, даже если фактический пользовательский ввод имеет гораздо большийизменчивость.Любая дальнейшая обработка этих параметров должна быть частью вашего внутреннего кода и не должна быть привязана к агенту Dialogflow.В идеале вы должны думать о ссылочных значениях как о API между пользовательским вводом и бизнес-логикой бэкэнда.

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