ibm-watson - 沃森对话 : How to maintain position in dialog flow for additional user input

标签 ibm-watson watson-conversation

我尝试实现的用例如下:

  1. 用户请求大声朗读网页的一部分,例如“阅读说明”、“阅读背景”、“播放笔记”等。(Watson STT)
  2. STT 请求传递到对话(通过应用服务器)并进行解释;响应指示部分类型(如果部分类型不正确,则暂时省略提示)
  3. 应用服务器通过播放请求部分的音频 (Watson TTS) 来响应用户
  4. 用户要求暂停、停止、继续或重播所选部分 (STT)

我在第 4 步遇到了问题。如果请求是暂停、停止或继续,那么这些可能可以由单独的 #intent 处理,并且应用程序服务器只需将命令传递给 <audio>进行相应控制。但是,如果请求是重播,那么我需要知道最初请求的部分类型。我有一种感觉,应用程序服务器需要设置上下文才能完成这项工作,但我不清楚阅读文档如何做到这一点。非常感谢任何示例或文档。

最佳答案

每个 JSON 响应都是对话的路线图。因此,如果您从响应中获取相关的 System + Context 对象,您可以将其反馈回来以获取更早的响应。

这是解决这个问题的一种方法。

要捕获上下文变量中的意图/实体,您可以在输出节点中执行以下操作(高级)。

{
  "output": {},
  "context": {
    "lastIntent": "<? intents[0].intent ?>",
    "lastConfidence": "<? intents[0].confidence ?>",
    "lastEntity": "<? entities[0].value ?>"
  }
}

目前,只有将其保存为文本值时,它才有效。所以你不能执行以下操作:

"confidence": <? intents[0].confidence ?>,

在条件节点中,您可以执行以下操作:

intents[0].intent == context.lastIntent

关于ibm-watson - 沃森对话 : How to maintain position in dialog flow for additional user input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39676637/

相关文章:

ibm-watson - 我们如何从后端为 IBM Watson 设置上下文变量

ios - 调用中的额外参数 'username' - WatsonCloud SpeechToTextV1

node.js - IBM Watson 个性洞察服务 : giving bad request as response

python - WatsonException : Error: invalid request: 'text' is in invalid format, 代码:400

javascript - Eval 方法 Watson 对话?

node.js - Watson Conversation 中的多个输出文本值设置

javascript - 如何从沃森对话中排除星期日

swift - 当我尝试在 Xcode 中导入 VisualRecognitionV3 时,它给出了用 swift 3.0 编译的错误模块无法在 swift 3.0.2 中导入?

ibm-cloud - 如何在 IBM Conversation 中编写数学方程和符号