目录
一、引言
1.1 项目背景
随着辩论教育需求的增长,传统辩论培训存在门槛高、资源分散、反馈滞后等问题。本项目基于DeepSeek大模型构建AI辩论训练平台,旨在通过智能化交互、结构化评分和社区化学习,推动辩论思维的大众化普及与教育创新。
1.2 设计目标
- 实现实时AI陪练与多角色辩论仿真。
- 提供多维评分与个性化能力提升建议。
- 构建低门槛、高互动的辩论学习生态。
- 支持用户共创内容与社区经验分享。
1.3 适用范围
适用于学生、辩论爱好者及培训机构,提供辩论训练、模拟竞赛、数据分析等功能。
二、总体设计
2.1 需求概述
- 核心功能:包括实时辩论系统(DeepSeek 对话接口封装)、评分模块(逻辑漏洞检测与说服力分析)、观点库生成(基于关键词的 Elasticsearch 检索和结构化 Prompt 生成)。
- 辅助系统:涵盖用户成长体系(积分、徽章、排行榜)、根据用户画像生成智能训练建议、历史记录回溯与观点收藏功能。
2.2 系统架构设计
采用分层架构,分为以下四层:
1. 用户层:Web前端(Vue3)、移动端(可选)。
2. 服务层
- 核心服务:FastAPI封装的DeepSeek对话接口(论点生成、逻辑反驳、复盘总结)。
- 辅助服务:RAG观点检索、评分模块、社区管理。
3. 数据层
- 关系型数据库(MySQL):用户信息、辩论记录、积分系统。
- 缓存(Redis):热门话题、实时辩论状态。
- 向量数据库(Milvus):结构化辩论语料库。
4. 基础设施层:云服务器、Docker容器化部署。
2.3 技术选型
- 前端:Vue3 + Element Plus
- 后端:FastAPI + MySQL+Redis
- 实时交互:WebSocket + JSON消息协议
- 数据处理:Scrapy爬虫 + NLP清洗工具
- 部署:Docker + 第三方云服务器
三、模块设计
3.1 核心功能模块
- 实时辩论系统模块DeepSeek 对话接口封装:基于 FastAPI 重构后端接口,封装 DeepSeek 对话 API,实现论点生成接口、逻辑反驳接口和辩论复盘接口。接口响应时间≤500ms(90% 请求),支持并发连接。
- WebSocket 实时交互:使用 FastAPI 的 WebSocket 模块实现浏览器端(Vue3)与后端的实时交互,定义 JSON 格式的消息结构,支持并发 WebSocket 连接,消息延迟≤200ms。
- 评分模块逻辑漏洞检测系统:构建包含五大类逻辑谬误的规则库,采用基于正则表达式和关键词匹配的检测算法,准确率≥85%,集成 DeepSeek 辅助分析,生成改进建议的覆盖率≥70%。
- 说服力评分体系:设计逻辑结构、论证深度、语言表达 3 个评分维度,制定 5 + 评分细则,实现自动化评分。
- 观点库生成模块数据收集与预处理:从公开辩论平台、学术数据库及开源辩论数据集爬取 / 收集 500 + 条结构化辩论语料,原始数据文本量 > 100MB,对数据进行清洗、去重及分词处理。
- 标注与检索:标注每条语料的核心属性,实现关键词检索功能,检索准确率≥90%。
- 结构化 Prompt 生成:设计结构化 Prompt 模板(含立论、质询等场景),生成正反方观点的完整率≥95%,建立自动爬虫系统,每日新增 50 条左右互联网热点辩论数据。
3.2 辅助系统模块
- 用户成长体系模块积分与徽章系统:设计 5 类积分规则(如每日登录、完成辩论等获取积分),设置青铜、白银、黄金 3 种徽章等级(按总分触发,覆盖率 100%)。
- 排行榜:根据用户积分、辩论胜率等数据生成辩论排行榜。
- 智能训练建议:统计用户行为数据(如辩论失败次数、发言长度、反驳成功率),基于规则和用户个人能力(逻辑能力、反驳能力等 5 个基础维度)生成训练建议,覆盖率 80%。
- 用户画像:构建包含逻辑能力评分、知识面标签、活跃度等级、辩论胜率、训练完成率 5 个特征的用户画像。
- 历史记录与收藏模块历史记录回溯:存储用户辩论历史记录,支持用户查看历史辩论过程,包括辩题、双方论点、辩论回合记录等。
- 观点收藏:用户可收藏感兴趣的辩论观点,方便后续查看和学习。
四、接口设计
4.1 外部接口
- DeepSeek API 接口:与 DeepSeek 大模型进行交互,获取辩论相关的文本生成、逻辑分析等能力。
- 云服务接口:与第三方云服务进行交互,实现服务器资源管理、数据缓存和静态资源分发。
4.2 内部接口
- 前后端接口:前端通过 HTTP 请求和 WebSocket 与后端进行数据交互,传递用户输入、获取辩论数据、评分结果等信息。
- 后端模块间接口:实时辩论系统模块、评分模块、观点库生成模块等后端模块之间通过函数调用、消息队列等方式进行数据共享和协作。
五、数据设计
5.1 数据实体
根据项目需求文档,确定数据实体以及实体关系,如以下E-R图所示:
5.2 主要数据库表
5.2.1 user表
字段名 | 字段描述(字段名的中文) | 数据类型 |
id | 用户唯一标识 | int |
username | 用户名 | string |
| 用户邮箱 | string |
password_hash | 用户密码哈希值 | string |
is_superuser | 是否为超级用户 | bool |
score_total | 用户总积分 | int |
badge_level | 用户徽章等级 | enum |
created_at | 用户创建时间 | datetime |
5.2.2 DebateSession表
字段名 | 字段描述(字段名的中文) | 数据类型 |
id | 辩论会话唯一标识 | int |
user_id | 发起辩论会话的用户标识 | int |
topic | 辩论话题 | string |
position | 用户在辩论中的立场 | enum |
result | 辩论结果 | enum |
created_at | 辩论会话创建时间 | datetime |
5.2.3 DebateTurn表
字段名 | 字段描述(字段名的中文) | 数据类型 |
id | 辩论会话唯一标识 | int |
user_id | 发起辩论会话的用户标识 | int |
topic | 辩论话题 | string |
position | 用户在辩论中的立场 | enum |
result | 辩论结果 | enum |
created_at | 辩论会话创建时间 | datetime |
5.2.4 Report表
字段名 | 字段描述(字段名的中文) | 数据类型 |
id | 报告唯一标识 | int |
user_id | 收到报告的用户标识 | int |
score | 报告中的评分 | int |
suggestion | 报告中的建议 | int |
5.2.5 CommunityPost表
字段名 | 字段描述(字段名的中文) | 数据类型 |
id | 社区帖子唯一标识 | int |
user_id | 发布社区帖子的用户标识 | int |
title | 社区帖子标题 | string |
content | 社区帖子内容 | text |
created_at | 社区帖子创建时间 | datetime |
5.2.6 Comment表
字段名 | 字段描述(字段名的中文) | 数据类型 |
id | 评论唯一标识 | int |
post_id | 所属社区帖子标识 | int |
user_id | 发表评论的用户标识 | int |
content | 评论内容 | text |
created_at | 评论创建时间 | datetime |
六、用户界面设计
界面名称 | 用户角色 | 核心功能 |
登录注册页 | 学员/管理员 | 用户/管理员登录注册 |
首页 | 学员/管理员 | 功能入口、推荐任务 |
智能陪练室 | 学员 | 实时辩论交互区、AI反馈 |
辩论仿真大厅 | 学员 | 选择辩题、历史对战复盘 |
数据报告中心 | 学员 | 多维能力雷达图、历史表现趋势分析 |
内容工坊 | 学员 | 用户共创辩题库、论点共享社区、AI辅助生成案例素材 |
个人中心 | 所有用户 | 成就系统、个性化设置(AI陪练风格等)、学习档案 |
管理员控制台 | 管理员 | 敏感内容审核、系统日志监控 |