知识库管理
AIME Chat 的知识库在本地保存文档、索引和检索结果。它既可以只使用 BM25 全文检索,也可以组合语义向量、BM25 和重排模型,为聊天与 Agent 工具提供依据。
功能概述
- 📄 从网页、直接输入的文本或一个/多个文件导入内容;Agent 工具还可按文件夹导入
- 🔍 使用 BM25,或使用语义向量 + BM25 的混合检索
- 🎯 可选重排模型,并在模型不可用时保留全文检索兜底
- 📖 从命中的片段继续读取原始内容;长文支持模式搜索和分页
- 💡 基于知识库进行智能问答
- 📊 管理多个彼此独立的知识库
支持的内容格式
| 格式 | 常见扩展名 | 说明 |
|---|---|---|
| 文本与代码 | .txt, .csv, .json 等 | 可读取的纯文本会直接分块 |
| Markdown | .md, .mdx | 保留适合分块的标题和段落结构 |
.pdf | 提取文本;扫描件可使用 OCR | |
| Word | .doc, .docx | 提取文档正文 |
| Excel | .xls, .xlsx | 按工作表读取非空单元格,并生成带原始行列坐标的有界预览 |
| PowerPoint | .ppt, .pptx | 提取幻灯片文本内容 |
| 图片 | .png, .jpg, .jpeg 等 | 通过 OCR 提取文字;多模态向量模型还可用于图片相似度检索 |
Excel 与扫描件
大型 Excel 工作簿会限制工作表、行列和单元格输出,避免一次导入占用过多上下文。需要完整覆盖时,建议拆分关键工作表或转换为 CSV。PDF/图片 OCR 的效果取决于当前配置的 OCR 运行库和模型。
使用步骤
1. 创建知识库
- 进入 知识库 页面
- 点击 创建知识库
- 填写名称和描述
- 按需选择向量模型与重排模型
- 决定是否启用 强制返回全文,然后创建
向量模型是可选项:
- 未选择向量模型时,只建立 BM25 全文索引
- 选择向量模型时,同时建立语义向量和 BM25 索引,查询时融合两类结果
- 重排模型会对候选片段再次排序,适合对召回精度要求较高的知识库
2. 导入内容
- 打开已创建的知识库
- 选择添加文本、网页或一个/多个文件;需要按文件夹批量导入时,可让启用了知识库工具的 Agent 执行
- 提交导入任务
- 等待后台解析、分块和索引完成
导入任务会在后台队列中按知识库顺序执行。配置了向量模型时会额外计算向量,因此大批量导入所需时间更长。
3. 搜索或在聊天中使用
- 可以在知识库详情页直接搜索,查看检索类型、得分、来源和原始内容
- 在 Agent/工具配置中启用知识库工具后,AI 可先搜索相关片段,再读取对应的原始条目
- 图片检索需要兼容图片向量的多模态 embedding 模型;未配置 embedding 时不可用
- 以实际存在的本地图片文件进行以图搜图时,会跳过文本重排模型,避免把图片路径和图片片段交给文本 reranker;文本查询仍按配置进行重排
检索流程
用户问题
├─ BM25 全文检索 ───────────┐
└─ 语义向量检索(可选)─────┤
├─ 结果融合 ─ 可选重排 ─ 返回相关片段
└─ 向量不可用时使用 BM25 结果
- 解析与分块:把导入内容转换为文本并切成适合检索的片段
- 全文索引:所有文本片段都会进入本地 BM25 索引
- 向量索引(可选):配置 embedding 后,为文本或兼容的图片计算向量
- 融合与重排:文本查询融合语义和全文结果,并可使用 reranker 再排序
- 原文读取:命中片段包含来源条目 ID,Agent 可继续读取完整原文
长文读取
默认情况下,读取知识库原文会返回带行号的有限区间,避免把超长文档一次放入上下文。Agent 可以:
- 使用模式或正则表达式在完整原文中定位关键词
- 使用
offset和limit分页读取后续内容 - 在知识库启用 强制返回全文 后,直接返回完整原文
强制返回全文适合短小且必须整体阅读的资料;对大型文档保持关闭通常更稳妥。
更换向量模型
编辑知识库并更换 embedding 模型时,AIME Chat 会要求确认并重新计算全部向量。新索引完整生成后才会替换旧索引;如果任一步骤失败,原模型与原数据会保留。
处理期间请等待进度完成,不要关闭重算窗口,也不要同时修改知识库内容。
备份与迁移
知识库可以导出为独立的 SQLite 文件,并在另一套 AIME Chat 数据中重新导入。
导出
- 打开知识库详情页
- 点击右上角 导出
- 确认导出 ID;需要在目标环境中使用另一个 ID 时可在这里修改
- 选择
.sqlite或.db保存位置
导出文件包含该知识库的元数据、条目和索引表。它不是整个 AIME Chat 应用数据库的备份。
导入
- 回到知识库列表
- 点击列表顶部的 SQLite 导入按钮
- 选择
.sqlite或.db文件 - 如果同 ID 知识库已存在,选择 追加 或 覆盖
- 追加:只导入目标知识库中不存在的条目;两边的向量长度必须一致
- 覆盖:删除同 ID 知识库的现有条目与索引,再完整导入文件内容
覆盖前先备份
覆盖会替换同 ID 的本地知识库。执行前先导出现有版本,并核对来源文件、知识库名称、ID 与 embedding 配置。
最佳实践
文档准备
- 使用清晰的标题、段落和稳定术语
- 删除重复、过时或互相矛盾的内容
- 对大型表格只导入真正需要检索的工作表和范围
- 对扫描件先确认 OCR 结果可读,再用于高精度问答
知识库组织
- 按主题、权限或更新周期拆分知识库
- 为专业领域选择合适的 embedding;精确关键词较多的资料可保留 BM25-only
- 需要更高排序质量时再启用 reranker,避免不必要的模型调用
- 定期更新来源,并删除已经失效的条目
提问技巧
- 使用文档中真实出现的专有名词、编号或时间范围
- 要求 AI 给出来源名称或先展示命中片段
- 结果不理想时,分别尝试更明确的关键词和语义化问法
本地存储
- LibSQL 保存知识库、条目、文本片段、全文索引和可选向量
- 文档内容与索引默认保留在本机应用数据目录
- 新增和删除条目会同步更新全文与向量索引
常见问题
文档解析失败
- 确认文件未损坏且不是受密码保护的文档
- 对 PDF、Word 或图片检查 OCR 运行库与默认 OCR 模型
- 对超大 Excel 拆分工作表,或转换为 CSV 后重新导入
- 在 关于 页面打开日志,查看具体解析错误
检索不到内容
- 确认导入任务已完成,条目处于可用状态
- 未配置向量模型时,使用文档中实际存在的关键词触发 BM25
- 配置向量模型后仍失败时,系统会回退到 BM25;检查当前模型服务是否可用
- 确认问题与已导入文档属于同一知识库
更换向量模型后处理时间较长
重算会遍历现有文本和兼容图片,并在完成后原子切换索引。内容越多,耗时越长;等待进度结束后再继续导入或编辑条目。