Knowledge Base Search Block(知识库搜索)
在工作流中对当前项目的知识库做语义检索,把最相关的内容以变量形式输出给下游 Block。
功能说明
Knowledge Base Search Block 是一个数据节点:它把查询文本转换为向量后,在当前项目的知识库中检索语义最相近的内容,按相似度排序输出。查询文本支持变量引用(ValueSource),可以动态使用上游 Block 的输出作为查询条件。
检索严格限定在当前项目内(项目隔离),且只命中与当前 embedding 配置一致的入库向量——不同配置入库的内容不会混在一起返回。
使用场景
- RAG 问答:先检索知识库获取相关上下文,再把结果传给 Generation Block 生成有依据的回答
- 内容查重 / 关联推荐:用上游生成的文本作为查询,找出知识库中相似的已有内容
- 条件路由:根据
total是否为 0 走 If-Else 分支(有资料走引用回答,无资料走兜底回答)
配置参数
| 属性名 | 类型 | 说明 | 默认值 |
|---|---|---|---|
query | string(JSON 序列化的 ValueSource) | 查询文本,支持变量引用。必填,为空时执行报错 | '' |
sourceTypesJSON | string(JSON 序列化的 string[]) | 来源类型过滤:data(数据)、file(文件)。空数组 = 搜索全部来源 | '[]' |
tagsJSON | string(JSON 序列化的 string[]) | 标签过滤:只命中打了所选标签的内容(标签来自项目知识库标签清单)。多标签为「或」关系(命中任一即返回);空数组 = 不按标签过滤 | '[]' |
similarityThreshold | string(JSON 序列化的 ValueSource) | 相似度阈值(0–1),低于阈值的结果被过滤,越界自动收敛 | 未填时按 0.5 |
limit | string(JSON 序列化的 ValueSource) | 返回条数(1–100),越界自动收敛 | 未填时按 10 |
输出变量
| 变量名 | 类型 | 说明 |
|---|---|---|
__default__ | array | 同 results |
results | array | 命中结果列表,按相似度从高到低排序 |
total | number | 命中条数 |
results 每项包含的主要字段:
| 字段 | 类型 | 说明 |
|---|---|---|
content | string | 命中的知识库内容文本 |
similarity | number | 相似度(0–1,越大越相似) |
source_type | string | 来源类型(data / file 等) |
source_id | string | 来源对象 ID |
level | number | 节点层级 |
path | string | null | 来源路径 |
metadata | object | 附加元数据 |
引用语法
{{kb_search_1}} -- 默认输出(结果数组)
{{kb_search_1.results}} -- 命中结果数组
{{kb_search_1.results.0.content}} -- 第一条结果的内容文本
{{kb_search_1.results.0.similarity}} -- 第一条结果的相似度
{{kb_search_1.total}} -- 命中条数使用示例
示例 1:RAG 问答
[Input: question] — 用户问题
|
[Knowledge Base Search: kb_ctx] — 查询: {{question}}, 条数: 5
|
[Generation Block] — "根据以下资料回答问题。
资料:{{kb_ctx.results}}
问题:{{question}}"示例 2:检索命中与否分流
[Knowledge Base Search: kb_check] — 查询: {{question}}
|
[If-Else Block] — 条件: {{kb_check.total}} > 0
├─ true: [Generation] — 基于 {{kb_check.results}} 引用回答
└─ false: [Generation] — 提示知识库暂无相关资料,给通用回答运行时约束
- 适用文档类型:所有文档类型(workflow、skill 均可使用)
- 可插入上下文:顶层文档、Condition 分支、Loop 内、Promise 分支
- 空结果是正常业务态:知识库为空或没有内容超过阈值时,照常成功输出
{ results: [], total: 0 },不会报错
注意事项
- 必须先有入库内容:知识库为空时检索照常成功但结果为空。入库方式见知识库功能页面(数据 / 文件入库)
- embedding 配置需一致:检索只命中与当前项目 embedding 配置相同的入库向量。中途更换 embedding 模型后,旧配置入库的内容将搜不到,需用新配置重新入库
- embedding 配置缺失会报错:项目和系统都未配置可用的 embedding 模型/凭证时,执行会报出明确错误并提示去管理后台补全
- 查询文本必填:
query为空(或变量解析结果为空)时执行报错终止 - 阈值与条数自动收敛:
similarityThreshold超出 0–1、limit超出 1–100 时自动收敛到边界值;未填写时分别按 0.5 / 10 处理 - 标签过滤只能选已有标签:配置面板的标签选项来自项目知识库标签清单(与知识库管理页侧栏同源),内容入库时打的标签才会被命中;选了标签后未打标签的内容不会出现在结果里