首页 > 解决方案 > 如何将变量作为上下文传递给 IBM Cloud Watson Assistant V2?

问题描述

我正在尝试为IBM Cloud Watson Assistant使用新的API 版本 V2。我需要向助手发送消息,而不是为工作区发送消息。上下文结构现在具有全局和与技能相关的部分。

我的应用程序如何将值作为上下文变量传递?它们需要放置在结构中的什么位置?我正在使用 Python SDK。我有兴趣将信息作为客户端对话操作的一部分发送。

标签: pythonibm-cloudwatson-conversation

解决方案


在使用工具测试 Python SDK 和 API V2 的基础上,我得出以下结论。如果请求作为输入选项的一部分,则由助手提供上下文。

  "context": {
    "skills": {
      "main skill": {
        "user_defined": {
          "topic": "some chatbot talk", 
          "skip_user_input": true
        }
      }
    }, 
    "global": {
      "system": {
        "turn_count": 2
      }
    }
  }

要将值从我的客户端/应用程序传回给助手,我可以使用 context 参数。然而,与 V1 API 相比,我需要将键/值对放在user_defined部分的“下方” :

context['skills']['main skill']['user_defined'].update({'mydateOUT':'2018-10-08'})

以上是此示例文件中用于客户端操作的代码片段。通过放置我的上下文变量,一切正常,我可以使用 API 版本 2 实现客户端操作。


推荐阅读