如何从华生助理内部呼叫第三方API



使用IBM的Watson Assistant创建聊天机器人,我需要确定我正在尝试将邮政编码发送给第三方API,该第三方将返回城市和州,以便我知道客户的位置,以便(a(知道哪些服务可用,(b(更好地了解如何从那里引导对话。但是我不知道该怎么做。

我可以在Python中实现这一点,但尝试在JSON编辑器中进行编码是行不通的。

Webhook用于在助手的对话框技能中实现这一点。

IBM Watson Assistant Webhook文档

文档中没有提到这一点,但Assistant将使用JSON主体POST到URL,其中包含您指定为键值对的参数。例如,如果在对话框节点中上下文变量$zipcode等于99501;键"=1和"CCD_;值"=CCD_ 2。

则HTTP帖子主体为

{ "zipcode" : "99501" }

来自服务的响应被放入另一个上下文变量中,然后可以用于其他事情。例如在调用webhook的对话框节点中;返回变量";section放入webhook_result_zipcode以将响应放入该上下文变量中。

您也可以在对话框节点"助理响应"部分中,返回一条消息,其中包含webhook响应的某些部分。例如在对话框节点编辑器中"如果助手识别出";CCD_ 4";用";The code is "$webhook_result_zipcode.response.result.sent"这将告诉用户在响应主体的response.result.sent中的webhook响应中返回的代码。

也可以单击响应旁边的Cog,然后在对话框中单击。。。在";助理回答";并打开上下文编辑器。这将打开一个上下文编辑器(位于对话框顶部(,它允许从webhook响应的一部分设置另一个上下文变量。例如在";然后设置上下文";对于";变量";设置CCD_ 7;值";设置CCD_ 8。这将从webhook响应的深处提取一个zipcode值,并将其放置在上下文变量zipcode中。

当然,您必须找到一个邮政编码定位服务,它接受HTTP帖子并在正文中查找代码。

最新更新