Как переключаться между навыками на Watson Assistant? - PullRequest
0 голосов
/ 06 мая 2019

В настоящее время в IBM Watson Assistant вы можете назначить помощнику только один навык.Как я могу программно поменять основной навык помощника?

Ответы [ 2 ]

1 голос
/ 06 мая 2019

В будущем планируется, чтобы помощник поддерживал различные навыки, а также индивидуальные навыки.На данный момент, как упоминалось data_henrik , вы можете использовать API V1 для вызова каждого навыка.

Но наличие нескольких навыков по-прежнему имеет свои проблемы, и это может дать вам некоторое представление.

Вот некоторые подходы, которые вы можете использовать (в некоторых случаях имена составляются :).

Распыляйте и молитесь

В этом методе вы отправляете свое пользовательское высказывание во все рабочие пространства и выбираете самое высокое.

Этот нужен, если у вас большое количество намерений (> 1000) и у вас есть четкие различия между этими намерениями.Это также самый дорогой в звонках.

Gateway

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

Это работает, если у вас есть большое количество намерений, но схожие темы, но недостаточно похожих, чтобы объединить их в один навык.

Маршрутизатор

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

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

График

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

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

Цепочка

В настройке цепочки вы пытаетесь ответить на вопрос пользователя первым умением.Если вы не можете, тогда вы переходите ко второму навыку, и так далее.

Ваши намерения в этом случае отображаются в порядке известной частоты.

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


Другие пункты.

  • Во-первых, каждому навыку нужен контекстный объект.Вы не можете разделить системную часть объекта контекста между навыками.Если вы используете Premium или Watson Assistant Plus, то это присматривается в самом умении (поэтому вам нужно только сохранить идентификаторы разговора).

  • «Врата», «Распыли и молись» и «цепочка» теряют способность иметь сложные разговорные потоки без серьезной работы.

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

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

0 голосов
/ 06 мая 2019

В пользовательском интерфейсе в разделе Ассистенты можно щелкнуть назначенное Умение и пунктирное меню, а затем выбрать Поменять навык . Таким образом, даже с планом Lite вы можете проверить различные навыки с помощником.

Если у вас есть учетная запись Premium или Plus, вы можете использовать навык диалога и навык поиска .

Еще один вариант использования нескольких навыков (рабочих пространств) заключается в реализации приложения с использованием V1 API . Это REST API без сохранения состояния, и вы отправляете сообщение боту, идентифицированному по его рабочему пространству / идентификатору навыка. В зависимости от контекста и потока, ваше приложение выберет правильное рабочее пространство и отправит сообщение соответственно. Таким образом, можно создавать специализированных ботов (рабочих пространств) или переключаться с одного языка на другой.

...