当前,在IBM Watson Assistant中,您只能为助手分配一项技能。如何以编程方式交换助手的主要技能?
答案 0 :(得分:1)
将来的计划是让Assistant支持多种技能以及自定义技能。就data_henrik而言,您可以使用V1 API调用每种技能。
但是拥有多种技能仍然面临挑战,这可能会给您一些见识。
这些是您可以采用的一些方法(在某些情况下,名称是组成的:)。
通过这种方法,您可以将用户的话语发送到所有工作空间,并获得最高的得分。
如果您有大量的意图(> 1,000),并且这些意图之间有明显的区别,则需要此选项。这也是通话中最昂贵的。
在此设置中,您具有高级技能。这试图了解将每个问题路由到何处的意图。然后,您将其暗示的第二项技能称为返回的意图。
如果您的意图很多但主题相似,但又不足以组合为一项技能,则此方法有效。
类似于网关,除非一旦您确定了路由到您的最终技能,然后就只能使用该技能。如果该技能无法理解后面的问题,则将其路由回顶级技能,以找出应该去的地方。
如果您的客户有明确的路线要走,那么此方法就很好用。因为他们倾向于在同一地区提出所有问题。
类似于路由器,除了当子技能不了解对方要求的内容时,而是返回顶层,尝试找出其他子技能与其自身有共同关系(如果有)不能回到顶部)。
这在多种技能可能具有相似意图的地方会有所帮助,但是在已经提出其他问题的情况下,您会选择一项技能而不是另一项。
在链设置中,您尝试以第一技巧回答用户问题。如果不能,那么您将学习第二种技能,依此类推。
在这种情况下,您的意图将按已知频率进行映射。
如果您的意图非常相似,但是您知道人们提出的最常见问题,则此方法效果很好。不过,它是实施和维护中较难的一种。
首先,每个技能都需要一个上下文对象。您无法跨技能共享上下文对象的系统部分。如果您使用的是Premium或Watson Assistant Plus,则将在技能本身内进行照顾(因此您只需要存储对话ID)。
“网关”,“祈祷与祈祷”和“连锁”失去了进行复杂对话的能力,而无需进行认真的工作。
如果您计划一次从一项技能到另一项技能的通话,则可以使用云功能来实现。它降低了复杂性,并将逻辑带到了应用程序层之外。我用my language translation example实现了类似的效果。
通过使用技能而不是助手,您将失去进行基于版本控制的部署的能力。您可以创建多个助手来解决此问题,但这会使事情变得更加混乱。
答案 1 :(得分:0)
在用户界面的助手下,您可以单击分配的技能及其虚线菜单,然后选择交换技能。因此,即使使用精简版计划,您也可以使用助手测试不同的技能。
如果您具有Premium或Plus帐户,则可以具有对话技巧和search skill。
具有多种技能(工作区)的另一种选择是使用V1 API来实现应用程序。它是无状态的REST API,您可以向机器人发送一条消息,该机器人由其工作空间/技能ID标识。根据上下文和流程,您的应用将选择正确的工作区并相应地发送消息。这样就可以创建专门的机器人(工作区)或从一种语言切换到另一种语言。