1

我定义了一个对话对话框,在其中我在一个节点中设置了变量重复:

{
  "output": {
    "text": "You said: <?input_text?>. Let's fix the @product. "
  },
  "context": {
    "repeat": "<?input.text?>"
  }
}

并在后续节点中显示了变量 $repeat:

{
  "output": {
    "text": "repeat: $repeat"
  }
}

如何在 Swift 中访问此变量 $repeat?我可以访问包含相同文本的 response.input.text,但我想访问 $repeat,以便更加灵活。

输入:

radio broken

输出:

You said: radio broken. Let's fix the radio.
repeat: radio broken

SWIFT代码: var context: Context? // initial definition ...

func next_dialog(input_text: String) {
    conversation = Conversation(username: username, password: password, version: version)
    let failure = { (error: NSError) in print(error) }
    conversation.message(workspaceID, text: input_text, context: self.context, failure: failure) { response in 
         self.context = response.context  // update with response.context

...

语境:

在此处输入图像描述

4

2 回答 2

2

遗憾的是,Watson Developer Cloud iOS SDK当前不支持从对话服务访问用户定义的上下文变量。不过,这是我们正在开发的一项功能,并希望尽快发布。

跟踪进度的最佳位置是关注此 GitHub 问题

这不是一个解决方案,但我希望这会有所帮助!

于 2016-09-29T19:43:11.870 回答
0

好的,根据您所展示的内容,我相信您正在做的是从对话中设置上下文变量。

但是状态需要在应用层维护。因此,您需要将上下文变量与您的对话输入一起发送,否则它不会被发回。

如果不是这种情况,那么您需要再次使用示例输入 + 输出更新您的问题。

于 2016-09-06T11:54:52.867 回答