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

7.9 KiB
Raw Blame History

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: 文件监听功能

  1. 将一个文档(如 心理学教材.pdf)复制到 D:\wwwroot\RAG\uploads 目录
  2. 等待2-3秒
  3. 查看日志,应该看到:
检测到新文件: 心理学教材.pdf
自动处理文档成功: 心理学教材.pdf, 文档ID: doc_xxx
  1. 查询文档列表,应该能看到新上传的文档

常见问题排查

问题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错误

可能原因:

  1. 文件格式不支持只支持PDF、Word、TXT
  2. 文件太大超过50MB
  3. uploads目录不存在或无权限

解决方案:

# 检查目录是否存在
dir D:\wwwroot\RAG\uploads

# 创建目录
mkdir D:\wwwroot\RAG\uploads

# 检查文件格式
# 确保文件是 .pdf, .docx, .doc, 或 .txt

问题4: 文件监听不工作

症状: 放入uploads目录的文件没有被自动处理

解决方案:

  1. 检查配置文件 application.yml:
rag:
  file-watcher:
    enabled: true  # 确保是true
    watch-path: D:/wwwroot/RAG/uploads  # 确保路径正确
  1. 查看日志:
tail -f D:\wwwroot\RAG\logs\xinli-admin.log
  1. 重启应用

问题5: 生成报告很慢

症状: 生成报告超过30秒

可能原因:

  1. 模型太大deepseek-r1:32b需要较好的硬件
  2. 知识库文档太多

解决方案:

  1. 使用更小的模型:
rag:
  ollama:
    generate-model: qwen2.5:7b  # 或其他更小的模型
  1. 减少检索数量:
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