ibm-cloud - 如何在 Watson Assistant 上切换技能?

标签 ibm-cloud ibm-watson watson-assistant

目前在 IBM Watson Assistant 中,您只能向助理分配一项技能。如何以编程方式交换助手的主要技能?

最佳答案

future 的计划是让 Google 助理支持多种技能以及自定义技能。目前为data_henrik提到,您可以使用V1 API来调用每个技能。

但是拥有多种技能仍然存在挑战,这可能会给您一些见解。

这些是您可以采取的一些方法(在某些情况下名称是虚构的:)。

喷洒并祈祷

在此方法中,您将用户话语发送到所有工作区并选取得分最高的一个。

如果您有大量意图 (>1,000) 并且这些意图之间存在明显差异,则需要此选项。这也是通话费用最高的。

网关

在这个设置中,你拥有顶级技能。这试图了解每个问题应发送到何处的意图。然后,您将其建议的第二项技能称为其返回的意图。

如果您有大量意图但主题相似,但不够相似,无法分组到单个技能,则此方法有效。

路由器

与网关类似,除非您确定了要路由到您的最终技能,然后就只能转到该技能。如果该技能不理解后面的问题,则会将其路由回顶级技能以找出它应该去的地方。

如果您的客户对他们想要去的地方有明确的路径,那么这个方法就很有效。因为他们倾向于在同一领域提出所有问题。

图表

与路由器类似,除了当子技能不理解该人询问的内容时,它不会返回到顶层,而是尝试找出哪些其他子技能与自身有共同的关系(如果它不能 Handlebars 放回顶部吗)。

当多种技能可能具有相似的意图,但在已经提出的其他问题的背景下,您会选择一种技能而不是另一种技能时,这会有所帮助。

在链设置中,您尝试回答第一项技能中的用户问题。如果你不能,那么你就转向你的第二个技能,然后依此类推。

在这种情况下,您的意图是按照已知频率的顺序映射的。

如果您的意图非常相似,但您知道人们提出的最常见问题,则此方法效果很好。但它是最难实现和维护的之一。


其他要点。

  • 首先,每项技能都需要一个上下文对象。您无法跨技能共享上下文对象的系统部分。如果您使用的是 Premium 或 Watson Assistant Plus,那么这将在技能本身内进行处理(因此您只需要存储对话 ID)。

  • 如果没有认真的工作,“网关”、“喷雾和祈祷”和“链条”就失去了进行复杂对话流的能力。

  • 如果您计划从一项技能一次性调用另一项技能,则可以使用云函数来实现此目的。它降低了复杂性,并将逻辑置于应用程序层之外。我用 my language translation example 实现了类似的效果。

  • 通过使用技能而不是助手,您将失去进行基于版本控制的部署的能力。您可以创建多个助手来解决这个问题,但这会让事情变得更加困惑。

关于ibm-cloud - 如何在 Watson Assistant 上切换技能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55997393/

相关文章:

java - Android 应用程序出现 'DB2SimpleDataSource Class not found' 错误

java - 如何在 Eclipse-Bluemix Liberty for Java 部署期间使用 list 的服务部分

java - IBM 沃森。自然语言。得到 :401 Invalid credentials, 但它们是正确的。来自java sdk

ibm-cloud - 如何在 IBM Cloud 上移除 Watson Assistant 服务中的上下文变量

salesforce - 是否可以通过从另一个系统(例如 Salesforce)读取数据来填充 IBM Watson Assistant 实体?

python - IBM-VisualRecognitionV3-DeprecationWarning : VisualRecognitionV3 is a deprecated function

javascript - 使用在服务器端获取的 IBM Bluemix 音调分析器 token 时客户端出现错误

javascript - 在 nodejs 中解析 Watson TTS HTTP 响应

java - IBM Watson 视觉识别 - 错误 : excessive number of concurrent HTTP connections

ibm-cloud - 如何在 Watson Conversation Service 中列出我的 Bot 所使用的 @Cities 实体值