如何使用用户非常短的增量输入继续关注会话分支?

时间:2016-12-01 18:18:34

标签: ibm-watson watson-conversation

我想构建一个分支,以便Watson可以对特定问题做出简短回复,然后在用户激发更多信息时提供更多详细信息。

示例交互可能是:

User: "I'd like to know about X." 
Watson: "Sure, ... . Would you like me to go into more detail?" 
User: "Yes." 
Watson: "Okay, ... ."

前两行从IBM提供的教程中直截了当。第二个我不确定如何处理。如何创建一个简单的意图"是的。"?如何使用对话树中访问的最后一个节点创建条件语句(我认为可能有帮助)?

1 个答案:

答案 0 :(得分:1)

有几种方法可以解决它。

意图

您只需创建一个具有五个版本的yes的意图。

def update_database (id, status)
  @@logger.info("Reservation Id: #{id}")
  @@logger.info("Status: #{status}")
  item = ReservationDb.find( id: id )
  @@logger.info("DB entry: #{item}")
  item[:status] = status
  ReservationDb.update({"_id" => BSON::ObjectId.from_string(id)}, item)
end

然后在您的情况下检查yes sure yep of course yes I would y

您需要使用其他意图进行测试,以确保它们不会相互干扰。

实体

对于像这样的简短回答,实体可以很方便。人们可能会说“是”的范围有限,并且不会干扰您的实体。但是,如果存在拼写错误,它可能无法捕获每个版本的yes。然后,如果您已对其进行分组,则可以查找#Yes@Yes

会话修复

即使在这两种情况下,也可能是这个人没有回答你的期望。因此,您可以在分支的底部创建一个@YesNo:Yes节点。在那你的输出说的像。

  

抱歉,我不明白,您希望我详细介绍一下吗?您可以回答

然后让您的UI使Yes / No可点击,但将文本传回会话以提供正确的响应。