You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
LYQ 63085898d9
Add files to develop branch
3 weeks ago
doc Add files to develop branch 3 weeks ago
src Add files to develop branch 3 weeks ago
README.md Add files to develop branch 3 weeks ago

README.md

自然语言数据库查询系统 - 项目总说明

项目概述

自然语言数据库查询系统是一个基于大语言模型的智能数据库查询平台支持用户通过自然语言描述查询需求系统自动调用大模型解析查询意图生成并执行SQL语句将查询结果以图表形式可视化展示。

核心特性

  • 智能查询:采用自然语言描述查询请求,系统调用大模型感知数据库元数据并解析用户查询请求
  • 权限管理:完善的用户权限控制系统,管理员可以管理和授权用户,支持表级别的权限控制
  • SQL生成与验证采用SQL引擎生成和验证SQL语句确保查询安全性和准确性
  • 数据可视化查询结果采用Chart图表显示支持多种图表类型
  • 多轮对话支持用户调整查询内容系统根据用户调整请求修改SQL语句重新查询和可视化查询结果
  • 复杂查询支持支持多表联合等复杂SQL语句查询
  • 并发支持支持至少5个及以上并发用户每个用户的任务在Docker容器独立运行
  • 社交功能:支持查询分享、好友关系、实时聊天等社交功能

技术架构

后端技术栈

  • 框架Spring Boot 3.5.7
  • 开发语言Java 21 (JDK 21)
  • 关系型数据库MySQL 8.0+
  • 非关系型数据库MongoDB 4.0+
  • ORM框架MyBatis Plus 3.5.9
  • 安全框架Spring Security + JWT
  • 缓存Redis
  • 实时通信WebSocket
  • 容器化Docker
  • 构建工具Maven

前端技术栈

  • 框架Vue 3.5.25
  • 开发语言TypeScript 5.9
  • 构建工具Vite 7.2.4
  • 路由Vue Router 4.6.3
  • 状态管理Pinia 3.0.4
  • UI框架Tailwind CSS 4.1.18
  • 图表库Chart.js 4.5.1 + Vue-ChartJS 5.3.3
  • WebSocketSockJS + STOMP.js

系统架构

┌─────────────┐
│  前端应用    │ Vue 3 + TypeScript
│ (Vite)      │
└──────┬──────┘
       │ HTTP/WebSocket
┌──────▼─────────────────┐
│   后端应用              │
│ (Spring Boot)          │
│                        │
│ ┌──────────────────┐   │
│ │  Controller层    │   │ RESTful API
│ └────────┬─────────┘   │
│ ┌────────▼─────────┐   │
│ │   Service层      │   │ 业务逻辑
│ └────────┬─────────┘   │
│ ┌────────▼─────────┐   │
│ │  Mapper/Repository│  │ 数据访问
│ └────────┬─────────┘   │
└──────────┼─────────────┘
           │
    ┌──────┼──────┐
    │      │      │
┌───▼──┐ ┌▼──┐ ┌─▼────┐
│MySQL │ │Mongo│ │Redis│
└──────┘ └───┘ └──────┘

项目目录结构

xm/
├── doc/                          # 文档目录
│   ├── README.md                 # 项目总说明(本文件)
│   ├── process/                  # 开发过程文档
│   │   ├── meeting/              # 会议记录
│   │   └── weekly/               # 周报(按周组织)
│   └── project/                  # 项目文档
│       ├── 01-需求文档/          # 需求规格说明书、用例文档等
│       ├── 02-设计文档/          # UML设计文档、数据库设计文档
│       ├── 03-计划文档/          # 迭代开发计划
│       ├── 04-用户手册/          # 用户使用手册
│       └── 05-测试报告/          # 测试报告
│
├── src/                          # 源代码目录
│   ├── frontend/                 # 前端项目
│   │   ├── src/
│   │   │   ├── components/       # Vue组件
│   │   │   ├── views/            # 页面视图
│   │   │   ├── router/           # 路由配置
│   │   │   ├── services/         # API服务
│   │   │   ├── composables/      # Composition API
│   │   │   ├── types/            # TypeScript类型定义
│   │   │   └── utils/            # 工具函数
│   │   ├── package.json          # 前端依赖配置
│   │   └── vite.config.ts        # Vite配置
│   │
│   ├── src/                      # 后端项目
│   │   └── main/
│   │       ├── java/             # Java源代码
│   │       │   └── com/example/springboot_demo/
│   │       │       ├── controller/    # 控制器层
│   │       │       ├── service/       # 服务层
│   │       │       ├── mapper/        # MyBatis Mapper
│   │       │       ├── repository/    # MongoDB Repository
│   │       │       ├── entity/        # 实体类
│   │       │       ├── dto/           # 数据传输对象
│   │       │       ├── vo/            # 视图对象
│   │       │       ├── config/        # 配置类
│   │       │       ├── utils/         # 工具类
│   │       │       └── exception/     # 异常处理
│   │       └── resources/
│   │           └── application.yml    # 应用配置文件
│   │
│   ├── pom.xml                   # Maven配置文件
│   └── README.md                 # 后端模块说明文档
│
└── scripts/                      # 脚本目录
    ├── export-data.sh/.bat       # 数据导出脚本
    └── import-data.sh/.bat       # 数据导入脚本

快速开始

环境要求

  • JDK21 或更高版本
  • Node.js^20.19.0 或 >=22.12.0
  • MySQL8.0 或更高版本
  • MongoDB4.0 或更高版本
  • Redis:最新稳定版
  • Maven3.6+(用于后端构建)
  • Docker:可选(用于容器化部署)

后端启动

  1. 配置数据库连接

    编辑 src/src/main/resources/application.yml配置MySQL、MongoDB和Redis连接信息。

  2. 构建项目

    cd src
    mvn clean install
    
  3. 启动应用

    mvn spring-boot:run
    

    或直接运行主类:com.example.springboot_demo.NaturalLanguageQueryApplication

  4. 验证启动

    访问 http://localhost:8173/actuator/health 检查应用健康状态

前端启动

  1. 安装依赖

    cd src/frontend
    npm install
    
  2. 启动开发服务器

    npm run dev
    
  3. 构建生产版本

    npm run build
    
  4. 访问应用

    开发环境:http://localhost:5173 生产环境:根据部署配置访问

Docker部署

项目支持Docker容器化部署具体配置请参考 src/docker-compose.yml


文档导航

需求与设计文档

  • 需求文档:包含需求规格说明书、用例文档、项目前景与范围文档
  • 设计文档包含UML设计文档活动图、顺序图、类图和数据库设计文档
  • 计划文档:包含迭代开发计划

用户与测试文档

开发过程文档

  • 会议记录:项目开发过程中的会议纪要
  • 周报:按周组织的开发计划和总结

技术文档


核心功能模块

1. 用户认证与授权

  • 用户注册、登录、密码重置
  • JWT Token认证
  • 基于角色的访问控制RBAC
  • 表级别的权限控制

2. 自然语言查询

  • 自然语言转SQL
  • 数据库元数据感知
  • SQL生成与验证
  • 多轮对话支持
  • 查询结果可视化

3. 数据库管理

  • 数据库连接管理
  • 表元数据管理
  • 字段元数据管理
  • 数据库结构导出

4. 查询管理

  • 查询日志记录
  • 查询收藏
  • 查询分享
  • SQL缓存
  • 对话历史记录

5. 社交功能

  • 好友关系管理
  • 实时聊天WebSocket
  • 查询分享
  • 通知系统

6. 系统管理

  • 大模型配置管理
  • 系统健康监控
  • 性能指标统计
  • 错误日志管理
  • 操作日志审计

安全机制

  1. JWT认证使用JWT Token进行用户认证Token包含用户ID和用户名
  2. 权限控制基于角色的访问控制RBAC支持表级别的权限控制
  3. 密码加密使用Spring Security的BCryptPasswordEncoder加密密码
  4. Token黑名单支持Token失效和单点登录
  5. SQL注入防护使用参数化查询和SQL验证
  6. 跨域配置配置CORS允许跨域请求

测试

单元测试

后端测试使用JUnit前端测试使用Vitest。

# 后端测试
cd src
mvn test

# 前端测试
cd src/frontend
npm run test:unit

API测试

可以使用 src/api-test.http 文件进行API接口测试支持IntelliJ IDEA HTTP Client或VS Code REST Client


系统性能

  • 并发支持支持至少5个及以上并发用户
  • 响应时间SQL查询响应时间 < 3秒取决于数据量和数据库性能
  • 可用性:系统可用性 > 99%

开发规范

代码规范

  • 后端遵循Java编码规范使用Lombok简化代码
  • 前端遵循Vue 3 + TypeScript编码规范使用ESLint和Prettier进行代码格式化

Git提交规范

建议使用以下格式:

<type>(<scope>): <subject>

<body>

<footer>

类型type

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

开发团队

团队名称:神奇宝码队

项目版本2.0

开发时间2025


更新日志

详细的版本更新记录请参考各迭代开发计划和周报文档。


贡献指南

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交Pull Request

许可证

本项目遵循相应的开源许可证。


联系方式

如有问题或建议,请联系开发团队。


未来规划

  • 支持更多数据库类型PostgreSQL、Oracle等
  • 增强大模型提示词工程提高SQL生成准确性
  • 优化查询性能,支持更大数据量查询
  • 增强数据可视化功能,支持更多图表类型
  • 增加数据分析功能

最后更新时间2025年