我已经定义了一个Conversation对话框,我在其中设置了一个节点中的变量repeat:
{
"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
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
上下文:
答案 0 :(得分:2)
不幸的是,Watson Developer Cloud iOS SDK目前不支持从Conversation服务访问用户定义的上下文变量。不过,这是我们正在努力的一项功能,并希望尽快发布。
跟踪进度的最佳位置是this GitHub issue。
这不是解决方案,但我希望有所帮助!
答案 1 :(得分:0)
好的,根据你所展示的内容,我相信你正在做的是在Conversation中设置一个上下文变量。
但是,需要在应用程序层维护状态。因此,您需要使用对话输入发送上下文变量,否则将不会将其发回。
如果不是这种情况,那么您需要再次使用示例输入+输出更新您的问题。