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

4.4 KiB
Raw Blame History

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秒

🚀 优化建议

当前配置(已优化)

# 文本分块配置
text-splitter:
  chunk-size: 800        # 分块大小
  chunk-overlap: 200     # 重叠大小

# 检索配置
retrieval:
  top-k: 5              # 返回前5个最相关片段
  similarity-threshold: 0.7  # 相似度阈值

如果需要更大容量

方案1调整分块大小

text-splitter:
  chunk-size: 1200      # 增大分块,减少片段数
  chunk-overlap: 200
  • 优点:减少片段数量,提高性能
  • 缺点:单个片段信息更多,可能降低精确度

方案2升级到ChromaDB

# 安装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个杂乱文档
  • 定期更新和维护知识库内容

🔧 监控和维护

查看当前容量

# 访问系统状态API
curl http://localhost:30081/api/knowledge/status

返回信息包括:

  • 文档片段数量
  • 内存占用
  • 查询性能统计

定期清理

  • 删除过时文档
  • 合并重复内容
  • 优化文档质量

备份策略

# 备份向量数据
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
  • 需要更复杂的查询功能

当前配置完全满足心理测评系统的需求! 🎉