0

IBM Watson Assistant 的 V2 API 要求您获取 session_id,然后在对 Assistant 的后续调用中使用它,以便在调用之间保留全局上下文值。查看我们与助手关联的预览链接网页,请求似乎包含一个值对象,其中包含一个技能有效负载的所有预期部分,以及一个 session_id。

我想在我的技能中访问此 session_id 以将其传递给可能希望在其 URI 中利用 V2 API 的技能的云函数。这可能吗?换句话说,在技能 JSON 内容中引用什么来访问 session_id 值?

我假设预览链接导致对助手使用 V2 API(似乎有一个中介服务于预览链接网页并向实际助手发出请求)并且我进一步假设在我的技能中设置 context.global 值会导致它们被助手回显,因为预览链接应该重用 session_id?

技能如何向助手提供可以删除 session_id 的反馈(例如,对话已结束),从而强制预览链接网页获得对新 session_id 的访问权限?

4

1 回答 1

2

您可以使用context[variableName]或访问上下文变量$variableName。请参阅有关在 IBM Watson Assistant 中访问对象的表达式的文档

session_id如果存在(这取决于接口),是系统变量 ( context.system.session_id) 的一部分。我只是尝试通过添加以下响应文本在预览中访问和打印它:

My session ID: <? $system.session_id ?>

<? ?>用于评估文本中的表达式。

我在我的对话工具中使用 V2 API 对其进行了测试,会话 ID 很好地打印为响应。

于 2019-04-10T12:40:49.137 回答