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. 知识库来源和所选资源信息一致。
  4. 目标不是当前不支持删除的企业知识库。

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

推荐的文档更新流程

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

如果业务必须确保新版本始终可用,可以先写入新版并验证可检索,再由人工或受控流程删除旧版;具体顺序应根据重复内容和短暂不可用哪一种风险更可接受来决定。

批量删除

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

批量删除前建议增加:

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

常见问题

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

当前企业知识库没有提供文档删除接口,编辑器也不会把它作为知识库删除节点的可选目标。旧文档中的知识库来源说明不适用于当前节点。

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

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

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

不会。当前节点没有“自动取第一条”的配置或转换逻辑。旧文档中的这一描述已经不适用。

documentIDdocumentId 为什么写法不同?

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

删除后还能恢复吗?

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