xinli/Archive/RAG知识库-完整配置总结.md
2026-01-30 16:23:31 +08:00

372 lines
7.3 KiB
Markdown
Raw 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知识库系统 - 完整配置总结
## ✅ 已完成的配置
### 1. 系统架构
**混合模式Hybrid Mode**
- 📥 文档嵌入本地Ollama (`nomic-embed-text`)
- 🤖 AI生成远程Kimi API (`moonshot-v1-32k`)
- 💾 向量存储SimpleVectorStore文件持久化
### 2. 配置文件
**application.yml**
```yaml
rag:
mode: hybrid # 混合模式
openai:
base-url: https://api.moonshot.cn/v1
api-key: sk-U9fdriPxwBcrpWW0Ite3N0eVtX7VxnqqqYUIBAdWd1hgEA9m
generate-model: moonshot-v1-32k
ollama:
url: http://localhost:11434
embed-model: nomic-embed-text
storage:
upload-path: D:/wwwroot/RAG/uploads
log-path: D:/wwwroot/RAG/logs
chroma-data-path: D:/wwwroot/RAG/data/chroma_db
```
### 3. 目录结构
```
D:\wwwroot\RAG\
├── uploads\ # 文档上传目录
├── logs\ # 系统日志
└── data\
└── chroma_db\
└── vector_store.json # 向量数据持久化文件
```
### 4. 后端功能
**控制器**`PsyKnowledgeController.java`
- ✅ 文档上传(自动处理)
- ✅ 文档列表查询
- ✅ 文档详情查看
- ✅ 文档删除
- ✅ 文档搜索
- ✅ 重建索引
- ✅ 获取统计信息
- ✅ 清空知识库
**服务层**`KnowledgeService.java`
- ✅ 自动解析文档
- ✅ 自动分块处理
- ✅ 自动生成向量
- ✅ 自动存储到向量库
- ✅ 文档索引管理
**向量存储**`SimpleVectorStore.java`
- ✅ 内存存储
- ✅ 文件持久化
- ✅ 自动加载/保存
- ✅ 余弦相似度检索
### 5. 前端页面
**知识库管理**`xinli-ui/src/views/psychology/knowledge/index.vue`
- ✅ 统计卡片(文档数、片段数、服务状态)
- ✅ 文档上传(拖拽上传、分类选择)
- ✅ 文档列表(分页、查看、删除)
- ✅ 重建索引
- ✅ 清空知识库
## 🚀 使用流程
### 方式1Web界面上传推荐
1. 登录系统
2. 进入"知识库管理"页面
3. 点击"上传文档"
4. 选择分类和文件
5. 点击确定
6. **系统自动处理**
```
上传 → 保存 → 解析 → 分块 → 向量化 → 存储 → 完成
```
### 方式2批量处理
1. 将文档放入 `D:\wwwroot\RAG\uploads\`
2. 运行 `处理上传文件.bat`
3. 或在Web界面点击"重建索引"
### 方式3API调用
```bash
# 上传文档
POST /psychology/knowledge/upload
Content-Type: multipart/form-data
file: [文件]
category: assessment
# 重建索引
POST /psychology/knowledge/rebuild
# 查看状态
GET /psychology/knowledge/statistics
```
## 📊 系统容量
**推荐配置**
- 文档数量50-200个
- 文档片段1000-5000个
- 内存占用10-50MB
- 查询速度50-200ms
**适用场景**
- ✅ 心理测评标准文档
- ✅ 心理学理论知识
- ✅ 案例分析文档
- ✅ 干预建议文档
## 🔧 维护操作
### 检查状态
**使用脚本**
```bash
检查知识库状态.bat
```
**使用API**
```bash
curl http://localhost:30081/api/knowledge/statistics
```
**查看文件**
```
D:\wwwroot\RAG\data\chroma_db\vector_store.json
```
### 备份数据
```bash
# 备份向量数据
copy D:\wwwroot\RAG\data\chroma_db\vector_store.json backup\
# 备份文档
xcopy D:\wwwroot\RAG\uploads backup\uploads\ /E /I
```
### 清空知识库
**Web界面**:点击"清空知识库"按钮
**API调用**
```bash
curl -X DELETE http://localhost:30081/api/knowledge/clear
```
## 🎯 AI分析使用
### 在测评报告中使用
1. 进入"测评报告"页面
2. 选择一个报告
3. 点击"AI分析"按钮
4. 系统流程:
```
分析测评结果
从知识库检索相关知识Ollama嵌入
构建提示词(包含检索到的知识)
调用Kimi API生成分析
显示分析结果和知识来源
```
### 分析质量优化
**提高质量的方法**
1. 上传高质量、专业的文档
2. 确保文档内容与测评相关
3. 文档结构清晰、分段明确
4. 定期更新知识库内容
5. 删除无效或过时的文档
## 📝 支持的文档格式
- `.txt` - 纯文本文件
- `.pdf` - PDF文档
- `.docx` - Word文档
- `.md` - Markdown文档
**文件限制**
- 单个文件最大 10MB
- 建议文档内容清晰、结构化
## 🔍 工作原理
### 文档处理流程
```
1. 上传文档
2. 保存到 D:/wwwroot/RAG/uploads
3. 解析文档内容DocumentParser
4. 文本分块TextSplitter
- 块大小800字符
- 重叠200字符
5. 生成向量Ollama
- 模型nomic-embed-text
- 维度768维
6. 存储到SimpleVectorStore
- 内存存储
- 自动保存到 vector_store.json
7. 完成!可立即使用
```
### AI分析流程
```
1. 用户请求AI分析
2. 提取测评结果关键信息
3. 生成查询向量Ollama
4. 检索相关知识片段Top-5
- 使用余弦相似度
- 相似度阈值0.7
5. 构建提示词
- 系统角色:心理咨询专家
- 测评结果
- 检索到的知识
6. 调用Kimi API生成分析
- 模型moonshot-v1-32k
- 上下文32k tokens
7. 返回分析结果和知识来源
```
## 💰 成本说明
**免费部分**
- ✅ 文档处理本地Ollama
- ✅ 向量生成本地Ollama
- ✅ 知识检索本地SimpleVectorStore
- ✅ 数据存储(本地文件)
**付费部分**
- 💰 AI报告生成Kimi API
- 按调用次数计费
- 你的API额度
## ⚙️ 配置参数
### 文本分块
```yaml
text-splitter:
chunk-size: 800 # 分块大小(字符)
chunk-overlap: 200 # 重叠大小(字符)
```
### 检索参数
```yaml
retrieval:
top-k: 5 # 返回前5个最相关片段
similarity-threshold: 0.7 # 相似度阈值
```
### 存储路径
```yaml
storage:
upload-path: D:/wwwroot/RAG/uploads
log-path: D:/wwwroot/RAG/logs
chroma-data-path: D:/wwwroot/RAG/data/chroma_db
```
## 🛠️ 故障排查
### 问题1上传失败
**可能原因**
- Ollama未运行
- 文件格式不支持
- 文件大小超限
- 磁盘空间不足
**解决方法**
1. 检查Ollama`ollama list`
2. 检查文件格式和大小
3. 查看应用日志
### 问题2AI分析没有使用知识库
**可能原因**
- 知识库为空
- 文档内容不相关
- 相似度阈值过高
**解决方法**
1. 检查知识库状态
2. 上传相关文档
3. 调整相似度阈值
### 问题3向量数据丢失
**可能原因**
- 文件被删除
- 文件权限问题
- 保存失败
**解决方法**
1. 检查 `vector_store.json` 是否存在
2. 检查文件权限
3. 重建索引
### 问题4性能慢
**可能原因**
- 文档数量过多
- Ollama性能不足
- 内存不足
**解决方法**
1. 删除无用文档
2. 升级硬件
3. 调整分块大小
## 📚 相关文档
- `README-RAG-SYSTEM.md` - 系统概述
- `RAG-使用指南.md` - 使用指南
- `RAG-容量说明.md` - 容量说明
- `知识库管理-使用说明.md` - 管理说明
- `快速开始-知识库.md` - 快速开始
## 🎉 总结
系统已完整配置,具备:
- ✅ 自动文档处理
- ✅ 持久化存储
- ✅ Web管理界面
- ✅ AI分析功能
- ✅ 完整的API
现在可以开始使用了!
---
**配置完成时间**2025-12-19
**系统版本**1.0.0