标签与筛选

标签提供了一种强大的方式来组织文档,并为向量搜索创建精确的筛选。通过将基于标签的筛选与语义搜索结合,你可以从知识库中准确检索所需内容。

为文档添加标签

你可以为知识库中的任何文档添加自定义标签,以便组织和分类内容,便于检索。打开知识库中的文档,使用标签字段分配值。

标签管理

  • 自定义标签:创建适合你工作流的自定义标签体系
  • 每文档多个标签:为每个文档应用所需数量的标签;每个知识库有 7 个标签槽位,由知识库中的所有文档共享
  • 标签组织:通过一致的标签将相关文档分组

标签最佳实践

  • 一致命名:在文档中使用标准化的标签名称
  • 描述性标签:使用清晰、有意义的标签名称
  • 定期清理:定期移除未使用或过时的标签

搜索 API 与 Knowledge 块

搜索 API 通过 filters 字段接收文档标签筛选,该字段为标签名与标签值的映射。API 支持仅标签、仅向量和组合搜索。

在高级模式中,Knowledge 块接收包含 tagName 和 tagValue 的 tagFilters 行,并将其转换为 API 的 filters 映射。块仅支持文本相等筛选;未知标签、格式错误的筛选条件和不支持的运算符会被拒绝。仅查询、仅标签以及组合搜索均使用以下模式。

搜索模式

搜索 API 根据查询和筛选条件选择模式。所有模式都返回分块,而非完整文档。topK 默认为 10,允许范围为 1-100;多个结果可能属于同一文档。搜索不是穷举文档列表的操作。

1. 仅标签搜索

当你仅提供标签(没有搜索查询)时:

  • 有限检索:从带有指定标签的文档中获取最多 topK 个分块
  • 无向量搜索:结果完全基于标签匹配
  • 快速性能:无需语义处理的快速检索
  • 精确匹配:返回的分块所属文档必须满足全部指定的标签筛选条件

使用场景:需要特定类别或项目中的有限数量分块时

2. 仅向量搜索

当您仅提供搜索查询(无标签)时:

  • 语义搜索:根据含义和上下文查找内容
  • 全知识库:搜索所有文档
  • 相关性排序:结果按语义相似度排序
  • 自然语言:使用问题或短语查找相关内容

使用场景:当您需要最相关的内容而不考虑组织方式时

3. 组合标签筛选 + 向量搜索

当您同时提供标签和搜索查询时:

  1. 首先:将文档筛选为仅包含指定标签的文档
  2. 然后:在该筛选后的子集中执行向量搜索
  3. 结果:仅从您标记的文档中获取语义相关的内容

使用场景:当您需要特定类别或项目的相关内容时

搜索配置

标签筛选

  • 多个标签槽:当对多个标签槽进行筛选时,应用 AND 逻辑(所有指定的标签筛选条件都必须匹配)
  • 标签内的 OR:单个标签槽支持 OR 逻辑,可匹配多个指定值中的任意一个
  • 大小写敏感度:标签匹配不区分大小写
  • 精确匹配:标签值必须完全匹配(不支持部分匹配或子字符串匹配)

向量搜索参数

  • 查询复杂度:自然语言问题效果最佳
  • 结果数量限制:配置要检索的块数量
  • 相关性阈值:由系统内部选择;不提供用户可配置的相似度阈值
  • 分块大小:在文档处理时配置,而不是搜索参数

与工作流集成

知识块配置

  1. 选择知识库:选择要搜索的知识库
  2. 选择搜索输入:提供查询、高级模式下的文本相等标签筛选,或同时提供两者
  3. 配置结果:设置检索分块数量(1-100,默认 10)
  4. 映射结果:在下游输入或提示词中显式引用返回的分块
  5. 测试搜索:使用结果前先检查其内容

动态标签用法

  • 变量标签:可在块的标签值中使用工作流引用;直接调用 API 时,通过 filters 传入解析后的值
  • 条件过滤:根据工作流逻辑应用不同标签
  • 上下文感知搜索:根据对话上下文调整标签
  • 多步过滤:通过工作流步骤细化搜索

性能优化

  • 高效过滤:标签过滤在向量搜索之前进行,以获得更好性能
  • 结果限制:仅请求所需分块,控制下游上下文大小

标签入门

  1. 规划标签结构:确定一致的命名规范
  2. 开始打标签:为现有文档添加相关标签
  3. 测试组合:尝试标签 + 搜索查询的组合
  4. 集成到工作流:配置 Knowledge 块的标签筛选并检查返回的分块;直接调用 API 时使用 filters
  5. 持续优化:根据搜索结果调整标签方法

标签将你的知识库从简单的文档存储转变为组织精确、可搜索的智能系统,让你的 AI 工作流能以极高的精准度在其中导航。