知识库管理
使用 DataMate 构建和管理 RAG 知识库
知识库管理模块帮助您构建企业知识库,实现高效的向量检索和 RAG 应用。
功能概述
知识库管理模块提供:
- 文档上传:支持多种文档格式的上传
- 文本切分:智能文本分块策略
- 向量化:自动将文本转换为向量
- 向量检索:基于相似度的语义检索
- 知识库问答:集成 RAG 的智能问答
支持的文档格式
| 格式 | 说明 | 推荐场景 |
|---|---|---|
| TXT | 纯文本 | 通用文本 |
| PDF 文档 | 文档、报告 | |
| Markdown | Markdown 文件 | 技术文档 |
| JSON | JSON 数据 | 结构化数据 |
| CSV | CSV 表格 | 表格数据 |
| DOCX | Word 文档 | Office 文档 |
快速开始
1. 创建知识库
步骤 1:进入知识库页面
在左侧导航栏选择 知识生成。
步骤 2:创建知识库
点击右上角 创建知识库 按钮。
步骤 3:配置基本信息
- 知识库名称:例如
company_docs_kb - 知识库描述:描述知识库用途(可选)
- 知识库类型:通用 / 专业领域
步骤 4:配置向量参数
嵌入模型:选择嵌入模型
- OpenAI text-embedding-ada-002
- BGE-M3
- 自定义模型
向量维度:根据模型自动设置
索引类型:IVF_FLAT / HNSW / IVF_PQ
步骤 5:配置切分策略
切分方式:
- 按字符数切分
- 按段落切分
- 按语义切分
块大小:每个文本块的大小(字符数)
重叠大小:相邻块的重叠大小
步骤 6:创建知识库
点击 创建 按钮完成创建。
2. 上传文档
步骤 1:进入知识库详情
点击知识库名称进入详情页面。
步骤 2:上传文档
- 点击 上传文档 按钮
- 选择本地文件
- 等待上传完成
系统会自动:
- 解析文档内容
- 切分文本
- 生成向量
- 建立索引
步骤 3:查看处理状态
在文档列表中可以看到处理状态:
| 文件名 | 大小 | 状态 | 文本块数 | 向量化进度 | 操作 |
|---|---|---|---|---|---|
| doc1.pdf | 2.3 MB | 已完成 | 150 | 100% | 查看详情 |
| doc2.txt | 156 KB | 处理中 | - | 50% | 查看详情 |
| doc3.md | 45 KB | 等待中 | - | 0% | 查看详情 |
3. 向量检索
步骤 1:进入检索页面
在知识库详情页面,点击 向量检索 标签。
步骤 2:输入查询
在搜索框输入查询内容,例如:
如何使用 DataMate 进行数据清洗?
步骤 3:查看检索结果
系统返回最相关的文本块及其相似度分数:
| 排名 | 文本块 | 相似度 | 来源文档 | 操作 |
|---|---|---|---|---|
| 1 | DataMate 的数据清洗模块… | 0.92 | user_guide.pdf | 查看 |
| 2 | 配置清洗任务… | 0.87 | tutorial.md | 查看 |
| 3 | 清洗算子列表… | 0.81 | reference.txt | 查看 |
高级检索
点击 高级检索,可以:
- 设置 Top-K:返回前 K 个结果(默认 5)
- 设置阈值:过滤低于相似度阈值的结果
- 过滤文档:限定检索范围
- 重排序:使用重排序模型优化结果
4. 知识库问答(RAG)
步骤 1:启用 RAG
在知识库详情页面,点击 RAG 问答 标签。
步骤 2:配置 RAG 参数
- 大语言模型:选择使用的 LLM
- 检索数量:检索的文本块数量
- 温度:控制生成随机性
- 提示词模板:自定义问答模板
步骤 3:进行问答
在对话框输入问题,例如:
用户:DataMate 支持哪些数据清洗算子?
助手:DataMate 支持丰富的数据清洗算子,包括:
1. 数据质量算子:去重、空值处理、异常值检测...
2. 文本清洗算子:去除特殊字符、大小写转换...
3. 图像清洗算子:格式转换、质量检测...
[来源:user_guide.pdf, tutorial.md]
助手会:
- 检索相关文本块
- 基于检索内容生成答案
- 标注答案来源
高级功能
文本切分策略
字符切分
按固定字符数切分:
- 块大小:500 字符
- 重叠:50 字符
段落切分
按段落边界切分:
- 保持段落完整性
- 适合结构化文档
语义切分
基于语义相似度切分:
- 保持语义完整性
- 适合长文档
- 需要额外模型
自定义嵌入模型
使用本地模型
- 部署本地嵌入模型服务
- 在知识库配置中选择自定义模型
- 填写模型服务地址
示例:
模型服务地址:http://localhost:8000/embeddings
请求格式:
{
"texts": ["文本1", "文本2"],
"model": "bge-m3"
}
使用 OpenAI
{
"provider": "openai",
"model": "text-embedding-ada-002",
"api_key": "your-api-key"
}
知识库管理
更新知识库
当文档变更时,可以:
- 重新索引:重新生成所有文档的向量
- 增量更新:只更新变更的文档
- 删除文档:从知识库中删除文档
导出知识库
支持导出:
- 文档列表:导出为 CSV
- 向量数据:导出为 NPY/CSV
- 元数据:导出为 JSON
知识库统计
查看知识库统计信息:
- 文档数量:总文档数
- 文本块数量:总文本块数
- 向量数量:总向量数
- 存储大小:向量存储大小
- 更新时间:最后更新时间
多知识库管理
创建多个知识库
可以根据不同主题创建多个知识库:
product_kb:产品文档technical_kb:技术文档hr_kb:人力资源文档
联合检索
在多个知识库中同时检索:
- 选择要检索的知识库
- 执行检索
- 结果汇总并排序
最佳实践
1. 文档准备
上传文档前的准备工作:
- 格式统一:转换为统一的格式(如 PDF、Markdown)
- 清理内容:删除无关内容(页眉页脚、广告等)
- 结构化:保持良好的文档结构
- 元数据:添加文档元数据(作者、日期、标签等)
2. 切分策略选择
根据文档类型选择:
| 文档类型 | 推荐策略 | 块大小 |
|---|---|---|
| 技术文档 | 段落切分 | - |
| 长报告 | 语义切分 | - |
| 短文本 | 字符切分 | 500 |
| 代码 | 字符切分 | 300 |
3. 向量参数调优
根据需求调整:
| 场景 | 向量维度 | 索引类型 |
|---|---|---|
| 高精度 | 1536 | HNSW |
| 快速检索 | 768 | IVF_FLAT |
| 大规模 | 512 | IVF_PQ |
4. RAG 提示词设计
设计有效的 RAG 提示词:
你是一个专业的客服助手。请基于以下知识库内容回答用户问题。
知识库内容:
{context}
用户问题:
{question}
回答要求:
1. 只基于知识库内容回答
2. 如果知识库中没有相关信息,明确告知
3. 回答要准确、详细
4. 标注信息来源
请回答:
常见问题
Q: 文档上传后一直处于"处理中"状态?
A: 检查以下项目:
- 文档格式:确保文档格式被支持
- 文档大小:单个文档不超过 100MB
- 向量服务:检查向量服务是否正常运行
- 查看日志:查看详细错误信息
Q: 检索结果不准确?
A: 优化建议:
- 调整切分策略:尝试不同的切分方式
- 增加块大小:增加上下文信息
- 使用重排序:启用重排序模型
- 优化查询:使用更明确的查询语句
- 更换嵌入模型:尝试其他嵌入模型
Q: RAG 回答质量不佳?
A: 改进建议:
- 增加检索数量:检索更多相关文本块
- 优化提示词:改进问答提示词模板
- 更换 LLM:尝试更强大的模型
- 人工审核:人工审核和优化回答
Q: 如何处理大文档?
A: 大文档处理建议:
- 拆分文档:将大文档拆分为多个小文档
- 分批上传:分批上传和处理
- 使用语义切分:保持语义完整性
- 异步处理:选择异步处理模式
Q: 如何更新知识库?
A: 知识库更新方式:
- 单个文档更新:删除旧文档,上传新文档
- 批量更新:使用批量导入功能
- 全量重建:清空知识库,重新上传
- API 更新:通过 API 接口更新
API 参考
详细的 API 文档请参考:
相关文档
意见反馈
这个页面对您有帮助吗?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.