Как вернуть сообщение пользователя при резервном намерении?

#dialogflow-es

#dialogflow-es

Вопрос:

У меня есть бот, который отвечает на вопрос, связанный с определенной темой. Однако пользователь может сказать что-то, что не соответствует ни одному из моих намерений. Эти фразы должны храниться в базе данных.

До сих пор я выяснил, что мне нужно создать fallback intent . Как я могу сделать так, чтобы при запуске это намерение возвращало ответ с текстом, который вызвал намерение?

Кроме того, если у меня есть только одно резервное намерение, будет ли каждое пропущенное совпадение вызывать его или мне нужно каким-то образом связать его со всеми моими намерениями?

Ответ №1:

Самый простой способ сделать что-то с пользовательским вводом в резервном намерении — это использовать веб-хук выполнения. В отправленном объекте запроса вы можете посмотреть на queryResult.queryText параметр, чтобы получить текст от пользователя. Затем вы можете отправить это как часть своего ответа как часть fulfillmentMessages объекта.

Вы не можете «прикрепить» резервное намерение к обычному намерению. На самом деле это не имеет смысла, поскольку намерения представляют то, что говорит пользователь, а не состояние разговора.

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