向量存储节点
什么是向量存储节点?
向量存储节点是 Magic Flow 工作流中用于将文本内容存储到向量数据库的功能组件。它能够将文本内容转换为向量形式并保存在知识库中,便于后续的语义检索和内容匹配。简单来说,向量存储就像是一个智能信息仓库,不仅存储了内容本身,还保留了内容的语义特征,使得后续可以通过语义相似度进行查询。
图片说明:
向量存储节点界面展示了节点的主要配置区域,包括知识库选择、存储内容输入、元数据设置以及业务 ID 配置等参数设置选项
为什么需要向量存储节点?
在构建智能应用时,向量存储节点解决了以下关键问题:
- 知识沉淀:将重要信息转化为可检索的知识,建立企业专属知识库
- 语义理解:不同于传统数据库,向量存储保留了内容的语义信息,支持相似度检索
- 信息组织:通过元数据和业务 ID,对存储的内容进行分类和管理
- 自定义知识:为大模型提供专属知识支持,解决通用模型知识有限的问题
- 智能应用基础:为问答系统、推荐系统等智能应用提供数据基础
适用场景
1. 构建企业知识库
将公司文档、产品手册、操作指南等内容存储到向量库,形成可检索的企业知识体系,帮助员工快速获取所需信息。
2. 智能客服知识积累
存储常见问题解决方案、产品信息、服务流程等内容,为智能客服机器人提供知识支持,提高客户服务质量。
3. 个性化内容管理
存储用户偏好、历史交互记录等信息,为个性化推荐和服务提供数据支持,提升用户体验。
节点参数说明
基本参数
参数名称 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
选择知识库 | 选择要操作的知识库,通过【固定值或表达式】,从系统中已创建的知识库中选择 | 是 | 无 |
存储内容 | 需要存储到向量库的文本内容 | 是 | 无 |
业务 ID | 内容的唯一标识符,用于后续查询或删除操作 | 是 | 无 |
元数据 | 内容的附加信息,如分类、来源、时间等,便于筛选 | 否 | 无 |
输出内容
向量存储节点执行成功后,会在后台完成内容的存储,但不会直接输出特定的结果数据。成功存储后,该内容可通过向量搜索节点进行检索。
使用说明
基本配置步骤
- 选择知识库:
- 从下拉菜单中选择不同的方式
- 通过@动态引用上个节点的知识库或者是已创建的知识库
- 配置存储片段:
- 输入需要存储的文本内容
- 或使用变量引用动态内容,如
引用其他节点的输出
- 设置业务 ID:
- 输入一个唯一的业务标识符
- 推荐使用有意义的标识方式,如"产品 FAQ_001"或动态生成的 UUID
- 业务 ID 在后续删除或更新内容时非常重要
- 配置元数据(可选):
- 添加内容的分类、标签、来源等附加信息
- 元数据采用键值对形式,如"category: FAQ"、"source: 官网"
- 元数据可用于向量搜索时的筛选条件
进阶技巧
内容优化
为提高向量存储和后续检索的效果,建议对存储内容进行适当优化:
- 内容分块存储:
- 将长文本切分为较小的独立内容块再存储
- 使用文本切割节点处理长文本后再进行存储
- 推荐每个内容块控制在 500-1000 字之间
- 内容质量把控:
- 确保存储内容语义清晰、表达准确
- 去除无用的格式符号和冗余内容
- 适当增加上下文信息,提高可理解性
- 元数据设计:
- 设计合理的元数据结构,便于后续筛选
- 常用元数据包括:分类(category)、来源(source)、时间(time)等
- 使用统一的格式和命名规范
与其他节点协同
向量存储节点通常需要与其他节点结合使用:
- 搭配文本切割节点:
- 先将长文本切割成适合存储的片段
- 再循环存储每个切割后的片段
- 保持业务 ID 的关联性,如使用前缀+索引号
- 结合代码执行节点:
- 使用代码执行节点生成唯一业务 ID
- 或处理和格式化要存储的内容和元数据
- 配合 HTTP 请求节点:
- 从外部接口获取数据
- 经过处理后存储到向量库中
注意事项
业务 ID 设计
业务 ID 的设计直接影响到后续的内容管理效率:
- 确保业务 ID 的唯一性,避免重复存储覆盖现有内容
- 使用有意义且容易识别的 ID 命名方式,便于管理
- 考虑使用前缀+类别+序号的命名方式,如"PRD_FAQ_001"
- 如果使用随机 ID,确保保存好 ID 与内容的对应关系
内容格式与质量
存储内容的质量直接影响到后续检索效果:
- 避免存储过多无关信息,专注于核心内容
- 确保文本格式统一,去除 HTML 标签等格式符号
- 对于表格、图表等非文本内容,转换为文字描述后再存储
- 定期更新和维护知识库内容,保持信息的准确性和时效性
安全与权限
知识库数据的安全性需要特别注意:
- 避免存储敏感个人信息或公司机密
- 通过元数据设置访问权限标记
- 定期审核知识库内容,确保合规性
常见问题
问题 1:存储内容后无法通过向量搜索找到怎么办?
解决方案:
- 检查向量库 ID 是否匹配,确保搜索与存储使用同一个向量库
- 确认存储的内容质量,过短或无意义的内容可能难以检索
- 调整向量搜索节点的相似度阈值,适当降低以获取更多结果
- 检查搜索的查询文本是否与存储内容语义相关
问题 2:如何更新已存储的内容?
解决方案:
- 使用相同的业务 ID 重新存储内容,会覆盖原有内容
- 如需完全删除再创建,可先使用向量删除节点删除,再存储新内容
- 对于部分更新,建议使用完整的新内容覆盖旧内容,而不是仅更新部分
问题 3:大量内容存储性能较慢怎么处理?
解决方案:
- 对大量内容进行批次处理,避免一次存储过多数据
- 使用循环节点分批次存储内容
- 优化内容大小,仅存储必要信息
- 提前做好内容处理工作,减少存储时的运算负担
常见搭配节点
节点类型 | 搭配原因 |
---|---|
文本切割节点 | 将长文本分割成适合存储的片段 |
代码执行节点 | 处理内容、生成业务 ID 或元数据 |
向量搜索节点 | 检索已存储的向量内容 |
向量删除节点 | 删除不再需要的向量内容 |
循环节点 | 批量处理和存储多条内容 |