Я думаю, что дизайн вашего разговора немного запутан, и это может затруднить выполнение именно того, что вы хотите.
Ваш SELECTED_ITEM_INTENT
запускается только на основе взаимодействия со списком, и вы предлагаете им что-то сказать. Поскольку список больше не активен, и у вас нет настроенного Intents для обработки какой-либо из фраз, тогда ничего не будет совпадать.
Вместо того, чтобы полагаться на визуальный список (который не будет работать хорошо для всех Вспомогательные платформы), вы можете подходить к нему больше как к голосовой беседе. Под этой моделью вы можете изобразить разговоры, которые выглядят примерно так:
Agent: Would you like to update the Games, Books, or Language details?
User: Games
Agent: What is your favorite game?
User: Rock, paper, scissors
Agent: Rock, paper, scissors has been set as your favorite game. What would you like to update next?
User: Another game
...
Или разговор может go примерно так
Agent: Would you like to update the Games, Books, or Language details?
User: Game details
Agent: What is your favorite game?
User: Rock, paper, scissors
Agent: Rock, paper, scissors has been set as your favorite game. What would you like to update next?
User: Another game
...
Но что, если они скажут что-то подобное вместо этого?
Agent: Would you like to update the Games, Books, or Language details?
User: Books
Agent: What is your favorite book?
User: I meant game
Agent: What is your favorite game?
User: Rock, paper, scissors
Agent: Rock, paper, scissors has been set as your favorite game. What would you like to update next?
User: I don't know
...
Исходя из этого, мы можем подумать, что пользователи будут отвечать одним из трех способов:
- Указывая, какую категорию они хотят, с помощью таких фраз, как «Книга», « Игры »,« Сведения о языке »,« Я имею в виду игры »,« Добавить больше языков »,« Другая книга »и т. Д. c.
- Это говорит о том, что каждая категория может быть хорошей сущностью для фраз, которые может сказать пользователь.
- Со значением того, что они обновляют
- Это хорошо обрабатывается с помощью контекста, чтобы знать, когда мы запрашиваем что-то конкретное c. Как вы уже сделали.
- Обращение за помощью к таким фразам, как "Что я могу сделать?" или «Я не понимаю».
Каждое из них будет выполнено с использованием намерения с фразами и контекстов ввода, настроенных для этих фраз. В выходных данных мы могли бы использовать чипы предложений, где это уместно, для указания возможных категорий, которые мы ожидаем для первого Намерения.
Но мы не рассмотрели несколько других вещей, которые мог бы сказать пользователь. Что, например, если бы у нас было
Agent: Rock, paper, scissors has been set as your favorite game. What would you like to update next?
User: Add another one
Пользователь знает, что он просто установил игру, и он хочет установить другую. Но они не использовали термин «игра» специально. Нам нужно будет отслеживать, какую категорию они последний раз обновляли в контексте, и иметь другое намерение, которое может обрабатывать фразы типа «Добавить еще одну» или «То же самое».
Но что, если наши пользователи начнут делать это много, и у нас есть взаимодействие, такое как
Agent: Rock, paper, scissors has been set as your favorite game. What would you like to update next?
User: Add a book named Dungeon Masters Guide
Здесь они объединились с вещами, которые мы рассматривали как отдельные намерения. Поэтому нам может понадобиться добавить Intent, который обрабатывает такие фразы, как эта, где они одновременно указывают и категорию, и информацию.