Image title

教对话式 AI 聊天机器人来拾取实体。

为了使您的机器人能够理解用户所说的话,用户话语中的一些单词比其他单词更重要。这些重要词语的典型示例包括所谓的命名实体,如城市或产品名称。以下是如何从 Teneo Studio 中的用户输入中选取实体。

您可能还喜欢:
在特内奥创建交互式聊天机器人流的入门指南


有时,仅仅识别要触发的流是不够的。您的自动程序可能还需要从输入中提取一些信息,以便做出适当的响应。假设用户想知道我们的长莓咖啡师商店位于何处。这就是这种对话可以进行的方式:


用户:您的商店位于何处?
机器人:目前我们唯一的店在纽约。


另一种可能的对话是以下对话,用户询问 Longberry 咖啡师在特定城市中是否有商店。在这里,答案的第一部分是相同的,但在第二部分,机器人拿起用户感兴趣的城市,并在响应中使用:


用户:你在伦敦有商店吗?
机器人:目前我们唯一的店在纽约。我们以后可能会考虑在伦敦开更多的店。


在此页上,我们将首先构建基本流程,处理有关我们商店所在的位置的问题。然后,我们将扩展它来拾取用户提到的城市,并在机器人的答案中重复使用它。这是我们的最终流程的外观:


Final flow structure


创建基本流


  1. 创建新流并将其命名为 User wants to know if we have a store in city 。(如果您需要有关如何添加新流的指导,请检查第一个流)。
  2. 将以下学习示例复制到剪贴板:
  3. Where are your stores located?
    Where are your shops located Where are your cafes located?
    Where do you have cafes?
    Where do you have stores Where do you have shops?
    Where is Longberry Baristas?
    Where can I find you?
    Where can I find your cafes Where can we find you?

  4. 然后,选择触发器,打开右侧的”学习示例”面板,然后单击”没有积极的学习示例”的位置。然后点击鼠标键 + 粘贴或快捷方式 CTRL + V 粘贴学习示例。
  5. 命名触发器 Where do you have stores?
  6. 选择输出节点,在右侧打开”答案”面板并粘贴 Currently our only store is in New York. 到答案文本字段中。然后,命名输出节点 Our only store is in...
  7. 点击”保存”。

就是这样!现在,您已经创建了可以处理以下类型对话的基本流:


用户:您的商店位于何处?
机器人:目前我们唯一的店在纽约。


扩展流以选取实体


现在,我们将继续并扩展此基本流,以便识别用户提到的城市,并在机器人的回复中重复使用它。为此,我们将执行以下操作:


  • 添加一个流变量,我们可以在其中存储用户提到的城市。
  • 添加一个新的触发器,识别诸如”您在巴黎有商店吗?
  • 从输入中拾取城市。
  • 使用引用用户提到的城市的输出扩展流。


添加流变量


为了能够存储用户提到的城市,我们需要创建一个流变量:


  1. 单击流窗口左上角的选项卡”FLOW”。
  2. 在左侧的紫色条中选择”变量”。
  3. 单击窗口右上角的”添加”。
  4. city通过替换单词”变量 1″来命名变量。
  5. 我们希望将此变量初始化为空字符串,因此在下面的文本框中添加 ""
  6. 使用后箭头返回到流图。

添加新触发器


现在,我们将确保此流触发输入,其中用户询问我们在特定城市是否有商店。我们可以向现有的触发器添加其他学习示例,也可以添加第二个触发器。在这种情况下,我们将转到后者:

  1. 在顶部功能区的”添加流触发器”部分中,选择”类”以添加另一个类触发器。
  2. 将以下学习示例复制到剪贴板:
  3. Do you have a store in London?
    Do you run a cafe in New York
    Are there any of your stores in Sydney?
    Do you have a branch in San Francisco
    Have you got a cafe in Utrecht?
    Is there a cafe in London
    Do you have a coffee shop in Tokyo?
    Have you shops in Berlin
    Do you have any cafes in Paris?
    In London, do you have a store there?
    Is there a cafe of yours in Stockholm.
    Do you have a cafe in Stockholm
    Is there a store in Stockholm?

  4. 打开右侧的”学习示例”面板,单击”无正面示例”字段,然后粘贴剪贴板中的学习示例。
  5. 命名您的 Do you have a store in city? 触发器。

拾取实体


现在,我们已经有触发器的地方,是时候拿起用户提到的城市。我们将通过使用流侦听器来执行此操作:


  1. 转到左上角的”流”选项卡。
  2. 从左侧的紫色条中选择”侦听器”
  • 命名 Pick up city 并粘贴 %LOCATION.ENTITY^{city = _USED_WORDS} 到条件字段中。这将存储与”%位置”匹配的用户输入部分。在流动变量城市中。
  • 点击”确定”关闭侦听器窗口,然后返回后箭头返回到主流窗口。
  • 位置。ENTITY是相当慷慨的,它不仅承认城市,但也承认其他地方,如国家。如果你想更精确,并将识别限制在城市,你可以使用语言对象城市。改为LIST。但是,您有可能会在此列表中缺少特定城市。


    添加新输出节点


    现在唯一要做的是在现有节点之后添加另一个输出节点:


    1. 选择输出节点”我们唯一的存储位于…”中
    2. 在顶部功能区的”添加节点”中,选择”输出”。这将在现有节点之后添加另一个输出节点。
    3. 选择新的输出节点,并将以下内容粘贴到”答案”字段中:We might consider opening additional stores in ${city} in the future.
    4. 命名新的输出 We might consider opening a store in city 节点。
    5. 点击”保存”。

    您是否注意到在答案中使用了流变量?当您在答案文本中包含具有 $* 和的某样内容时,将对其进行编程评估,然后再向用户显示。在这里,这意味着”城市”将被其当前值所取代。


    如果此时您尝试示例对话,您会注意到它不起作用。第一个输出节点后,流将卡住。为了修复它,我们必须配置两个输出节点之间的转换。如您所见,过渡显示为实线,这意味着它正在等待用户的输入。但在这里,我们不希望两个输出节点之间出现用户输入。

    相反,我们希望仅当用户在询问我们的商店时提到一个城市时,才提供第二个输出。因此,我们实现了”条件”转换。这就是我们如何进行:


    1. 选择两个输出节点之间的过渡。
    2. 打开右侧的”示例”面板。
    3. 使用第一个切换将转换从”继续之前获取输入”设置为”不输入并继续”。这将确保 Teneo 不会等待新的输入。
    4. 使用第二个切换设置从”无条件”到”条件”的转换。这将打开一个”条件”字段。
    5. 进入此”条件”字段,粘贴 {city} 。这是我们的流变量的名称,我们在其中存储用户提到的城市。将变量添加到条件意味着仅当此变量具有值时才会遍历此转换,如果用户提到城市,则属于此转换。
    6. 为过渡指定名称 City mentioned

    现在我们快到了。剩下的唯一一件事是添加一个节点,允许我们正确退出用户没有提到城市的情况的流。这就是我们要做的:


    1. 选择”我们唯一的存储位于…”节点。
    2. 然后,在顶部功能区的”添加节点”部分单击”连接”。
    3. 选择两个节点之间的过渡。在右侧的”示例”面板中,将其”无条件”。
    4. 命名此转换 No city mentioned, drop the flow
    5. 点击”保存”。

    试试看!


    就是这样。现在去尝试,并给它一个去!根据您的请求中是否提及城市,您应该获得简短或扩展的答案。

    用户:您的商店位于何处?
    机器人:目前我们唯一的店在纽约。

    用户:你在伦敦有商店吗?
    机器人:目前我们唯一的店在纽约。我们以后可能会考虑在伦敦开更多的店。

    进一步阅读

    3 分钟理解指南”什么是聊天机器人?

    设计会话聊天机器人体验的最佳实践

    Comments are closed.