xinli/Archive/RAG-QUICK-START.md
2026-01-30 16:23:31 +08:00

408 lines
7.9 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知识库系统 - 快速启动指南
## 🚀 快速启动步骤
### 1. 环境检查
确保以下服务已安装并运行:
```bash
# 检查Java
java -version
# 应该显示: java version "1.8.0" 或更高
# 检查Ollama
curl http://localhost:11434/api/tags
# 应该返回模型列表JSON
# 检查Python
python --version
# 应该显示: Python 3.8+ 或更高
```
### 2. 启动ChromaDB
```bash
# 安装ChromaDB (首次运行)
pip install chromadb
# 启动ChromaDB服务
chroma run --path D:\wwwroot\RAG\data\chroma_db --port 8000
```
保持此窗口打开ChromaDB将在后台运行。
### 3. 创建必要目录
```bash
# 创建数据目录
mkdir D:\wwwroot\RAG\uploads
mkdir D:\wwwroot\RAG\logs
mkdir D:\wwwroot\RAG\data\chroma_db
```
### 4. 启动Spring Boot应用
```bash
# 方式1: 使用Maven直接运行
cd ry-xinli-admin
mvn spring-boot:run
# 方式2: 打包后运行
mvn clean package -DskipTests
java -jar target/xinli-admin.jar
```
### 5. 验证系统状态
打开浏览器访问:
```
http://localhost:8080/psychology/rag-test/health
```
应该看到类似以下的JSON响应
```json
{
"code": 200,
"msg": "系统健康检查完成",
"data": {
"ollama": "OK",
"chromadb": "OK",
"file_watcher": {
"enabled": true,
"running": true,
"watch_path": "D:/wwwroot/RAG/uploads"
},
"knowledge_base": {
"totalDocuments": 0,
"totalVectors": 0
},
"overall_status": "HEALTHY"
}
}
```
## 🧪 功能测试
### 测试1: 向量化功能
```bash
curl -X POST "http://localhost:8080/psychology/rag-test/test-embedding" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "text=这是一个测试文本"
```
预期结果:
```json
{
"code": 200,
"msg": "嵌入测试成功",
"data": {
"text": "这是一个测试文本",
"embedding_dimension": 768,
"first_5_values": [0.123, -0.456, 0.789, ...]
}
}
```
### 测试2: 文本生成功能
```bash
curl -X POST "http://localhost:8080/psychology/rag-test/test-generation" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "prompt=什么是心理学?"
```
预期结果:
```json
{
"code": 200,
"msg": "生成测试成功",
"data": {
"prompt": "什么是心理学?",
"response": "心理学是研究人类心理现象及其规律的科学...",
"response_length": 150
}
}
```
### 测试3: ChromaDB存储和查询
```bash
curl -X POST "http://localhost:8080/psychology/rag-test/test-chromadb"
```
预期结果:
```json
{
"code": 200,
"msg": "ChromaDB测试成功",
"data": {
"stored_document": "这是一个测试文档...",
"query_results": ["这是一个测试文档..."],
"similarities": [0.999]
}
}
```
### 测试4: 上传文档
准备一个测试文档test.txt内容如下
```
心理学基础知识
人格心理学是研究个体在不同情境下表现出的稳定行为模式的学科。
主要理论包括特质理论、精神分析理论和人本主义理论。
认知心理学关注人类的思维过程,包括注意、记忆、语言和问题解决。
```
上传文档:
```bash
curl -X POST "http://localhost:8080/psychology/knowledge/upload" \
-H "Content-Type: multipart/form-data" \
-F "file=@test.txt" \
-F "category=综合心理学"
```
预期结果:
```json
{
"code": 200,
"msg": "文档上传成功",
"data": {
"doc_id": "doc_1234567890",
"filename": "test.txt",
"category": "综合心理学",
"chunks": 2,
"vectors": 2
}
}
```
### 测试5: 查询文档列表
```bash
curl "http://localhost:8080/psychology/knowledge/list?pageNum=1&pageSize=10"
```
预期结果:
```json
{
"code": 200,
"msg": "查询成功",
"rows": [
{
"docId": "doc_1234567890",
"filename": "test.txt",
"category": "综合心理学",
"uploadTime": "2025-12-19 10:30:00",
"fileSize": 256,
"chunkCount": 2
}
],
"total": 1
}
```
### 测试6: 智能问答
```bash
curl -X POST "http://localhost:8080/psychology/ai/chat" \
-H "Content-Type: application/json" \
-d '{
"question": "什么是人格心理学?",
"context": ""
}'
```
预期结果:
```json
{
"code": 200,
"msg": "操作成功",
"data": {
"content": "人格心理学是研究个体在不同情境下表现出的稳定行为模式的学科...",
"sources": [
{
"documentId": "doc_1234567890",
"documentName": "test.txt",
"snippet": "人格心理学是研究个体在不同情境下...",
"score": 0.85
}
],
"generationTime": 3500
}
}
```
### 测试7: 生成综合报告
```bash
curl -X POST "http://localhost:8080/psychology/ai/generate-report" \
-H "Content-Type: application/json" \
-d '{
"assessmentData": {
"questionnaire_name": "MMPI",
"scores": {
"抑郁": 65,
"焦虑": 70,
"社交退缩": 60
}
},
"userProfile": {
"user_id": "123",
"name": "张三",
"age": 30,
"gender": "男"
}
}'
```
预期结果:
```json
{
"code": 200,
"msg": "操作成功",
"data": {
"content": "# 心理评估综合报告\n\n## 基本信息\n...",
"sources": [...],
"generationTime": 8500
}
}
```
### 测试8: 文件监听功能
1. 将一个文档(如 `心理学教材.pdf`)复制到 `D:\wwwroot\RAG\uploads` 目录
2. 等待2-3秒
3. 查看日志,应该看到:
```
检测到新文件: 心理学教材.pdf
自动处理文档成功: 心理学教材.pdf, 文档ID: doc_xxx
```
4. 查询文档列表,应该能看到新上传的文档
## ❌ 常见问题排查
### 问题1: Ollama连接失败
**症状**: `ollama: FAILED`
**解决方案**:
```bash
# 检查Ollama是否运行
curl http://localhost:11434/api/tags
# 如果没有响应启动Ollama
ollama serve
# 检查模型是否已下载
ollama list
# 如果缺少模型,下载它们
ollama pull nomic-embed-text
ollama pull deepseek-r1:32b
```
### 问题2: ChromaDB连接失败
**症状**: `chromadb: FAILED`
**解决方案**:
```bash
# 检查ChromaDB是否运行
curl http://localhost:8000/api/v1/heartbeat
# 如果没有响应启动ChromaDB
chroma run --path D:\wwwroot\RAG\data\chroma_db --port 8000
# 检查端口是否被占用
netstat -ano | findstr :8000
```
### 问题3: 文档上传失败
**症状**: 上传返回500错误
**可能原因**:
1. 文件格式不支持只支持PDF、Word、TXT
2. 文件太大超过50MB
3. uploads目录不存在或无权限
**解决方案**:
```bash
# 检查目录是否存在
dir D:\wwwroot\RAG\uploads
# 创建目录
mkdir D:\wwwroot\RAG\uploads
# 检查文件格式
# 确保文件是 .pdf, .docx, .doc, 或 .txt
```
### 问题4: 文件监听不工作
**症状**: 放入uploads目录的文件没有被自动处理
**解决方案**:
1. 检查配置文件 `application.yml`:
```yaml
rag:
file-watcher:
enabled: true # 确保是true
watch-path: D:/wwwroot/RAG/uploads # 确保路径正确
```
2. 查看日志:
```bash
tail -f D:\wwwroot\RAG\logs\xinli-admin.log
```
3. 重启应用
### 问题5: 生成报告很慢
**症状**: 生成报告超过30秒
**可能原因**:
1. 模型太大deepseek-r1:32b需要较好的硬件
2. 知识库文档太多
**解决方案**:
1. 使用更小的模型:
```yaml
rag:
ollama:
generate-model: qwen2.5:7b # 或其他更小的模型
```
2. 减少检索数量:
```yaml
rag:
retrieval:
top-k: 3 # 从5减少到3
```
## 📊 性能基准
在标准配置下Intel i7, 16GB RAM, RTX 3060
- **文档解析**: ~1-2秒/页 (PDF)
- **向量生成**: ~100ms/文本块
- **语义检索**: ~50ms (Top-5)
- **报告生成**: ~5-15秒 (取决于模型)
- **并发支持**: 10+ 用户
## 🎯 下一步
系统现在已经可以正常运行!你可以:
1. **上传心理学文档**: 将PDF、Word文档放入知识库
2. **测试智能问答**: 询问心理学相关问题
3. **生成评估报告**: 基于知识库生成专业报告
4. **开发前端页面**: 创建用户友好的Web界面
需要帮助?查看完整文档:`RAG-README.md`