xinli/Archive/RAG-容量说明.md

204 lines
4.4 KiB
Markdown
Raw Permalink Normal View History

2026-01-30 16:23:31 +08:00
# RAG知识库容量说明
## 📊 当前配置容量
### SimpleVectorStore文件持久化
**推荐容量**
- 文档数量50-200个文档文件
- 文档片段1000-5000个片段
- 总文本量5-20MB
- 内存占用10-50MB
- 文件大小20-100MB
**适用场景**
- ✅ 心理测评标准文档10-50个
- ✅ 心理学理论知识20-100个
- ✅ 案例分析文档50-200个
- ✅ 干预建议文档20-100个
## 🔢 容量计算
### 单个文档处理
以一个10页的PDF文档为例
```
原始文档10页 × 500字/页 = 5000字
分块配置800字/块重叠200字
生成片段:约 8-10个片段
向量数据10片段 × 3KB = 30KB
```
### 知识库规模示例
**小型知识库(推荐)**
- 文档数量50个
- 文档片段500个
- 内存占用:~5MB
- 文件大小:~10MB
- 查询速度:极快(<50ms
**中型知识库**
- 文档数量200个
- 文档片段2000个
- 内存占用:~20MB
- 文件大小:~40MB
- 查询速度:快(<100ms
**大型知识库(接近上限)**
- 文档数量500个
- 文档片段5000个
- 内存占用:~50MB
- 文件大小:~100MB
- 查询速度:较快(<200ms
## ⚠️ 性能影响因素
### 1. 内存占用
- 所有向量数据加载到内存
- 建议JVM堆内存至少512MB
- 推荐配置:`-Xmx1024m`
### 2. 查询速度
- 线性扫描所有向量
- 1000片段~50ms
- 5000片段~200ms
- 10000片段~500ms不推荐
### 3. 启动时间
- 需要从文件加载所有数据
- 1000片段~1秒
- 5000片段~3秒
- 10000片段~10秒
### 4. 保存时间
- 每次添加/删除都会保存
- 1000片段~0.5秒
- 5000片段~2秒
## 🚀 优化建议
### 当前配置(已优化)
```yaml
# 文本分块配置
text-splitter:
chunk-size: 800 # 分块大小
chunk-overlap: 200 # 重叠大小
# 检索配置
retrieval:
top-k: 5 # 返回前5个最相关片段
similarity-threshold: 0.7 # 相似度阈值
```
### 如果需要更大容量
**方案1调整分块大小**
```yaml
text-splitter:
chunk-size: 1200 # 增大分块,减少片段数
chunk-overlap: 200
```
- 优点:减少片段数量,提高性能
- 缺点:单个片段信息更多,可能降低精确度
**方案2升级到ChromaDB**
```bash
# 安装ChromaDB
pip install chromadb
# 启动服务
chroma run --path D:/wwwroot/RAG/data/chroma_db --port 8000
```
- 支持10万+文档片段
- 性能:使用索引,查询速度快
- 持久化:专业的向量数据库
**方案3使用数据库存储**
- 将向量存储到MySQL/PostgreSQL
- 使用pgvector扩展PostgreSQL
- 适合超大规模数据
## 📈 扩容路线图
### 阶段1当前方案0-5000片段
✅ SimpleVectorStore + 文件持久化
- 简单、快速、无需额外服务
- 适合大多数场景
### 阶段2ChromaDB5000-100000片段
- 专业向量数据库
- 支持更大规模
- 需要额外服务
### 阶段3企业级方案100000+片段)
- Milvus / Qdrant / Weaviate
- 分布式部署
- 高可用架构
## 💡 实际使用建议
### 心理测评系统场景
**核心知识库**(推荐):
- 测评标准20个文档
- 理论知识50个文档
- 案例分析100个文档
- 干预建议30个文档
- **总计200个文档约2000片段**
**预期性能**
- 内存占用:~20MB
- 查询速度:<100ms
- 启动时间:~2秒
- 完全满足需求 ✅
### 文档质量 > 数量
重要提示:
- 📚 精选高质量文档比大量低质量文档更有效
- 🎯 200个精心整理的文档 > 1000个杂乱文档
- ✨ 定期更新和维护知识库内容
## 🔧 监控和维护
### 查看当前容量
```bash
# 访问系统状态API
curl http://localhost:30081/api/knowledge/status
```
返回信息包括:
- 文档片段数量
- 内存占用
- 查询性能统计
### 定期清理
- 删除过时文档
- 合并重复内容
- 优化文档质量
### 备份策略
```bash
# 备份向量数据
copy D:\wwwroot\RAG\data\chroma_db\vector_store.json backup_20250119.json
# 备份文档
xcopy D:\wwwroot\RAG\uploads backup_uploads\ /E /I
```
## 📞 何时需要升级
如果出现以下情况考虑升级到ChromaDB
- ❌ 文档片段超过5000个
- ❌ 查询速度超过500ms
- ❌ 启动时间超过10秒
- ❌ 内存占用超过100MB
- ❌ 需要更复杂的查询功能
---
**当前配置完全满足心理测评系统的需求!** 🎉