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