Я использую португальские навыки и сталкиваюсь с той же проблемой. Я вижу два решения, хотя они и не идеальны:
Использование намерений:
Когда намерение идентифицировано, бот снова спрашивает имя, сообщая пользователю, что он должен сказать только свое имя, Например, без «моего имени», затем сохраните весь ввод в переменной контекста, используя:
<? input.text ?>
Для встраивания таких логи c в слоты, вы, вероятно, должны будете использовать отступления.
Но это скучно для пользователя.
Использование сущностей:
Идентификация сущностей переносит их начальную и конечную позиции во входном тексте, но не намерения. При этом возможно нарезать входные данные, обрезая сущность:
<? input.text.substring(entities.name.location[1], input.text.length()) ?>
Entites будет «Меня зовут», «Люди зовут меня», «Меня зовут», «Я крещен» "," Я был крещен ".
Таким образом," Привет, меня зовут Густаво ", будет вырезано после окончания" моего имени ", что приведет к" Густаво ". Дополнительный ввод в начале игнорируется, но возникают проблемы с дополнительным вводом после имени. Кроме того, вам нужно определить больше «моих имен», подобных сущностей, вероятно, всех возможностей, которые потребуются при использовании намерений, потому что даже при нечетком сопоставлении при идентификации сущностей не учитывается синоним и аналогичные значения слов.
https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-methods#dialog -методы-строки-подстроки
https://cloud.ibm.com/docs/assistant?topic=assistant-expression-language#expression -язык-доступ-объект