Skip to content

知识库删除节点 ​

知识库删除节点根据文档 ID,从一个资源库知识库中删除指定文档。它适合清理失效资料、替换已归档文件,或由受控业务流程撤销已经写入的知识内容。

删除会直接影响后续知识库检索结果,且节点没有恢复入口。应把它视为高风险操作:只有在知识库和文档 ID 均经过确认时才执行,不能把未经校验的用户自由输入直接用于删除。

配置要点 ​

  • 输入参数固定为 String 类型的 documentID,一次只接收一个文档 ID。
  • 上游返回多个 documentId 时,应先明确选出一个元素,或通过循环、批处理逐项删除。
  • 一个节点最多选择一个资源库知识库;企业知识库不能作为删除目标。
  • 输出固定为 Boolean 类型的 isSuccess,不返回被删除文档详情或删除数量。

配置示例 ​

下面的专用截图工作流只用于展示配置,没有执行删除。示例将安全占位值 docs-demo-document-id 填入 documentID,目标选择 java知识库。

知识库删除节点及完整配置面板

实际流程中不要照抄占位值。应引用知识库写入节点返回的 documentId、知识库检索结果中经过明确选择的 documentId,或业务系统保存的受控文档 ID。

输入 ​

参数类型配置规则
documentIDString必填。填写固定文档 ID 或引用一个 String 变量;参数名称和类型不可修改。

注意大小写:删除节点的输入名是 documentID,而知识库写入、知识库检索输出中的字段名是 documentId。二者不是同一个字段名。通过“引用变量”选择上游输出时,编辑器会保存具体变量引用;手工编排数据时必须保留各自的准确大小写。

引用知识库写入结果 ​

知识库写入节点成功后会输出单个 documentId。如果流程需要稍后更新或撤销该文档,应把这个 ID 保存到受控业务记录,再在删除节点中引用,避免仅凭文件名定位。

引用知识库检索结果 ​

知识库检索节点返回 outputList,其中每一项才包含 documentId。删除节点不会自动处理整个列表,也不会自动取第一项。应先检查列表是否为空,再通过代码、选择器、循环或批处理明确确定要删除的条目。

不要仅根据召回文本相似就直接删除。更稳妥的做法是同时核对文档 ID、业务主键和目标知识库,并在必要时增加人工确认。

使用固定值 ​

只有当文档 ID 来自可信控制台、受控配置或业务数据时才使用固定值。不要把示例 ID、文件名或用户输入的普通文本当作真实文档 ID。

选择目标知识库 ​

点击“选择知识库”,从工作空间的资源库知识库中选择一个目标。节点最多选择一个知识库,且目标知识库必须与文档 ID 所属知识库一致。

企业知识库不在本节点的选择范围内。

输出 ​

节点固定输出一个只读变量:

输出类型说明
isSuccessBoolean本次删除操作是否成功。

下游应根据 isSuccess 设计成功和失败分支。固定输出不包含被删除文档、失败原因或删除数量;需要审计时,应在调用前记录目标知识库、文档 ID、业务来源和操作主体,并把运行失败交给统一异常处理或人工复核。

工作流校验 ​

保存或发布前,编辑器会检查:

  1. documentID 已填写固定值或绑定变量。
  2. 已选择一个资源库知识库。
  3. 文档 ID 与所选资源库知识库一致。

示例截图没有执行“测试节点”或“试运行”,这是为了避免占位文档 ID 触发真实删除。正式流程应在隔离的测试知识库中验证,并准备可以重新写入的测试文件。

推荐的文档更新流程 ​

  1. 从业务记录取得待替换文档 ID,并核对其所属知识库。
  2. 删除目标文档,判断 isSuccess。
  3. 仅在删除成功后写入替换文件。
  4. 保存知识库写入节点返回的 documentId,更新业务记录中的文档 ID。
  5. 对删除失败、写入失败和部分成功分别记录,避免业务记录与知识库实际状态不一致。

如果业务必须确保资料持续可用,可以先写入替换文件并验证可检索,再由人工或受控流程删除原文件;具体顺序应根据重复内容和短暂不可用哪一种风险更可接受来决定。

批量删除 ​

节点一次处理一个 documentID。删除多个文档时,应把经过确认的文档 ID 列表交给循环或批处理节点,并为每一项保留独立结果。

批量删除前建议增加:

  • 数量上限,防止异常列表扩大影响范围。
  • 知识库白名单,防止跨库误删。
  • 空值和重复 ID 过滤。
  • 失败项记录和人工复核,不对未知错误进行无上限重试。

常见问题 ​

为什么不能选择企业知识库? ​

企业知识库不提供本节点需要的文档删除能力,因此不会出现在可选目标中。

为什么不能直接引用整个 outputList? ​

documentID 需要一个 String,而 outputList 是对象数组。应先判断数组是否为空,再明确选择其中某一项的 documentId;多项删除使用循环或批处理。

会自动删除检索结果中的第一条吗? ​

不会。节点没有“自动取第一条”的配置或转换逻辑。

documentID 和 documentId 为什么写法不同? ​

这是节点契约的字段命名:删除节点输入使用 documentID,写入和检索输出使用 documentId。引用变量时选择正确的输出路径,不要手工把大小写统一。

删除后还能恢复吗? ​

工作流节点没有恢复操作。删除前应确认目标,并保留可以重新写入的原始文件或来源数据。