xinli/项目介绍/项目架构说明.md
2026-01-30 16:23:00 +08:00

34 KiB
Raw Permalink Blame History

AI心理健康测评系统 - 项目架构说明

📋 项目概述

项目名称DDNAIAI心理健康测评系统 (ry-xinli)
项目版本1.0.0
技术架构:前后端分离 + AI微服务
开发团队DDNAI

这是一个集成了AI大模型和RAG知识库的智能心理健康测评系统提供专业的心理量表测评、智能分析和个性化建议。


🎯 核心功能模块

1. 心理量表测评系统

  • 量表管理

    • 支持多种标准心理量表焦虑自评量表SAS、抑郁自评量表SDS等
    • 量表配置管理(题目、选项、因子、计分规则)
    • 量表权限控制与分配
    • 量表导入导出JSON格式
  • 在线测评

    • 用户在线答题
    • 自动计分与因子分析
    • 实时保存答题进度
    • 支持移动端和Web端
  • 测评报告

    • 自动生成专业测评报告
    • 多维度因子分析
    • 分数解释与等级评定
    • 历史报告查询与对比

2. AI智能分析

  • 大模型集成

    • 集成Ollama本地大模型
    • 支持多种开源模型Llama、Qwen等
    • 可配置模型地址和参数
  • RAG知识库增强

    • 基于专业心理学知识库
    • 语义检索相关知识
    • 上下文增强生成
    • 提高分析专业性和准确性
  • 智能分析功能

    • 测评结果深度解读
    • 个性化心理健康建议
    • 心理状态趋势分析
    • 专业术语解释

3. RAG知识库管理

  • 文档管理

    • 支持多种格式txt、md、pdf、docx
    • 文档上传与批量导入
    • 文档分类与标签
    • 文档版本管理
  • 智能索引

    • 自动文档解析与分块
    • 向量化存储FAISS
    • 实时文件监控
    • 增量索引更新
  • 语义检索

    • 基于向量的语义搜索
    • 支持中文语义理解
    • Top-K相关文档检索
    • 检索结果排序优化
  • 知识库内容

    • 心理健康基础知识
    • 心理量表专业解读
    • 个性化分析案例库
    • 青少年心理发展特点

4. 用户与权限管理

  • 用户管理

    • 用户注册与登录
    • 用户档案管理
    • 用户分组与角色
    • 测评历史记录
  • 权限控制

    • 基于角色的访问控制RBAC
    • 量表访问权限
    • 数据隔离与安全
    • 操作日志审计
  • 用户画像

    • 基本信息管理
    • 测评历史统计
    • 心理健康档案
    • 数据可视化展示

5. 心理风险预警系统

  • 预警规则配置

    • 自定义预警条件
    • 多维度风险评估
    • 阈值动态调整
    • 规则优先级管理
  • 风险识别

    • 异常结果自动识别
    • 高危人群筛查
    • 趋势分析预警
    • 多次测评对比
  • 预警处理

    • 预警通知机制
    • 预警记录管理
    • 处理流程跟踪
    • 统计分析报表

6. 门户网站功能

  • 内容管理

    • 心理健康资讯发布
    • 文章分类管理
    • 富文本编辑器
    • 图片上传管理
  • 互动功能

    • 用户评论系统
    • 内容点赞收藏
    • 评论审核管理
    • 敏感词过滤
  • 门户展示

    • 首页内容推荐
    • 分类浏览导航
    • 搜索功能
    • 响应式布局

7. 系统管理功能

  • 菜单管理:动态菜单配置
  • 字典管理:系统字典维护
  • 参数配置:系统参数设置
  • 通知公告:系统消息发布
  • 日志管理:操作日志、登录日志
  • 在线用户:在线用户监控
  • 定时任务:任务调度管理
  • 代码生成快速生成CRUD代码

🏗️ 技术架构

整体架构图

┌─────────────────────────────────────────────────────────────┐
│                        客户端层                              │
├──────────────────────────┬──────────────────────────────────┤
│   Android App (Gradle)   │      Web前端 (Vue.js)            │
│   - WebView加载前端      │      - Element UI                │
│   - 语音读题功能         │      - Axios HTTP                │
│   - PaddleSpeech集成     │      - Vuex状态管理              │
└──────────────────────────┴──────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                        网关层                                │
├─────────────────────────────────────────────────────────────┤
│   Nginx (端口80)                                             │
│   - 静态资源服务前端dist                                 │
│   - API反向代理/api → 后端30081                         │
│   - 负载均衡                                                 │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                     Java应用层 (Spring Boot)                 │
├─────────────────────────────────────────────────────────────┤
│   端口30081                                                │
│                                                              │
│   ├─ ry-xinli-admin      (Web控制层)                        │
│   │   └─ Controller层处理HTTP请求                         │
│   │                                                          │
│   ├─ ry-xinli-system     (业务逻辑层)                       │
│   │   ├─ Service业务逻辑实现                              │
│   │   ├─ Mapper数据访问接口                               │
│   │   └─ Domain实体类与VO                                 │
│   │                                                          │
│   ├─ ry-xinli-framework  (框架核心)                         │
│   │   ├─ Security安全认证JWT                          │
│   │   ├─ Config系统配置                                   │
│   │   └─ Interceptor拦截器                                │
│   │                                                          │
│   ├─ ry-xinli-common     (通用工具)                         │
│   │   ├─ Utils工具类                                      │
│   │   ├─ Exception异常处理                                │
│   │   └─ Annotation自定义注解                             │
│   │                                                          │
│   ├─ ry-xinli-quartz     (定时任务)                         │
│   │   └─ Quartz任务调度                                     │
│   │                                                          │
│   └─ ry-xinli-generator  (代码生成)                         │
│       └─ Velocity模板生成                                    │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                      AI服务层 (Python)                       │
├─────────────────────────────────────────────────────────────┤
│   RAG知识库服务 (Flask) - 端口5000                          │
│   ├─ app.py              (Flask应用入口)                    │
│   ├─ document_parser.py  (文档解析PDF/DOCX/TXT/MD)        │
│   ├─ text_splitter.py    (文本分块:智能切分)               │
│   ├─ vector_store.py     (向量存储FAISS索引)              │
│   ├─ knowledge_service.py(知识库服务:检索与管理)           │
│   └─ file_watcher.py     (文件监控:自动索引)               │
│                                                              │
│   Ollama大模型服务 - 端口11434                              │
│   ├─ 文本生成模型Llama/Qwen等                           │
│   ├─ 嵌入模型nomic-embed-text                           │
│   └─ 模型管理与推理                                         │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                        数据层                                │
├──────────────────────────┬──────────────────────────────────┤
│   MySQL (端口3306)       │      Redis (端口6379)            │
│   - 业务数据存储         │      - 缓存与会话                │
│   - 量表配置数据         │      - Token管理                 │
│   - 用户测评记录         │      - 分布式锁                  │
│   - 系统配置数据         │      - 消息队列                  │
└──────────────────────────┴──────────────────────────────────┘

技术栈详情

后端技术栈Java

技术 版本 说明
Spring Boot 2.5.15 应用框架
Spring Security 5.7.14 安全认证
Spring Framework 5.3.39 核心框架
MyBatis - ORM框架
PageHelper 1.4.7 分页插件
Druid 1.2.23 数据库连接池
JWT 0.9.1 Token生成与解析
Swagger 3.0.0 API文档
FastJSON 2.0.58 JSON解析
OkHttp 4.12.0 HTTP客户端
POI 4.1.2 Excel/Word处理
PDFBox 2.0.29 PDF处理
Quartz - 定时任务
Velocity 2.3 模板引擎
Kaptcha 2.3.3 验证码
ZXing 3.5.1 二维码生成

前端技术栈Vue

技术 版本 说明
Vue.js 2.x 前端框架
Element UI - UI组件库
Axios - HTTP请求
Vuex - 状态管理
Vue Router - 路由管理
Webpack - 模块打包
Babel - ES6+转译
Sass/Less - CSS预处理

AI服务技术栈Python

技术 版本 说明
Flask - Web框架
FAISS - 向量检索引擎
Sentence Transformers - 文本向量化
PyPDF2 - PDF解析
python-docx - Word解析
Watchdog - 文件监控
Ollama - 本地大模型服务

移动端技术栈Android

技术 版本 说明
Gradle 7.x 构建工具
Android SDK 33 开发工具包
WebView - 网页加载
PaddleSpeech - 语音合成(读题功能)

数据库与中间件

技术 版本 说明
MySQL 5.7+ 关系型数据库
Redis 6.x 缓存数据库
Nginx 1.x Web服务器

🔄 核心业务流程

1. 用户测评流程

用户登录
   ↓
选择量表
   ↓
开始答题 ──→ 实时保存进度
   ↓
提交答卷
   ↓
后端计算得分 ──→ 因子分析 ──→ 等级评定
   ↓
调用RAG服务 ──→ 检索相关知识
   ↓
构建Prompt ──→ 调用Ollama生成分析
   ↓
生成测评报告 ──→ 保存数据库
   ↓
返回报告给用户 ──→ 支持导出/打印

2. AI分析流程

测评结果数据
   ↓
提取关键信息(得分、因子、等级)
   ↓
调用RAG服务API
   ↓
RAG向量检索 ──→ 查询FAISS索引
   ↓
返回Top-K相关文档片段
   ↓
构建增强Prompt
   ├─ 测评结果
   ├─ 量表信息
   ├─ 用户画像
   └─ 检索到的专业知识
   ↓
调用Ollama API
   ↓
流式生成分析报告
   ↓
后处理与格式化
   ↓
返回最终分析结果

3. RAG知识库索引流程

文档上传/添加
   ↓
文档格式检测
   ├─ PDF ──→ PyPDF2解析
   ├─ DOCX ──→ python-docx解析
   ├─ TXT ──→ 直接读取
   └─ MD ──→ Markdown解析
   ↓
文本预处理
   ├─ 清洗特殊字符
   ├─ 去除多余空白
   └─ 编码转换
   ↓
智能分块text_splitter
   ├─ 按段落分割
   ├─ 保持语义完整
   ├─ 设置重叠区域
   └─ 控制块大小500字符
   ↓
向量化Sentence Transformers
   └─ 使用多语言模型(支持中文)
   ↓
存储到FAISS索引
   ├─ 向量数据
   └─ 元数据文件名、块ID等
   ↓
持久化到磁盘
   ├─ faiss.index向量索引
   └─ documents.json文档元数据

4. 文件监控与增量更新

启动file_watcher
   ↓
监控knowledge_docs目录
   ↓
检测文件变化
   ├─ 新增文件 ──→ 自动索引
   ├─ 修改文件 ──→ 重新索引
   └─ 删除文件 ──→ 移除索引
   ↓
触发索引更新
   ↓
更新FAISS索引
   ↓
保存到磁盘

📊 数据库设计

核心数据表

心理测评相关表

  • psy_scale - 心理量表主表
  • psy_scale_item - 量表题目表
  • psy_scale_option - 题目选项表
  • psy_factor - 量表因子表
  • psy_factor_rule - 因子计分规则表
  • psy_result_interpretation - 结果解释表
  • psy_warning_rule - 预警规则表

问卷答题相关表

  • psy_questionnaire - 问卷实例表
  • psy_questionnaire_item - 问卷题目表
  • psy_questionnaire_option - 问卷选项表
  • psy_questionnaire_answer - 用户答题记录表
  • psy_assessment_report - 测评报告表
  • psy_warning - 预警记录表

用户相关表

  • psy_user_profile - 用户档案表
  • psy_scale_permission - 量表权限表
  • sys_user - 系统用户表
  • sys_role - 角色表
  • sys_user_role - 用户角色关联表

门户网站相关表

  • psy_website_category - 内容分类表
  • psy_website_content - 内容表
  • psy_website_comment - 评论表

系统管理相关表

  • sys_menu - 菜单表
  • sys_dept - 部门表
  • sys_post - 岗位表
  • sys_dict_type - 字典类型表
  • sys_dict_data - 字典数据表
  • sys_config - 参数配置表
  • sys_notice - 通知公告表
  • sys_oper_log - 操作日志表
  • sys_logininfor - 登录日志表

🔐 安全设计

认证与授权

  • JWT Token认证:无状态认证机制
  • RBAC权限模型:基于角色的访问控制
  • 密码加密BCrypt加密存储
  • Token刷新机制支持Token自动续期
  • 单点登录:支持多端登录控制

数据安全

  • SQL注入防护MyBatis预编译
  • XSS防护:输入输出过滤
  • CSRF防护Token验证
  • 敏感数据加密AES加密存储
  • 数据脱敏:日志脱敏处理

接口安全

  • 接口鉴权:统一鉴权拦截器
  • 限流控制:防止接口滥用
  • 签名验证:关键接口签名校验
  • HTTPS传输生产环境强制HTTPS

🚀 部署架构

开发环境

本机 (192.168.1.164)
├─ MySQL (3306)
├─ Redis (6379)
├─ Java后端 (30081)
├─ Python RAG (5000)
├─ Ollama (11434)
└─ 前端开发服务器 (80)

生产环境(内网部署)

服务器 (192.168.0.106)
├─ Nginx (80) ──→ 前端静态文件 + API代理
├─ Java后端 (30081) ──→ xinli-admin.jar
├─ Python RAG (5000) ──→ rag-python/app.py
├─ Ollama (11434) ──→ 本地大模型服务
├─ MySQL (远程: 1.15.149.240:3306)
└─ Redis (6379)

服务端口汇总

服务 端口 说明 访问方式
Nginx 80 前端入口 http://192.168.0.106
Java后端 30081 后端API http://localhost:30081
Python RAG 5000 知识库服务 http://localhost:5000
Ollama 11434 大模型服务 http://localhost:11434
MySQL 3306 数据库 远程1.15.149.240:3306
Redis 6379 缓存 localhost:6379

📁 项目目录结构

xinli/
├─ ry-xinli-admin/              # Web控制层模块
│  └─ src/main/
│     ├─ java/com/ddnai/web/
│     │  └─ controller/         # 控制器
│     │     ├─ psychology/      # 心理测评相关
│     │     ├─ system/          # 系统管理相关
│     │     └─ monitor/         # 监控相关
│     └─ resources/
│        ├─ application.yml     # 主配置文件
│        └─ mybatis/            # MyBatis配置
│
├─ ry-xinli-system/             # 业务逻辑层模块
│  └─ src/main/java/com/ddnai/system/
│     ├─ domain/                # 实体类
│     ├─ mapper/                # 数据访问接口
│     └─ service/               # 业务逻辑实现
│
├─ ry-xinli-framework/          # 框架核心模块
│  └─ src/main/java/com/ddnai/framework/
│     ├─ config/                # 系统配置
│     ├─ security/              # 安全认证
│     ├─ interceptor/           # 拦截器
│     └─ aspectj/               # AOP切面
│
├─ ry-xinli-common/             # 通用工具模块
│  └─ src/main/java/com/ddnai/common/
│     ├─ utils/                 # 工具类
│     ├─ exception/             # 异常处理
│     ├─ annotation/            # 自定义注解
│     └─ core/                  # 核心组件
│
├─ ry-xinli-quartz/             # 定时任务模块
│  └─ src/main/java/com/ddnai/quartz/
│
├─ ry-xinli-generator/          # 代码生成模块
│  └─ src/main/java/com/ddnai/generator/
│
├─ xinli-ui/                    # 前端Vue项目
│  ├─ src/
│  │  ├─ api/                   # API接口
│  │  ├─ assets/                # 静态资源
│  │  ├─ components/            # 组件
│  │  ├─ layout/                # 布局
│  │  ├─ router/                # 路由
│  │  ├─ store/                 # Vuex状态
│  │  ├─ utils/                 # 工具类
│  │  └─ views/                 # 页面视图
│  ├─ public/                   # 公共资源
│  ├─ package.json              # 依赖配置
│  └─ vue.config.js             # Vue配置
│
├─ xinli-App/                   # Android应用
│  ├─ app/
│  │  └─ src/main/
│  │     ├─ java/               # Java代码
│  │     └─ res/                # 资源文件
│  ├─ build.gradle              # Gradle配置
│  └─ gradlew.bat               # Gradle包装器
│
├─ rag-python/                  # Python RAG服务
│  ├─ app.py                    # Flask应用入口
│  ├─ config.py                 # 配置文件
│  ├─ document_parser.py        # 文档解析
│  ├─ text_splitter.py          # 文本分块
│  ├─ vector_store.py           # 向量存储
│  ├─ knowledge_service.py      # 知识库服务
│  ├─ file_watcher.py           # 文件监控
│  ├─ requirements.txt          # Python依赖
│  ├─ knowledge_docs/           # 知识库文档目录
│  ├─ index_data/               # 索引数据目录
│  ├─ uploads/                  # 上传临时目录
│  ├─ install.bat               # 安装脚本
│  └─ start.bat                 # 启动脚本
│
├─ PaddleSpeech-develop/        # 语音合成库App读题功能
│
├─ Archive/                     # 归档文档
│
├─ 项目介绍/                    # 项目文档
│  ├─ 环境配置/                 # 环境配置说明
│  ├─ 量表/                     # 量表配置文件
│  └─ 项目/                     # 项目相关文档
│
└─ pom.xml                      # Maven主配置

🔧 关键配置文件

1. 后端配置application.yml

# 服务端口
server:
  port: 30081

# 数据库配置
spring:
  datasource:
    url: jdbc:mysql://1.15.149.240:3306/xinli?useUnicode=true&characterEncoding=utf8
    username: root
    password: ******

# Redis配置
  redis:
    host: localhost
    port: 6379

# RAG服务配置
rag:
  enabled: true
  service-url: http://127.0.0.1:5000

# Ollama配置
ollama:
  base-url: http://localhost:11434
  model: qwen2.5:7b

2. 前端配置vue.config.js

module.exports = {
  devServer: {
    port: 80,
    proxy: {
      '/api': {
        target: 'http://localhost:30081',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

3. RAG服务配置config.py

# 服务端口
PORT = 5000

# 文本分块配置
CHUNK_SIZE = 500
CHUNK_OVERLAP = 50

# 向量模型(支持中文)
EMBEDDING_MODEL = "paraphrase-multilingual-MiniLM-L12-v2"

# 检索返回数量
TOP_K = 5

# 知识库目录
KNOWLEDGE_DOCS_DIR = "knowledge_docs"
INDEX_DATA_DIR = "index_data"

4. Nginx配置

server {
    listen 80;
    server_name 192.168.0.106;
    
    # 前端静态文件
    location / {
        root /www/wwwroot/xinli/dist;
        index index.html;
        try_files $uri $uri/ /index.html;
    }
    
    # 后端API代理
    location /api/ {
        proxy_pass http://127.0.0.1:30081/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

🎨 前端页面结构

管理后台页面

  • 首页:数据统计、快速入口
  • 心理测评管理
    • 量表管理:量表列表、新增/编辑、导入/导出
    • 题目管理:题目配置、选项设置
    • 因子管理:因子配置、计分规则
    • 解释管理:结果解释、等级设置
    • 预警规则:规则配置、阈值设置
  • 问卷管理
    • 问卷列表:查看所有问卷实例
    • 答题记录:用户答题详情
    • 测评报告:报告查看、导出
    • 预警记录:预警查看、处理
  • 知识库管理
    • 文档管理:上传、删除、查看
    • 索引管理:重建索引、统计信息
    • 检索测试:测试语义检索
  • AI分析管理
    • 模型配置Ollama地址、模型选择
    • 分析记录:历史分析查看
    • 提示词管理Prompt模板配置
  • 用户管理
    • 用户列表:用户信息管理
    • 用户档案:详细档案查看
    • 权限分配:量表权限设置
  • 门户管理
    • 分类管理:内容分类设置
    • 内容管理:文章发布、编辑
    • 评论管理:评论审核、删除
  • 系统管理
    • 菜单管理、角色管理、部门管理
    • 字典管理、参数设置、通知公告
    • 日志管理、在线用户、定时任务

用户端页面App/Web

  • 登录注册:用户登录、注册
  • 首页:推荐量表、最新资讯
  • 量表测评
    • 量表列表:可用量表展示
    • 在线答题:答题界面(支持语音读题)
    • 测评报告查看报告、AI分析
    • 历史记录:历史测评查看
  • 个人中心
    • 个人信息:资料编辑
    • 我的测评:测评历史
    • 我的报告:报告管理
  • 资讯浏览
    • 文章列表:分类浏览
    • 文章详情:阅读、评论

🚦 接口设计规范

RESTful API规范

  • GET:查询操作
  • POST:新增操作
  • PUT:修改操作
  • DELETE:删除操作

统一响应格式

{
  "code": 200,
  "msg": "操作成功",
  "data": {
    // 业务数据
  }
}

主要API接口

心理测评相关

GET    /psychology/scale/list              # 获取量表列表
POST   /psychology/scale                   # 新增量表
PUT    /psychology/scale                   # 修改量表
DELETE /psychology/scale/{id}              # 删除量表
POST   /psychology/scale/import            # 导入量表JSON
GET    /psychology/scale/export/{id}       # 导出量表JSON

GET    /psychology/questionnaire/list      # 获取问卷列表
POST   /psychology/questionnaire/answer    # 提交答题
GET    /psychology/questionnaire/report/{id} # 获取测评报告

AI分析相关

POST   /psychology/ai/analyze              # AI分析测评结果
GET    /psychology/ai/status               # 获取AI服务状态
POST   /psychology/ai/chat                 # AI对话接口

RAG知识库相关

GET    /psychology/rag/health              # 健康检查
GET    /psychology/rag/documents           # 获取文档列表
POST   /psychology/rag/upload              # 上传文档
DELETE /psychology/rag/documents/{filename} # 删除文档
POST   /psychology/rag/search              # 语义搜索
POST   /psychology/rag/rebuild             # 重建索引
GET    /psychology/rag/stats               # 获取统计信息

用户相关

POST   /login                              # 用户登录
POST   /register                           # 用户注册
GET    /getInfo                            # 获取用户信息
POST   /logout                             # 退出登录
GET    /psychology/profile/{id}            # 获取用户档案
PUT    /psychology/profile                 # 更新用户档案

🔍 核心算法与逻辑

1. 量表计分算法

总分计算:
  总分 = Σ(题目得分)

因子分计算:
  因子分 = Σ(因子内题目得分 × 权重)

等级评定:
  根据分数范围匹配对应等级
  - 正常0-20分
  - 轻度21-40分
  - 中度41-60分
  - 重度61-80分

2. RAG检索算法

1. 查询向量化
   query_vector = embedding_model.encode(query)

2. 相似度计算(余弦相似度)
   similarity = cosine_similarity(query_vector, doc_vectors)

3. Top-K检索
   top_k_docs = faiss_index.search(query_vector, k=5)

4. 结果排序与过滤
   - 按相似度降序
   - 过滤低相关文档阈值0.5
   - 返回文档内容

3. AI分析Prompt构建

系统提示词:
  你是一位专业的心理咨询师...

用户信息:
  姓名:{name}
  年龄:{age}
  性别:{gender}

测评结果:
  量表:{scale_name}
  总分:{total_score}
  等级:{level}
  因子得分:{factor_scores}

专业知识RAG检索
  {retrieved_knowledge}

分析要求:
  1. 结合测评结果进行专业分析
  2. 参考提供的专业知识
  3. 给出个性化建议
  4. 语言通俗易懂

4. 预警规则匹配

规则类型:
  1. 单因子阈值:某因子分数 > 阈值
  2. 总分阈值:总分 > 阈值
  3. 多因子组合:多个因子同时满足条件
  4. 趋势预警:连续多次测评分数上升

匹配逻辑:
  for rule in warning_rules:
    if match_condition(result, rule):
      create_warning(user, result, rule)
      send_notification(user, warning)

📈 性能优化策略

后端优化

  • 数据库优化

    • 索引优化:关键字段建立索引
    • 查询优化避免N+1查询
    • 连接池Druid连接池配置
    • 读写分离:主从复制(可选)
  • 缓存策略

    • Redis缓存热点数据缓存
    • 本地缓存Caffeine缓存
    • 缓存预热:启动时加载常用数据
    • 缓存更新:定时刷新策略
  • 异步处理

    • 异步任务:@Async注解
    • 消息队列Redis队列
    • 定时任务Quartz调度

前端优化

  • 资源优化

    • 代码分割:路由懒加载
    • 图片优化:压缩、懒加载
    • 打包优化Webpack配置
    • CDN加速静态资源CDN
  • 渲染优化

    • 虚拟滚动:长列表优化
    • 防抖节流:频繁操作优化
    • Keep-alive页面缓存

AI服务优化

  • 向量检索优化

    • FAISS索引优化IVF索引
    • 批量检索:减少调用次数
    • 缓存热门查询Redis缓存
  • 模型推理优化

    • 模型量化:减少显存占用
    • 批处理:批量推理
    • 流式输出:提升用户体验

🛠️ 开发与部署

开发环境搭建

1. 后端开发环境

# 安装JDK 1.8
# 安装Maven 3.6+
# 安装MySQL 5.7+
# 安装Redis 6.x

# 克隆项目
git clone <repository-url>

# 导入数据库
mysql -u root -p < 项目介绍/项目/心理备份.sql

# 修改配置
# 编辑 ry-xinli-admin/src/main/resources/application.yml
# 修改数据库连接、Redis配置等

# 启动后端
cd ry-xinli-admin
mvn spring-boot:run

2. 前端开发环境

# 安装Node.js 14+
# 安装npm或yarn

# 安装依赖
cd xinli-ui
npm install

# 启动开发服务器
npm run dev

# 访问 http://localhost:80

3. Python RAG服务

# 安装Python 3.8+

# 安装依赖
cd rag-python
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

# 启动服务
python app.py

# 访问 http://localhost:5000

4. Ollama大模型

# 安装Ollama
# 下载地址https://ollama.ai

# 拉取模型
ollama pull qwen2.5:7b
ollama pull nomic-embed-text

# 启动服务
ollama serve

生产环境部署

1. 后端部署

# 打包
mvn clean package -DskipTests

# 上传jar包到服务器
# 文件位置ry-xinli-admin/target/xinli-admin.jar

# 启动服务
nohup java -jar xinli-admin.jar > xinli.log 2>&1 &

# 或使用systemd服务
sudo systemctl start xinli-backend

2. 前端部署

# 打包
npm run build:prod

# 上传dist目录到服务器
# 配置Nginx指向dist目录

# 重启Nginx
sudo systemctl restart nginx

3. Android App打包

cd xinli-App

# 检查JDK和SDK
./check-jdk.bat

# 打包正式版APK
./gradlew assembleRelease

# APK位置app/build/outputs/apk/release/app-release.apk

启动顺序

1. MySQL、Redis基础服务
2. Ollama大模型服务
3. Python RAG服务
4. Java后端服务
5. Nginx前端服务

停止服务

# 停止Java后端
ps -ef | grep xinli-admin.jar
kill -9 <pid>

# 停止Python RAG
ps -ef | grep app.py
kill -9 <pid>

# 停止Ollama
ps -ef | grep ollama
kill -9 <pid>

# 停止Nginx
sudo systemctl stop nginx

🧪 测试说明

单元测试

  • 使用JUnit 5进行单元测试
  • Service层业务逻辑测试
  • Mapper层数据访问测试
  • 工具类测试

接口测试

  • 使用Swagger进行接口测试
  • Postman接口集合
  • 自动化接口测试脚本

性能测试

  • JMeter压力测试
  • 接口响应时间监控
  • 并发用户测试
  • 数据库性能分析

📝 开发规范

代码规范

  • 命名规范

    • 类名大驼峰PascalCase
    • 方法名小驼峰camelCase
    • 常量:全大写下划线分隔
    • 包名:全小写
  • 注释规范

    • 类注释:说明类的功能、作者、日期
    • 方法注释:说明参数、返回值、异常
    • 关键逻辑注释:复杂算法说明
  • 日志规范

    • ERROR系统错误
    • WARN警告信息
    • INFO关键业务信息
    • DEBUG调试信息

Git规范

  • 分支管理

    • master生产环境
    • develop开发环境
    • feature/*:功能分支
    • hotfix/*:紧急修复
  • 提交规范

    • feat新功能
    • fix修复bug
    • docs文档更新
    • style代码格式
    • refactor重构
    • test测试
    • chore构建/工具

数据库规范

  • 表名:小写下划线分隔
  • 字段名:小写下划线分隔
  • 主键id自增
  • 创建时间create_time
  • 更新时间update_time
  • 逻辑删除del_flag

🔮 未来规划

功能扩展

  • 多租户支持
  • 移动端原生AppFlutter
  • 微信小程序版本
  • 视频咨询功能
  • 在线预约系统
  • 数据分析大屏
  • 导出PDF报告
  • 多语言支持

技术升级

  • 升级Spring Boot 3.x
  • 引入Spring Cloud微服务
  • 使用Elasticsearch全文检索
  • 引入消息队列RabbitMQ/Kafka
  • 容器化部署Docker/K8s
  • 前端升级Vue 3
  • 引入TypeScript
  • 使用GraphQL API

AI能力增强

  • 支持更多大模型GPT、Claude等
  • 多模态分析(语音、图像)
  • 情感分析
  • 对话式测评
  • 智能推荐量表
  • 预测性分析
  • 知识图谱构建

📞 联系方式

开发团队DDNAI
项目地址http://www.ddnai.com
技术支持:详见项目文档


📄 附录

A. 常见问题

Q1: 首次启动RAG服务很慢
A: 首次启动需要下载向量模型约500MB请耐心等待。模型会缓存到用户目录。

Q2: Ollama连接失败
A: 检查Ollama服务是否启动端口11434是否被占用防火墙是否开放。

Q3: 前端访问后端接口跨域?
A: 开发环境使用vue.config.js代理生产环境使用Nginx代理。

Q4: 数据库连接失败?
A: 检查数据库地址、端口、用户名、密码是否正确,数据库是否启动。

Q5: App打包失败
A: 检查JDK版本需要JDK 11Android SDK是否安装Gradle配置是否正确。

B. 参考资料

C. 更新日志

v1.0.0 (2024-01-30)

  • 初始版本发布
  • 完成核心功能开发
  • 集成AI大模型和RAG知识库
  • 支持Web端和Android端

文档版本v1.0
最后更新2026-01-30
维护者DDNAI开发团队