我想构建一个分支,以便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提供的教程中直截了当。第二个我不确定如何处理。如何创建一个简单的意图"是的。"?如何使用对话树中访问的最后一个节点创建条件语句(我认为可能有帮助)?
答案 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可点击,但将文本传回会话以提供正确的响应。