一、项目介绍
“诤略参谋(Critistrat)”是一个在山东大学软件学院 2025 年创新项目实训背景下诞生的前后端分离 Web 应用。DeepSeek-R1 在“诤略参谋”项目中扮演虎视眈眈的对手和吹毛求疵的参谋,以对抗姿态帮助用户找出并弥补计划缺陷。
·
简介
“诤略参谋(Critistrat)”是一个接入了 DeepSeek-R1 的、前后端分离的 Web 应用,旨在帮助用户——
- 管理项目及其计划;
- 根据已有的项目背景制订计划;
- 指出已有计划的不妥之处,提出全局性和针对性的改进方案,最终根据被采纳的改进方案改进原计划;
- 为计划绘制流程图;
- 分析计划所需的预算和潜在风险。
DeepSeek-R1 在此项目中扮演虎视眈眈的对手和吹毛求疵的参谋,以对抗姿态帮助用户找出并弥补计划缺陷。“诤”表直言劝诫,“略”表计划。“参谋”表明它是盟友而非敌人,是辅助而非主导。
- DeepSeek-R1 是对世界知识的有损压缩,更容易从多个角度分析问题、提出跨领域解决方案。这会帮助用户扩展认知边界、为计划补充用户缺失的视角和遗漏的因素。
- DeepSeek-R1 以旁观者的视角分析问题,不受当局者的思维定式和情绪影响。当用户陷入看似合理的逻辑陷阱,明知自己出错却因思维惯性反复犯错、难以溯源时,DeepSeek-R1 能够跳出固有框架,直指问题核心,帮助用户摆脱错误循环。
- DeepSeek-R1 永不懈怠地严格执行包含复杂方法论的指令。当用户为节省精力而在思想上懈怠、明知风险却仍故意抛弃已知方法论时,永不懈怠的 DeepSeek-R1 充当最后一道防线,让方法论总被执行、风险总被考虑。
诤略参谋为用户提供了丰富的个性化配置项,包括但不限于创造力等级、严格等级、人格和上下文策略。用户可以根据场景特点的差异组合不同的配置,以获得更具个性化的体验和更高质量的结果。
开发团队
本项目源于山东大学软件学院 2025 年创新项目实训,由一支五人小队开发。开发成果包含发布到 Gitee 的源程序、发布在 CSDN 上的项目文档和各开发成员发布在 CSDN 上的开发日志。
团队成员
- 魂兮归乡(@theColumnSpace)
- dogdogw(@hendrix_z)
- w_x_yao(@wang_xiao_yao_w)
- 贝格拉夫(@m0_74435759)
- epiphany狂人(@weixin_74924324)
项目文件结构
critistrat/ # 诤略参谋 CRITISTRAT 项目 Git 仓库
├── .gitignore
│
├── front-end/ # 前端 Vue3 项目
│ ├── public/
│ │ ├── imgs/ # LOGO 等图像
│ │ └── sounds/ # 音效
│ │ ├── ambience/ # 氛围音效
│ │ └── ... # 一个文件夹对应一个组件的音效
│ ├── src/ # 源码
│ │ ├── components/ # 可复用组件
│ │ │ ├── FormWrapper.vue # 博客二中的三件套
│ │ │ ├── Btn.vue # 博客二中的三件套
│ │ │ ├── Field.vue # 博客二中的三件套
│ │ │ ├── Txt.vue # Field 变种
│ │ │ ├── TaskBtn.vue # 博客三中的 Btn 变种,进行 LLM 相关任务用
│ │ │ └── ...
│ │ ├── views/ # 渲染在非顶层 RouterView 中的面板
│ │ ├── layouts/ # 渲染在顶层 RouterView 中的面板
│ │ │ ├── Welcome.vue # “报上名来”页
│ │ │ ├── WorkSpace.vue # 核心工作区
│ │ │ └── NotFound.vue # 404 页
│ │ ├── config/ # 全局设置(其实就是把常量汇集起来)
│ │ ├── utilities/ # 工具函数或对象
│ │ │ ├── http.js # axios 请求/响应配置
│ │ │ ├── validators.js # Field 组件使用的 validator(前端校验函数)
│ │ │ ├── ocrHelper.js # 利用 OCR 向 Txt 追加文本相关函数
│ │ │ └── tools.js # 常用工具函数
│ │ ├── router/ # 路由层级配置
│ │ ├── stores/ # 响应式状态集中管理
│ │ │ ├── plan.js # 项目、计划与计划下参谋生成项相关状态
│ │ │ ├── user.js # 自动登录和主题等全局配置相关状态
│ │ │ ├── memory.js # 记忆相关状态
│ │ │ ├── personality.js # 人格相关状态
│ │ │ ├── txt.js # Txt 的“注册表”,路由守卫据此给出未保存时路由 Modal 提醒
│ │ │ ├── task.js # 任务系统核心逻辑,包含轮询
│ │ │ ├── toast.js # 博客三中弹窗系统的 Toast 部分,与 axios 响应拦截器协作
│ │ │ ├── notification.js # 博客三中弹窗系统的 Notification 部分,与任务系统协作
│ │ │ └── modal.js # 博客三中弹窗系统的 Modal 部分
│ │ ├── styles/ # 全局样式和变量、函数、动画、响应式定义
│ │ │ ├── main.scss # 联系各 partial、全局重置、定义 CSS 颜色变量、可复用样式
│ │ │ ├── _variables.scss # 颜色、字号、圆角等变量
│ │ │ ├── _mixins.scss # 共用小代码段
│ │ │ ├── _keyframes.scss # 共用关键帧动画
│ │ │ └── _breakpoints.scss # 未来实现响应式网站用
│ │ ├── App.vue
│ │ └── main.js
│ ├── index.html # 在这里设置资源引用、favicon 等
│ ├── persona-viz.html # 官方人格深度可视化介绍页,详见项目文档九
│ ├── package.json
│ └── vite.config.js # 插件、服务器代理等配置
│
├── back-end/ # 后端
│ ├── src/main/java/com.critistrat.backend/
│ │ ├── service/ # 业务层:写逻辑,供 controller 调用
│ │ │ ├── EmailService # 发送邮箱验证码
│ │ │ ├── LLMService # One API 异步请求和响应处理,详见博客三
│ │ │ ├── ContextFileService # 文件上传、删除、阈值判断等
│ │ │ ├── AliDocumentParsingService # 利用阿里云文档大模型解析用户上传的文件
│ │ │ ├── PlanTransactionalUpdater # 应对计划生成异步任务出现竞态条件的情况
│ │ │ ├── SuggestionPositionCorrector # 为参谋提出的针对性建议确定原文起止索引
│ │ │ └── ...
│ │ ├── controller/ # 接口层:RESTful API,接收和响应 HTTP 请求
│ │ │ ├── AuthController # 一些 Jwt 不检查的登录前操作
│ │ │ ├── LLMController # POST /api/llm/xx 提交任务,详见博客三
│ │ │ ├── TaskController # 任务系统初始化和轮询自用,详见博客三
│ │ │ └── ...
│ │ ├── entity/ # 实体类
│ │ │ ├── User
│ │ │ ├── Project
│ │ │ ├── Plan
│ │ │ ├── EmailCode # 邮箱验证码
│ │ │ ├── EmailUsage # 枚举类,反映邮箱验证码的用途
│ │ │ ├── Task # 任务系统自用
│ │ │ ├── TaskStatus # 枚举类,反映任务状态
│ │ │ └── ...
│ │ ├── repository/ # JPA 接口
│ │ ├── format/ # 数据传输模型
│ │ │ ├── BizCode # 业务码
│ │ │ ├── StdResponse # 统一响应格式
│ │ │ ├── Conversation # 结构化上下文
│ │ │ ├── CCO # Chat Completions API 返回数据的格式
│ │ │ ├── CCR # 调用 Chat Completions API 时需先把 Conversation 对象转为 CCR 对象,再进行序列化
│ │ │ └── ...
│ │ ├── exception/
│ │ │ ├── GlobalExceptionHandler # MVC 层全局异常处理器
│ │ │ ├── ErrorAggregator # /error API,其实就一 RESTful Controller
│ │ │ ├── BizException # 建议在异常情况下用 BizCode 实例化并抛出之
│ │ │ ├── AutoLoginFailedException
│ │ │ ├── OutputFormatException # LLM 输出不符合格式异常
│ │ │ └── PromptInvalidException # 语义审查不通过异常
│ │ ├── config/
│ │ │ ├── SecurityConfig # Security 过滤器链配置
│ │ │ ├── WebClientConfig # 配置调用 LLM API 的对象,类似 axios 的配置
│ │ │ └── WebConfig # 配置 /avatars/** 静态资源映射
│ │ ├── security/ # Security 过滤器链相关,详见博客二
│ │ │ ├── CustomAuthenticationEntryPoint
│ │ │ │ # 自定义入口点,会把异常请求转发到 /error
│ │ │ └── JwtAuthFilter # JwtAuthFilter 相关配置
│ │ ├── utility/ # 工具
│ │ │ ├── JwtUtil # 签发、校验 Jwt 等函数
│ │ │ └── Utility # 其他工具函数。大部分 LLM 提示词集中于此
│ │ └── BackEndApplication.java # 启动类
│ ├── pom.xml # Maven 配置(第三方库)
│ ├── resources/
│ │ ├── application.yml # 后端配置(数据库、邮箱、端口、API、文件、阈值等)
│ │ └── ...
│ ├── uploads/ # 用户上传的文件
│ │ ├── avatars/ # 人格使用的头像
│ │ └── k/ # 用户以文件形式上传的、项目 k 的上下文
│ └── ...
├── database/
│ └── data.db # SQLite 数据库文件
└── README.md # 显示在 Gitee 仓库首页的介绍
注:更详细的信息见《一、项目伊始》。
更多推荐



所有评论(0)