向量知识库匹配节点
什么是向量知识库匹配节点?
向量知识库匹配节点是 Magic Flow 工作流中专门用于检索和匹配向量知识库内容的节点。它能帮助您根据特定条件筛选出需要的向量知识库,为后续的相关操作(如相似度搜索、知识问答等)提供基础支持。简单来说,这个节点就像是在您的向量知识库中筛选出合适的"书架",以便后续可以在这些"书架"上查找相关信息。
图片说明:
向量知识库匹配节点界面主要由两部分组成 - 上方的"配置筛选条件"区域,用于设置向量知识库的筛选条件;下方的"输出"区域,显示筛选后的向量知识库列表。筛选条件支持按 ID 或名称进行等于、不等于、包含、不包含等多种匹配方式。
为什么需要向量知识库匹配节点?
在智能应用的构建过程中,向量知识库匹配节点扮演着"知识筛选器"的角色,它能够帮助您:
- 精准定位知识源:从多个向量知识库中筛选出符合特定条件的知识库
- 提高检索效率:缩小后续向量搜索的范围,提高检索精度和速度
- 动态选择知识库:根据不同场景或用户需求,动态选择适合的知识库
- 多条件组合筛选:支持多条件组合筛选,实现复杂的知识库匹配逻辑
- 为下游节点提供数据:为后续的向量搜索节点提供经过筛选的知识库列表
适用场景
1. 多领域智能问答系统
当您构建一个涵盖多个领域的问答系统时,可以先通过向量知识库匹配节点根据用户的问题领域筛选出相关领域的知识库,然后再进行精确的内容检索,提高回答的准确性。
2. 权限控制的知识检索
在企业内部,不同部门或角色可能有权访问不同的知识库。通过向量知识库匹配节点,可以根据用户的部门或角色信息筛选出其有权访问的知识库,确保信息安全。
3. 多知识库协同检索
当需要在多个相关知识库中进行协同检索时,可以先通过向量知识库匹配节点筛选出这些相关知识库,然后在这些知识库中进行统一检索,获取更全面的信息。
节点参数说明
基本参数
参数名称 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
检索条件 | 设置检索向量知识库的条件组合 | 是 | 无 |
检索条件详解
条件组成部分 | 可选值 | 说明 |
---|---|---|
左值类型 | 知识库 ID | 按知识库唯一标识符筛选 |
知识库名称 | 按知识库名称筛选 | |
操作符 | 等于 | 完全匹配指定值 |
不等于 | 排除与指定值完全匹配的结果 | |
包含 | 包含指定字符串 | |
不包含 | 不包含指定字符串 | |
右值 | 自定义输入 | 输入具体的筛选值,可以是 ID 或名称(取决于左值类型) |
输出内容
输出字段 | 说明 |
---|---|
向量知识库列表(vector_databases) | 筛选后的向量知识库列表,包含每个知识库的 ID 和名称 |
使用说明
基本配置步骤
- 添加检索条件:
- 点击"添加条件"按钮添加一个筛选条件
- 从左值类型下拉菜单中选择"知识库 ID"或"知识库名称"
- 选择适当的操作符(等于、不等于、包含、不包含)
- 在右值输入框中输入具体的筛选值
- 设置多个条件(可选):
- 如需设置多个条件,重复点击"添加条件"按钮
- 多个条件之间可以选择"且"或"或"的关系
- 条件组合(可选):
- 对于复杂的筛选逻辑,可以创建条件组
- 点击"添加条件组"按钮创建一个新的条件组
- 在条件组内添加条件,并设置条件之间的关系
- 预览输出:
- 配置完成后,可以在节点的输出部分预览筛选后的向量知识库列表
进阶技巧
高效的检索策略
- 精确筛选:当您明确知道目标知识库的 ID 或完整名称时,使用"等于"操作符进行精确匹配
- 模糊筛选:当您只知道知识库名称的部分信息时,使用"包含"操作符进行模糊匹配
- 排除策略:使用"不等于"或"不包含"操作符排除不需要的知识库
与其他节点协同
向量知识库匹配节点通常需要与其他节点结合使用:
- 搭配向量搜索节点:
- 使用向量知识库匹配节点筛选出相关知识库
- 然后使用向量搜索节点在这些知识库中进行内容相似度检索
- 结合条件分支节点:
- 根据筛选结果是否为空决定后续流程
- 可以设置在未找到匹配知识库时的备用方案
- 配合大模型调用节点:
- 将筛选出的知识库信息传递给大模型
- 让大模型基于这些特定知识库生成回答
注意事项
权限限制
节点只能筛选当前用户有权限访问的向量知识库:
- 无权限访问的知识库不会出现在筛选结果中,即使它们符合筛选条件
- 确保流程创建者对相关知识库有读取权限
性能考量
当知识库数量较多时,复杂的筛选条件可能影响执行效率:
- 尽量使用精确的筛选条件
- 避免使用过多的"包含"或"不包含"操作符
- 尽可能减少条件组的嵌套层级
空结果处理
如果筛选条件过于严格,可能导致没有知识库符合条件:
- 务必在流程中处理可能出现的空结果情况
- 考虑使用条件分支节点检查筛选结果是否为空
常见问题
问题 1:检索后没有返回任何知识库,但我确定有符合条件的知识库,可能是什么原因?
解决方案:可能的原因包括:
- 权限问题:您可能没有访问这些知识库的权限
- 条件设置错误:检查筛选条件的拼写、大小写等是否正确
- 知识库状态:目标知识库可能已禁用或删除
问题 2:如何同时按 ID 和名称筛选知识库?
解决方案:您可以添加多个筛选条件:
- 添加第一个条件,选择"知识库 ID"作为左值类型,设置相应的操作符和右值
- 点击"添加条件"按钮,添加第二个条件
- 选择"知识库名称"作为左值类型,设置相应的操作符和右值
- 在两个条件之间选择"且"或"或"的关系
问题 3:节点输出的向量知识库列表如何在后续节点中使用?
解决方案:输出的向量知识库列表可以在后续节点中通过变量引用使用:
- 在向量搜索节点中,可以引用
上一节点输出.vector_databases
- 如需获取特定知识库的 ID,可以使用
上一节点输出.vector_databases[0].id
- 在代码执行节点中,可以通过 JavaScript 访问和处理这些数据
常见搭配节点
节点类型 | 搭配原因 |
---|---|
向量搜索节点 | 在筛选出的知识库中进行内容相似度检索 |
条件分支节点 | 根据筛选结果决定后续处理流程 |
大模型调用节点 | 将筛选后的知识库用于知识增强问答 |
变量保存节点 | 保存筛选结果供后续多个节点使用 |
代码执行节点 | 对筛选结果进行高级处理或转换 |