创建搜索查询 是一种主题级工具,您的代理可用于捕获用户输入的重写版本,并利用对话历史记录进行充实。 可以在下游任务(例如搜索或摘要)中使用重写查询。 此重写字符串为创建者提供了原始查询的结构化和阐明版本,你可以重新调整其用途,以适应代理的目的。
此功能对于 自定义搜索 方案特别强大。 代理可以完全控制查询如何与索引内容匹配、传递给外部系统或记录分析。
随着代理从简单的问答机器人发展到定制的业务代理,重塑用户查询变得至关重要。 查询重写弥合了用户意向和特定于域的语言之间的差距,以生成更相关和准确的结果。
何时使用创建搜索查询
要执行以下操作时,请使用创建搜索查询:
推动自定义搜索体验
使用重写的查询字符串作为您自己的搜索逻辑的输入。 示例包括查询非 Microsoft API、筛选内部知识库或制作动态提示。
示例:将重写的查询输入自定义 SharePoint 或基于 SQL 的搜索系统。
增强与上下文的相关性
使用对话历史记录将模糊查询重写为更有针对性的查询。
示例:根据用户之前的问题,将“向我展示表单”转化为“员工入职申请表”。
电力领域专用检索
定制重写的查询,以匹配组织对信息进行分类或编制索引的方式。
示例:添加部门、时限或用户角色等标签,使搜索查询更精确。
创建搜索查询的工作原理
选择节点下的 “添加节点 ”图标,之后代理将执行自定义搜索。
选择 “添加工具”,然后选择 “创建搜索查询”。
画布上会显示 一个“创建搜索查询 ”节点。
“创建搜索查询”工具基于以下代码重写用户的输入:
- 原始输入
- 任何相关的对话历史记录或上下文变量
该工具将清理和扩充的搜索字符串输出为变量,以便在下游逻辑中使用。
用例示例:员工手册助手
用户可能会说:“告诉我有关休假政策的信息。”
代理通过以下内容丰富此请求:
休假类型
无论休假是为了他们自己还是其他人
他们想要的是当前策略还是历史策略
对话流(简化的 YAML 表示形式)
# Compose the custom search input
- kind: SetVariable
variable: Topic.SearchQueryInput
value: = "Leave policy: " & PlainText(Topic.LeaveType) &
If(Topic.ForSelf, "; for self", "; for someone else") &
"; version: " & PlainText(Topic.IsCurrentPolicy) &
"; original query: " & PlainText(Topic.UserOriginalInput)
# Generate a rewritten query using CreateSearchQuery
- kind: CreateSearchQuery
userInput: =Topic.SearchQueryInput
result: Topic.SearchQuery
# Use it in any way you want
- kind: CustomSearchOrAPI
input: =Topic.SearchQuery
最终重写的查询示例
休假政策:病假;本人;版本:当前;原始查询:我想了解病假信息
这个重写的字符串现在可以是:
传入自定义搜索引擎。
用于外部 API 调用。
记录以进行分析或优化。
返回给用户以便确认。