xinli/Archive/RAG-容量说明.md
2026-01-30 16:23:31 +08:00

204 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
- ❌ 需要更复杂的查询功能
---
**当前配置完全满足心理测评系统的需求!** 🎉