如何在 IBM Watson Assistant 客户端中实现“客户端”类型的操作?
Posted
技术标签:
【中文标题】如何在 IBM Watson Assistant 客户端中实现“客户端”类型的操作?【英文标题】:How to implement "client" type action in IBM Watson Assistant client? 【发布时间】:2019-08-26 01:21:23 【问题描述】:我正在开发 IBM Watson Assistant 服务来构建 AI 聊天机器人,目前我正在为此构建客户端 UI,因此根据 IBM 的文档,它们支持各种操作来使用函数触发外部业务逻辑。我认为“客户端”类型的操作可以帮助我触发一些 javascript 函数,但我在 google 上看不到任何工作示例。所以请帮助我在我的 html/javascript 客户端中实现“客户端”类型的操作。
【问题讨论】:
【参考方案1】:检查此帖子中的问题 - https://developer.ibm.com/answers/questions/477020/help-with-custom-actions-for-ibm-watson-assistant/
客户端操作有两个部分。第一个是在对话框中,它表示需要执行操作,以及操作结果应该放置在哪里。客户端操作要求您有一个编排层。这意味着您可以控制对话流和做出反应的编排层。如何让他们进行协调取决于您。您没有义务遵循任何模式。最简单的方法是使用上下文。该对话框设置一个上下文变量,例如。 'PleaseDoSomething',应用程序看到它并执行一些操作。
记录在案的客户端操作构造是一个规范,它为这个过程提供了一个结构;允许其他编排层理解操作;让您相对轻松地切换到 Cloud Functions。
如果使用客户端操作构造。
那么对话框 json 将如下所示:
"output":
"text":
"values": [
"Hang on I need to look that up."
],
"selection_policy": "sequential"
,
"actions": [
"name": "fetchBalance",
"type": "client",
"result_variable": "balance"
]
您的编排层查找“Actions”,运行“fetchBalance”并将结果放入上下文字段“balance”中。
【讨论】:
我理解 fetchBalance 是在客户端定义的函数,但它是如何自动执行的? 因为你的编排层会执行它。助理服务或对话框中没有任何内容会自动执行客户端操作。 好的,知道了,所以我需要触发该功能。我需要遵循任何 json 结构来获取该函数的返回值吗? 这并不取决于你如何做,但惯例规定你将上下文中的结果作为值返回给result_variable
。 IE。在上下文字段balance
的示例中,可以是您想要的任何类型 - 字符串、数字、数组、对象...以上是关于如何在 IBM Watson Assistant 客户端中实现“客户端”类型的操作?的主要内容,如果未能解决你的问题,请参考以下文章
从 IBM Watson Assistant 获取我的聊天机器人中的选项列表
将 IBM Db2 连接到 Watson Assistant
IBM Watson Assistant 响应来自机器人的延迟
尝试通过 Axios (React Native) 访问 IBM Watson Assistant 消息时出现错误 500