有没有办法只提取参数而不提取实体?

问题描述 投票:0回答:1

我创建了一个实体”可编辑”,其条目为{名称,年龄,颜色,位置}

机器人:选择要更新的选项[选项是{名称,年龄,颜色,位置}]

用户:名称

机器人:输入您的名字?

用户:Xyz

bot:记录已更新。选择一个选项进行更新[选项为{名称,年龄,颜色,位置}]

这很好用

但是如果用户说“ 我的[[名称是Xyz””来更新名称。

机器人:选择要更新的选项[选项是{名称,年龄,颜色,位置}]

用户:

名称

机器人:输入您的名字?

用户:我的

名称

是Xyz机器人:输入您的名字。

当用户在其短语中包含“名称”时,机器人将其与实体匹配,然后再次询问相同的问题。如何解决此问题,我只想提取“ Xyz”,尽管他使用的短语是“我的名字叫Xyz”。

dialogflow actions-on-google chatbot
1个回答
0
投票
您可以使用contexts处理对话流程。上下文用于帮助dialogflow检测正确的意图。输出上下文是检测到意图后创建的上下文,而输入上下文是检测到意图所需的上下文。

考虑dialogflow上下文,作为对话的真实上下文,您可以在交互后期望一些短语。

这是一个使用3个意图进行对话的示例:

    “默认欢迎”
  • “更新名称选择”
  • “更新名称”
  • 对话

    检测到意图:

    默认欢迎

    代理商说:“选择一个选项来更新[选项是{名称,年龄,颜色,位置}]”

    输出上下文:“选择选项”


    用户说:“名称”

    输入上下文:“选择选项”

    检测到的意图:

    更新名称选择

    特工说:输入您的名字

    输出上下文:“更新名称”


    用户说:“我叫Xyz”

    输入上下文:“更新名称”

    检测到意图:

    更新名称

    代理商说:“记录已更新”


    此外,follow-up intents用于这种情况,优点之一是在后续意图中,上下文是自动创建的。

    参数

    您可以在同一意图下获得所有要更新的信息。为此,您可以根据需要添加参数并利用slot filling。请注意,您可以指定在询问这些参数时使用的定义提示。

    Actions and parameters

    您将需要添加训练短语以帮助理解给定的不同参数:

    Training phrases

    在对话期间,当检测到此意图时,代理将尝试匹配所有必需的参数,并要求提供缺少的信息。最后,您将可以访问以下信息:

    Example of parameters collected

    考虑这种意图可能很快变得难以管理。尝试为参数使用定义明确的实体和许多训练短语(请注意,在一个训练短语中,您可以收集多个参数,例如,“我的名字叫Xyz,我27岁”。)

  • © www.soinside.com 2019 - 2024. All rights reserved.