# 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 + 文件持久化 - 简单、快速、无需额外服务 - 适合大多数场景 ### 阶段2:ChromaDB(5000-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 - ❌ 需要更复杂的查询功能 --- **当前配置完全满足心理测评系统的需求!** 🎉