增强搜索集成

请使用以下搜索集成增强功能,以优化 AI 助手对客户查询的响应。

搜索触发器

搜索集成由一个操作步骤触发。 默认情况下,该操作发送最近提交的用户信息作为搜索查询。 不过,您可以使用操作步骤中的搜索设置来更改自定义搜索查询和自定义结果过滤器,这有助于您获得准确的结果。

例如,对话流可能会收集有关客户想要购买的设备类型的信息。 知道设备型号后,就可以在提交给搜索集成的查询中发送型号关键字,以获得更好的搜索结果。

要配置搜索查询,请完成以下步骤:

  1. 在要触发搜索的步骤的 "然后"字段中,选择 "搜索答案"

  2. 单击编辑设置

  3. 为以下一个或两个字段添加值:

    • 自定义搜索查询。 添加一个要提交给搜索集成的单词或短语,作为搜索的查询字符串。

例如,您可以指定一个字符串,如 "What cities do you fly to?

要想获得更动态的字符串,可以加入一个变量。 例如,Do you have flights to ${destination}?

您实际上是将搜索集成 API 使用的值定义为 "natural_language_query参数。 有关为 Elasticsearch 定义查询值的更多信息,请参阅《 查询参数》 Elasticsearch

如果不指定文本字符串,该操作会发送最近提交的用户信息作为搜索字符串。

如果想使用触发操作的原始客户信息作为查询字符串,则需要提前计划。 您可以按照以下步骤进行操作:

  1. 创建一个会话变量来存储用户的初始输入。 例如,名为 original message

  2. 在步骤 1,即操作触发后的第一步,设置会话变量的值。 有关会话变量的更多信息,请参阅创建会话变量

  3. 使用类似下面的表达式设置变量的值: <? input.text ?>.

该表达式捕捉了客户提交的完整信息。 因此,您的变量会捕捉到触发这一操作的客户信息。

  1. 自定义查询字段中添加会话变量(例如 "${original_message})。

  • 自定义结果过滤器:添加文本字符串,定义返回的搜索结果中必须包含的信息。

您实际上是将搜索集成 API 使用的值定义为 "filter参数。 有关在 Elasticsearch 中定义过滤器值的更多信息,请参阅 Elasticsearch filter

过滤器值的语法并不直观。 下面是几个常见用例:

  • 例如,要表示只返回具有积极情感的文档,请指定 "enriched_text.sentiment.document.label:positive

  • 要过滤结果,使其只包括提及 "Boston, MA的文档,请指定 "enriched_text.entities.text:"Boston, MA""。

如果同时添加查询和过滤器值,那么将首先应用过滤器参数来过滤数据集合文档,并对结果进行高速缓存。 然后,查询参数会对高速缓存的结果排名。

  1. 如果希望将搜索答案作为操作的最后一步,请选择在返回结果后结束操作

  1. 单击应用

在没有匹配操作时使用搜索

您可以将搜索集成到内置的 "无匹配"功能中。 通过在 “无匹配项 ”中添加搜索功能,当客户提出的问题无法通过现有操作解决时,您的 AI 助手便会调用搜索功能。

更新无匹配搜索:

  1. 在您的 AI 助理中,点击 “操作 ”,然后点击 “由助理设置 ”。

  2. 单击 "无匹配"在编辑器中打开。

  3. 单击新建步骤

  4. 在 "然后"部分,单击 "继续下一步",然后选择 "搜索答案"

无匹配项

  1. 关闭无匹配。 如果客户的问题未触发任何现有操作,您的 AI 助手将通过搜索功能为客户提供可能有用的答案。

使用对话式搜索

对话式搜索使用大型语言模型 (LLM) 来识别和回应客户的询问。 您可以在搜索集成中启用此功能,通过简单的对话来优化 AI 助手的回复。

有关对话式搜索的更多信息,请单击对话式搜索