# JustQQbot
**Repository Path**: muchuan114514/just-qqbot
## Basic Information
- **Project Name**: JustQQbot
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-09-26
- **Last Updated**: 2026-01-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# VoxMind 言智 - QQ 群舆情智能分析平台





**VoxMind 言智 - AI 驱动的 QQ 群舆情智能分析平台**
基于 FastAPI + React 的专业舆情监测与分析系统
实时监控 | AI 话题分析 | 3D 关系图谱 | 深度学习情感分析 | 智能预警 | 专业报表导出
[快速开始](#快速开始) | [功能特性](#功能特性) | [文档](#文档) | [部署指南](#部署指南)
---
## 功能特性
### 核心功能
#### 1. 实时消息监控
- **多群组监控**: 同时监控多个 QQ 群消息
- **多账号支持**: 支持多个 QQ 号数据隔离与独立展示
- **消息队列处理**: 异步批处理,每秒处理 10+ 条消息
- **WebSocket 实时推送**: 新消息实时显示,延迟 < 1秒
- **消息持久化**: 自动保存到数据库,支持历史查询
#### 2. AI 智能分析
- **AI 话题聚类**: 基于大语言模型的智能话题发现与分析
- 自动识别群组热门话题
- AI 生成话题摘要和标签
- 支持自定义分析时间范围和消息数量
- 定时任务:每 10 分钟自动分析最活跃的 10 个群组
- **深度学习情感分析**:
- LSTM 神经网络模型训练与推理
- 混合算法:规则引擎 + SnowNLP + LSTM
- 三维情感分类:积极、中性、消极 + 置信度评分
- 情感词库:内置中文情感词典,支持扩展
- 上下文理解:识别否定词、程度词,提高准确率
#### 3. 关键词提取
- **双算法融合**: TF-IDF (40%) + TextRank (60%)
- **智能过滤**: 150+ 停用词,词性过滤(名词/动词/形容词)
- **词云可视化**:
- 动态交互式词云图
- 螺旋布局算法,防重叠
- 权重映射:字体大小 18px-56px
- 悬停高亮 + 详情卡片
- **趋势追踪**: 关键词热度变化分析
#### 4. 3D 用户群组关系图谱
- **3D 力导向图**: 使用 ForceGraph3D 和 Three.js 渲染
- **节点类型**:
- 群组节点:紫色球体,大小反映成员数量
- 用户节点:蓝色球体,大小反映活跃度
- **关系可视化**:
- 连线强度表示互动频率
- 实时 WebSocket 更新
- 交互式操作:旋转、缩放、聚焦
- **性能优化**:
- 仅显示活跃节点
- 自适应渲染
- 数据缓存(30s 过期)
#### 5. 预警系统
- **多种规则类型**:
- 敏感词检测(关键词/正则)
- 负面情绪预警(时间窗口统计)
- 异常活跃预警(消息量突增)
- **智能冷却**: 60分钟冷却期,避免重复触发
- **实时通知**:
- WebSocket 推送预警信息
- Toast 弹窗通知(AlertToast 组件)
- 预警历史记录
- **规则模板**: 预置常用规则模板,快速启用
#### 6. 用户画像分析
- **基础信息**: 用户ID、昵称、总消息数、活跃时长
- **活动热力图**: 24小时 × 7天活跃度可视化
- **情感雷达图**: 多维度情感倾向分析
- **话题云**: 用户关注的话题分布
- **社交关系**: 用户互动关系网络
- **消息时间线**: 用户历史消息浏览
#### 7. 数据分析与报表
- **多维统计**: 消息量、用户活跃度、情感分布
- **趋势分析**: 7/15/30 天情感趋势曲线
- **群组对比**: 各群组情感对比分析
- **用户排行**: 活跃度榜单(日/周/月)
- **报表导出**: Excel 和 PDF 专业版式导出(支持周报/月报)
- **报告中心**: 历史报告管理、对比分析、批量导出
- **系统配置**: 灵活的系统参数配置管理
### UI 设计
- **现代化界面**: Apple 风格,毛玻璃效果
- **响应式布局**: 完美适配桌面/平板/手机
- **实时仪表板**: 关键指标一目了然
- **3D 可视化**: 立体关系图谱,交互丰富
- **数据可视化**: Echarts + Recharts 双图表库,交互丰富
- **动态背景**: 彩球碰撞动画背景(可配置)
## 技术栈
### 后端
- **框架**: FastAPI + SQLAlchemy (异步)
- **数据库**: SQLite / PostgreSQL
- **NLP**: jieba, SnowNLP
- **深度学习**: PyTorch (LSTM 模型)
- **AI**: 大语言模型集成(OpenAI API 兼容)
- **QQ 接口**: LLOneBot
- **任务调度**: APScheduler
- **缓存**: Redis (可选)
### 前端
- **框架**: React 18 + TypeScript
- **构建工具**: Vite
- **UI 组件**: shadcn/ui (Radix UI)
- **样式**: Tailwind CSS
- **状态管理**: Zustand + TanStack Query
- **图表**: Recharts + Echarts
- **3D 可视化**:
- ForceGraph3D (力导向图)
- Three.js (3D 渲染)
- Echarts WordCloud (词云)
- **图论**: Graphology + Sigma.js
- **实时通信**: WebSocket
## 项目结构
```
PythonQQBot/
├── backend/ # 后端代码(FastAPI)
│ ├── app/
│ │ ├── api/v1/ # API 路由和端点
│ │ │ ├── endpoints/ # 各模块 API
│ │ │ │ ├── messages.py # 消息管理
│ │ │ │ ├── groups.py # 群组管理
│ │ │ │ ├── users.py # 用户管理
│ │ │ │ ├── sentiment.py # 情感分析
│ │ │ │ ├── keywords.py # 关键词
│ │ │ │ ├── topics.py # 话题分析
│ │ │ │ ├── alerts.py # 预警系统
│ │ │ │ ├── reports.py # 报表导出
│ │ │ │ ├── statistics.py # 统计数据
│ │ │ │ ├── settings.py # 系统配置
│ │ │ │ ├── system.py # 系统管理
│ │ │ │ └── websocket.py # WebSocket
│ │ │ └── router.py # 路由汇总
│ │ ├── core/ # 核心功能
│ │ │ ├── nlp/ # NLP算法
│ │ │ │ ├── sentiment_analyzer.py # 情感分析(SnowNLP + LSTM)
│ │ │ │ ├── keyword_extractor.py # 关键词提取(TF-IDF + TextRank)
│ │ │ │ ├── ai_topic_clusterer.py # AI 话题分析与聚类
│ │ │ │ ├── sarcasm_detector.py # 讽刺检测
│ │ │ │ ├── text_preprocessor.py # 文本预处理
│ │ │ │ └── stopwords.txt # 停用词库
│ │ │ ├── ai/ # AI 模块
│ │ │ │ └── llm_service.py # LLM 服务
│ │ │ ├── cache/ # 缓存管理
│ │ │ ├── alert/ # 预警引擎
│ │ │ ├── queue/ # 消息队列处理
│ │ │ ├── llonebot/ # LLOneBot集成
│ │ │ ├── scheduler/ # 定时任务
│ │ │ ├── tasks/ # 后台任务
│ │ │ │ └── group_sync.py # 群组同步
│ │ │ ├── report/ # 报表生成
│ │ │ │ ├── excel_export.py # Excel 报表导出
│ │ │ │ └── pdf_export.py # PDF 报表导出(专业版式)
│ │ │ └── formatters/ # 数据格式化
│ │ ├── db/ # 数据库配置和会话管理
│ │ ├── models/ # SQLAlchemy 数据模型
│ │ ├── repositories/ # 数据访问层(Repository Pattern)
│ │ ├── services/ # 业务逻辑层(Service Layer)
│ │ ├── schemas/ # Pydantic 数据模式
│ │ └── main.py # FastAPI 应用入口
│ ├── LSTM/ # LSTM 情感分析模型
│ │ └── main.py # 模型训练脚本
│ ├── tests/ # 单元测试
│ ├── data/ # SQLite 数据库文件
│ ├── logs/ # 日志文件
│ ├── run.py # 开发服务器启动脚本
│ ├── init_db.py # 数据库初始化脚本
│ ├── init_system_config.py # 系统配置初始化
│ ├── init_alert_rules.py # 预警规则初始化
│ ├── requirements.txt # Python 依赖
│ ├── .env.example # 环境变量示例
│ └── README.md # 后端文档
│
├── frontend/ # 前端代码(React + TypeScript)
│ ├── src/
│ │ ├── api/ # API 客户端封装
│ │ │ └── endpoints.ts # API 端点定义
│ │ ├── components/ # React 组件
│ │ │ ├── layout/ # 布局组件
│ │ │ │ ├── MainLayout.tsx # 主布局
│ │ │ │ ├── Sidebar.tsx # 侧边栏
│ │ │ │ ├── Header.tsx # 顶部导航
│ │ │ │ └── AnimatedBalls.tsx # 动画背景
│ │ │ ├── ui/ # shadcn/ui 基础组件
│ │ │ ├── WordCloud.tsx # 词云组件
│ │ │ ├── SentimentTrendChart.tsx # 情感趋势图
│ │ │ ├── UserGroupNetwork.tsx # 3D 关系图谱
│ │ │ ├── AlertToast.tsx # 预警通知
│ │ │ └── WebSocketIndicator.tsx # WebSocket 状态
│ │ ├── pages/ # 页面组件(13个主要页面)
│ │ │ ├── Dashboard.tsx # 仪表盘
│ │ │ ├── Messages.tsx # 消息列表
│ │ │ ├── Groups.tsx # 群组管理
│ │ │ ├── Keywords.tsx # 关键词分析
│ │ │ ├── SentimentAnalysis.tsx # 情感分析
│ │ │ ├── TopicSquare.tsx # 话题广场(AI 话题分析)
│ │ │ ├── UserRanking.tsx # 用户排行
│ │ │ ├── UserProfile/ # 用户画像
│ │ │ │ ├── index.tsx
│ │ │ │ └── components/ # 用户画像子组件
│ │ │ ├── AlertCenter.tsx # 预警中心
│ │ │ ├── AlertRules.tsx # 预警规则管理
│ │ │ ├── ReportCenter.tsx # 报告中心(历史报告)
│ │ │ └── Settings.tsx # 系统设置
│ │ ├── hooks/ # 自定义 React Hooks
│ │ ├── stores/ # Zustand 状态管理
│ │ │ └── websocketStore.ts # WebSocket 状态
│ │ ├── services/ # 服务层
│ │ ├── types/ # TypeScript 类型定义
│ │ └── styles/ # 样式和设计令牌
│ ├── package.json # Node.js 依赖
│ ├── vite.config.ts # Vite 构建配置
│ ├── tailwind.config.js # Tailwind CSS 配置
│ └── tsconfig.json # TypeScript 配置
│
├── LLOneBot-win-x64-ffmpeg/ # LLOneBot 程序(QQ机器人)
│
├── start_all.bat # Windows 一键启动脚本
├── stop_all.bat # Windows 一键停止脚本
└── README.md # 本文件(项目总览)
```
## 架构设计
### 后端架构(分层架构)
```
┌─────────────────────────────────────────────────┐
│ API Layer (FastAPI Routes) │
│ HTTP请求处理 / WebSocket / 文档 │
└────────────────────┬────────────────────────────┘
│
┌────────────────────▼────────────────────────────┐
│ Service Layer (业务逻辑层) │
│ MessageService | SentimentService │
│ KeywordService | StatisticsService │
│ + 缓存管理 + 业务规则 │
└────────────────────┬────────────────────────────┘
│
┌────────────────────▼────────────────────────────┐
│ Repository Layer (数据访问层) │
│ MessageRepository | SentimentRepository │
│ KeywordRepository | GroupUserRepository │
│ 封装所有数据库操作 │
└────────────────────┬────────────────────────────┘
│
┌────────────────────▼────────────────────────────┐
│ Model Layer (SQLAlchemy ORM) │
│ 数据库表定义 + 关系映射(12+个模型) │
└─────────────────────────────────────────────────┘
```
### 前端架构
- **状态管理**: Zustand(轻量级)+ TanStack Query(服务端状态)
- **路由**: React Router v6
- **组件库**: shadcn/ui(基于 Radix UI)
- **样式**: Tailwind CSS(原子化 CSS)
- **图表**: Recharts + Echarts(双图表库)
- **3D 渲染**: Three.js + ForceGraph3D
- **实时通信**: WebSocket + 自动重连
## 快速开始
### 环境要求
- **Python 3.10+** (推荐 3.10 或 3.11)
- **Node.js 18+** (推荐 LTS 版本)
- **QQ 客户端 + LLOneBot** (用于接收QQ消息)
- **(可选)OpenAI API Key** (用于 AI 话题分析)
### 一键启动(推荐)
适用于 Windows 用户,已安装所有依赖的情况:
```bash
# 启动所有服务(后端 + 前端)
start_all.bat
# 停止所有服务
stop_all.bat
```
### 完整安装步骤
#### 1. 克隆项目
```bash
git clone https://gitee.com/muchuan114514/just-qqbot.git
cd just-qqbot
```
#### 2. 后端配置
```bash
# 进入后端目录
cd backend
# 创建虚拟环境(推荐)
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
# source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 复制环境变量配置文件
copy .env.example .env
# Linux/Mac: cp .env.example .env
# 编辑 .env 文件,配置数据库和 LLOneBot 连接信息
notepad .env # 或使用你喜欢的编辑器
```
**重要配置项**(`.env` 文件):
```bash
# 应用配置
APP_NAME=QQ群数据分析系统
APP_VERSION=2.0.0
DEBUG=True
HOST=0.0.0.0
PORT=8000
# 数据库配置(SQLite 更简单,无需额外安装)
DATABASE_URL=sqlite+aiosqlite:///./data/qqbot.db
# 生产环境可使用 PostgreSQL
# DATABASE_URL=postgresql+asyncpg://user:password@localhost/dbname
# LLOneBot 配置
LLONEBOT_HTTP_URL=http://127.0.0.1:3000
LLONEBOT_WS_URL=ws://127.0.0.1:3001
LLONEBOT_ACCESS_TOKEN=
# AI 配置(可选,用于 AI 话题分析)
AI_ENABLED=False
AI_API_KEY=your_api_key_here
AI_BASE_URL=https://api.openai.com/v1
AI_MODEL=gpt-3.5-turbo
AI_MAX_TOKENS=2000
AI_TEMPERATURE=0.7
AI_TIMEOUT=120
# NLP 配置
SENTIMENT_THRESHOLD=0.3 # 情感分值阈值
KEYWORD_MIN_FREQ=2 # 关键词最低出现次数
MAX_KEYWORDS=50 # 最大关键词数量
# Redis 配置(可选,用于缓存)
REDIS_ENABLED=False
REDIS_URL=redis://localhost:6379/0
# CORS 配置
CORS_ORIGINS=["http://localhost:5173","http://127.0.0.1:5173"]
# 日志配置
LOG_LEVEL=INFO
LOG_FILE=logs/app.log
```
#### 3. 初始化数据库
```bash
# 在 backend 目录下运行
python init_db.py
python init_system_config.py
python init_alert_rules.py
```
#### 4. 前端配置
```bash
# 进入前端目录
cd ../frontend
# 安装依赖(首次运行必须执行)
npm install
# 或使用 pnpm/yarn
# pnpm install
# yarn install
# 如果 npm install 很慢,可以使用国内镜像
npm install --registry=https://registry.npmmirror.com
```
#### 5. 配置 LLOneBot
1. 下载 LLOneBot:https://github.com/LLOneBot/LLOneBot/releases
2. 解压到项目的 `LLOneBot-win-x64-ffmpeg/` 目录
3. 运行 QQ 客户端,LLOneBot 会自动注入
4. 打开 LLOneBot 设置面板,配置:
- HTTP 服务端口:`3000`
- WebSocket 服务端口:`3001`
- 消息上报地址:`http://localhost:8000/api/v1/onebot/message`
#### 6. 启动服务
##### 方式一:一键启动(Windows)
```bash
# 回到项目根目录
cd ..
start_all.bat
```
##### 方式二:手动启动
**启动后端**:
```bash
cd backend
python run.py
# 或使用 uvicorn
# uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
```
**启动前端**:
```bash
# 新开一个终端
cd frontend
npm run dev
```
#### 7. 访问系统
- **前端界面**: http://localhost:5173
- **后端 API**: http://localhost:8000
- **API 文档**: http://localhost:8000/api/docs (Swagger UI)
- **健康检查**: http://localhost:8000/health
- **WebSocket**: ws://localhost:8000/api/v1/ws
## 核心功能详解
### 1. AI 话题分析
系统集成了大语言模型,支持智能话题发现和分析:
- **自动分析**: 定时任务每 10 分钟分析最活跃的 10 个群组
- **手动分析**: 在话题广场页面选择群组和时间范围进行分析
- **AI 能力**:
- 话题识别与分类
- 主题摘要生成
- 话题标签提取
- 置信度评分
- **配置**: 在 `.env` 中启用 `AI_ENABLED=True` 并配置 API Key
### 2. 3D 用户群组关系图谱
实时可视化用户与群组的关系网络:
- **3D 力导向布局**: 自动计算节点位置,关系紧密的节点聚集
- **实时更新**: WebSocket 推送新消息时自动更新图谱
- **交互操作**:
- 鼠标拖拽旋转视角
- 滚轮缩放
- 点击节点聚焦
- 悬停显示详情
- **性能优化**:
- 仅渲染最近 7 天活跃的用户和群组
- 低活跃度节点过滤
- 帧率自适应
### 3. 用户画像系统
深度分析用户行为特征:
- **基础信息**: 总消息数、活跃天数、首次/最后发言时间
- **活动热力图**: 24小时 × 7天活跃度分布
- **情感雷达图**: 积极、中性、消极情感倾向
- **话题云**: 用户最常讨论的话题标签
- **社交关系**: 与其他用户的互动关系网络
- **消息时间线**: 按时间排序的历史消息
### 4. 情感分析
多模型融合的情感分析:
- **SnowNLP**: 基于朴素贝叶斯的中文情感分析
- **LSTM 模型**: 深度学习模型,支持自定义训练
- **规则引擎**: 情感词典匹配,处理否定词和程度词
- **实时分析**: 消息接收后立即进行情感分析
- **趋势追踪**: 7/15/30 天情感趋势可视化
### 5. 预警系统
智能预警,及时发现异常:
- **敏感词预警**: 关键词或正则表达式匹配
- **情感预警**: 负面情感消息频率超过阈值
- **活跃度预警**: 消息量突增检测
- **实时通知**: Toast 弹窗 + WebSocket 推送
- **规则管理**: Web 界面配置预警规则
- **冷却机制**: 避免重复触发
## 常见问题(FAQ)
### Q1: 前端启动失败
**问题**:`npm run dev` 报错,提示找不到模块
**解决**:确保已执行 `npm install` 安装依赖
```bash
cd frontend
npm install # 必须先安装依赖!
npm run dev
```
### Q2: 后端启动失败
**问题**:`ModuleNotFoundError: No module named 'xxx'`
**解决**:检查是否已安装所有 Python 依赖
```bash
cd backend
pip install -r requirements.txt
```
**问题**:数据库连接失败
**解决**:检查 `.env` 文件中的 `DATABASE_URL` 配置
### Q3: LLOneBot 连接失败
**问题**:无法接收 QQ 消息
**解决**:
1. 确认 QQ 客户端已登录
2. 确认 LLOneBot 已正确注入
3. 检查 LLOneBot 配置中的端口是否与 `.env` 一致
4. 检查消息上报地址是否配置为 `http://localhost:8000/api/v1/onebot/message`
5. 查看后端日志 `backend/logs/app.log` 排查错误
### Q4: AI 话题分析不工作
**问题**:话题分析没有结果或报错
**解决**:
1. 检查 `.env` 中 `AI_ENABLED=True`
2. 确认 `AI_API_KEY` 已正确配置
3. 检查 `AI_BASE_URL` 是否可访问
4. 查看后端日志确认 API 调用状态
5. 确保有足够的消息数据(至少 20 条)
### Q5: 3D 关系图谱加载缓慢
**问题**:关系图谱加载时间长或卡顿
**解决**:
1. 数据量过大,系统会自动过滤低活跃度节点
2. 调整查询时间范围(默认 7 天)
3. 浏览器硬件加速是否开启
4. 建议使用 Chrome 或 Edge 浏览器
### Q6: 关键词提取效果不理想
**问题**:提取的关键词不准确
**解决**:
1. 调整 `KEYWORD_MIN_FREQ`(最低出现频率)
2. 增加消息样本量(至少 100 条消息)
3. 编辑停用词列表 `backend/app/core/nlp/stopwords.py`
4. 查看文档:关键词提取优化指南
### Q7: 如何切换到 PostgreSQL?
**解决**:
1. 安装 asyncpg:`pip install asyncpg`
2. 修改 `.env` 中的 `DATABASE_URL`:
```ini
DATABASE_URL=postgresql+asyncpg://user:password@localhost/dbname
```
3. 重新运行 `python init_db.py` 初始化数据库
### Q8: 生产环境部署建议?
**建议**:
1. 使用 PostgreSQL 替代 SQLite
2. 启用 Redis 缓存
3. 使用 Nginx 反向代理
4. 使用 Gunicorn + Uvicorn Workers 运行后端
5. 前端构建后部署静态文件(`npm run build`)
6. 使用 Supervisor 或 systemd 管理进程
7. 配置 HTTPS 证书
8. 设置日志轮转
9. 配置数据库备份
## 路线图(Roadmap)
### 已完成
- [x] 基础消息采集与存储
- [x] 关键词提取与优化(TF-IDF + TextRank)
- [x] 情感分析(SnowNLP + LSTM 深度学习)
- [x] AI 驱动的话题分析与聚类
- [x] 讽刺检测(NLP 模块)
- [x] 用户活跃度统计
- [x] 用户画像系统
- [x] 3D 用户群组关系图谱
- [x] 预警系统(多维度规则引擎)
- [x] 实时 WebSocket 推送
- [x] 前端完整界面(13+ 页面)
- [x] 多 QQ 号支持
- [x] 系统配置管理
- [x] 报表导出(Excel + PDF 专业版式)
- [x] 报告中心(历史报告管理)
### 进行中
- [ ] 移动端适配优化
- [ ] Docker 一键部署
### 计划中
- [ ] 机器人自动回复(基于规则/AI)
- [ ] 多平台支持(微信、Telegram)
- [ ] 数据备份与恢复
- [ ] 更多 AI 功能(摘要生成、智能问答)
- [ ] 用户权限管理
- [ ] 多语言支持
## 技术栈详情
### 后端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| Python | 3.10+ | 编程语言 |
| FastAPI | 0.109+ | 高性能异步 Web 框架 |
| SQLAlchemy | 2.0+ | ORM(异步模式) |
| aiosqlite | 最新 | SQLite 异步驱动 |
| Pydantic | 2.5+ | 数据验证和序列化 |
| jieba | 0.42+ | 中文分词 |
| snownlp | 0.12+ | 中文情感分析 |
| PyTorch | 最新 | 深度学习框架(LSTM) |
| APScheduler | 3.10+ | 定时任务调度 |
| WebSockets | 12.0+ | 实时通信 |
| Redis | 5.0+ | 缓存(可选) |
| httpx | 0.26+ | 异步 HTTP 客户端 |
### 前端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| React | 18.2+ | UI 库 |
| TypeScript | 5.3+ | 类型系统 |
| Vite | 5.0+ | 构建工具 |
| Tailwind CSS | 3.4+ | 原子化 CSS |
| shadcn/ui | 最新 | 组件库 |
| Radix UI | 最新 | 无样式组件基础 |
| TanStack Query | 5.17+ | 服务端状态管理 |
| Zustand | 5.0+ | 客户端状态管理 |
| React Router | 6.21+ | 路由管理 |
| Recharts | 3.2+ | React 图表库 |
| Echarts | 5.4+ | 通用图表库 |
| ForceGraph3D | 1.79+ | 3D 力导向图 |
| Three.js | 0.181+ | 3D 渲染引擎 |
| Graphology | 0.26+ | 图论库 |
| Sigma.js | 3.0+ | 图可视化 |
| Lucide React | 最新 | 图标库 |
### 数据库设计
**核心表结构**(14 个表):
- `messages`: 消息记录(主表)
- `groups`: 群组信息
- `users`: 用户信息
- `keywords`: 关键词提取结果
- `message_keywords`: 消息-关键词关联表(多对多)
- `sentiments`: 情感分析结果
- `topics`: 话题聚类结果
- `message_topics`: 消息-话题关联表(多对多)
- `user_activities`: 用户活跃度统计
- `alerts`: 预警记录
- `alert_rules`: 预警规则配置
- `reports`: 报告记录(历史报告存储)
- `system_configs`: 系统配置
- (附加索引和关系映射表)
## 开发说明
### 后端开发
#### 添加新 API 端点
1. 在 `app/models/` 创建数据模型
2. 在 `app/repositories/` 创建 Repository
3. 在 `app/services/` 创建 Service
4. 在 `app/api/v1/endpoints/` 创建 API 端点
5. 在 `app/api/v1/router.py` 注册路由
#### 运行测试
```bash
cd backend
pytest tests/ # 运行所有测试
pytest tests/test_services.py # 运行特定测试
pytest -v --cov=app # 带覆盖率报告
```
### 前端开发
#### 添加新页面
1. 在 `src/types/` 定义类型
2. 在 `src/api/endpoints.ts` 添加 API 调用
3. 在 `src/pages/` 创建页面组件
4. 在 `src/App.tsx` 添加路由
#### 代码规范
- **组件命名**: PascalCase
- **函数命名**: camelCase
- **样式**: 仅使用 Tailwind CSS
- **类型**: 所有 Props 和状态必须有类型定义
- **Hooks**: 自定义 Hooks 以 `use` 开头
## 贡献指南
欢迎提交 Issue 和 Pull Request!
### 提交规范
使用 [Conventional Commits](https://www.conventionalcommits.org/) 格式:
- `feat`: 新功能
- `fix`: 修复 Bug
- `docs`: 文档更新
- `style`: 代码格式
- `refactor`: 重构
- `test`: 测试相关
- `chore`: 构建/工具链相关
示例:`feat: add AI topic analysis`
## License
MIT License - 详见 [LICENSE](LICENSE) 文件
## 致谢
感谢以下开源项目:
- [FastAPI](https://fastapi.tiangolo.com/) - 现代 Python Web 框架
- [React](https://react.dev/) - 用户界面库
- [shadcn/ui](https://ui.shadcn.com/) - 精美的 UI 组件
- [Tailwind CSS](https://tailwindcss.com/) - 实用优先的 CSS 框架
- [jieba](https://github.com/fxsjy/jieba) - 中文分词
- [SnowNLP](https://github.com/isnowfy/snownlp) - 中文情感分析
- [PyTorch](https://pytorch.org/) - 深度学习框架
- [LLOneBot](https://github.com/LLOneBot/LLOneBot) - QQ Bot 接口
- [Three.js](https://threejs.org/) - 3D 渲染库
- [ForceGraph3D](https://github.com/vasturiano/3d-force-graph) - 3D 力导向图
- [Echarts](https://echarts.apache.org/) - 数据可视化图表库
- [ReportLab](https://www.reportlab.com/) - PDF 生成库
## 联系方式
- **Email**: 954811360@qq.com
- **Gitee**: [@muchuan114514](https://gitee.com/muchuan114514)
- **项目主页**: [Gitee](https://gitee.com/muchuan114514/python-qq-bot) | [GitHub](https://github.com/muchuan114514/PythonQQBot)
---
**VoxMind 言智 | Made with ❤️ by R0LL & TwindT**
AI 驱动的舆情智能分析平台 | 版本 2.0
如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!