Заполнение слотов заполняет несколько слотов одновременно и создает беспорядок со строками типа «13:00» - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть намерение с тремя обязательными слотами (назовем их: slot_a, slot_b, slot_c), все типа @sys.number.Когда намерение обнаруживается, система запрашивает у меня пропущенные слоты:

Что такое slot_a?

me: 1

Что slot_b?

Я: 2

Что slot_c?

Я: 3

Иэто хорошо работаетПроблемы начинаются, когда я добавляю речь в текст, потому что иногда система понимает «1:00», «2:00», «3:00» вместо простых чисел, и когда они передаются в диалог, она ведет себя так:

Что такое slot_a?

me: 1 (но конвертируется как "1:00")

диалог потока разделяет "1" и "00 ", и присваивает" 1 "a и" 0 "b.

Что такое slot_c?

me: 3 (но получитьпреобразован как "3:00")

в диалоговом потоке уже b, поэтому он запросил c.

Это происходит с it-IT языком, и я не знаюкак с этим бороться.Преобразование «1» в «1:00» является первой половиной проблемы, но я мог бы обойти это во время выполнения, но затем диалоговый поток делится на : и не дает мне никакого шанса для ввода следующегоотсутствует слот.

РЕДАКТИРОВАТЬ Добавление снимка экрана с намерением:

enter image description here

Я использовал Попробуйте сейчас область справа, написав:

  1. "что угодно" (чтобы вызвать намерение)
  2. "1:00" (чтобы заполнить slot_a как система предложила мне сделать)

В результате slot_b также было заполнено "0", и теперь оно просит меня заполнить slot_c, и у меня нет возможностивведите реальное slot_b.

1 Ответ

0 голосов
/ 19 февраля 2019

Здесь есть несколько вещей.

Во-первых, «1:00» - это не число.Что это такое, зависит от того, как вы хотите это интерпретировать.Если бы это было для типа сущности @sys.time, вы могли бы рассмотреть это, например, как время, и оно поместилось бы в один слот.

Кажется, диалог диалога пытается помочь с заполнением слота, которое обычно предназначаетсячтобы заполнить пробелы в записи пользователя, а не запрашивать их.Так что, если он может заполнить значения в параметре, это так.В этом случае он видит «1:00», ему нужно заполнить два числа, поэтому он делает это.

Как вы это исправите, зависит от того, что вы пытаетесь сделать.Если тип сущности действительно является временем, используйте @sys.time или что-то подобное.Если это строка, которую вам нужно проанализировать, тогда @sys.any может быть более подходящим.

Если это действительно число, то что вы ожидаете от «1:00»?Отменить ": 00" часть?Проигнорировать это полностью?

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

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

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