最近把一个适合大学生课程设计、毕业设计、个人非商业二开的全栈项目重新整理了一遍:

AI-Vue3-python-flask-Blog

GitHub 地址:

https://github.com/linsk27/AI-Vue3-python-flask-Blog

如果你正在找一个能跑起来、能讲清楚、还能继续扩展 AI 能力的计算机毕业设计项目,可以先 Star 收藏一下。这个项目不是只有几个静态页面的模板,而是一个包含前台、后台、Flask API、MySQL、登录鉴权、AI 起草和 RAG 增强方向的完整实践项目。

使用声明:本项目仅供学习交流、课程设计、毕业设计和个人非商业二开参考,禁止商业用途。

一、这个项目解决什么问题?

很多同学做毕业设计时会遇到几个典型问题:

  • 项目只有前端页面,没有真实后端和数据库,答辩时很难讲业务闭环。
  • 项目只有普通 CRUD,没有亮点,和常见管理系统区分不开。
  • 想加 AI,但不知道 AI 应该放在哪里,也不知道怎么控制上下文和 token 成本。
  • 想做前后台分离,但后台管理、用户前台、接口服务边界混在一起。
  • 网上找来的源码能跑,但结构不清晰,后续二开很痛苦。

这个项目的定位就是:在传统博客系统的基础上,补齐真实数据库、管理后台、AI 生成、上下文包和 RAG 二开方向,让它既能作为毕设基础项目,也能作为学习 AI 应用工程化的练手项目。

你可以把它理解为两个阶段:

  • main 分支:稳定的 AI 博客系统基础版,适合课程设计、毕业设计演示和快速二开。
  • feat/contextforge-workspace 分支:正在开发的增强分支,项目名暂定为 知境 ContextForge,目标是把普通 AI 博客升级为 AI 知识工作台。

二、适合哪些人?

这个项目比较适合下面几类同学:

  • 正在找计算机毕业设计、课程设计、软件工程大作业项目。
  • 想学习 Vue3 + Flask + MySQL 前后端分离完整链路。
  • 想做博客系统、内容管理系统、后台管理系统。
  • 想把普通系统升级成带 AI 写作、AI 摘要、知识库问答的系统。
  • 想学习 RAG、上下文包、Embedding 这些 AI 应用概念。
  • 想基于现成项目继续做个人作品集、简历项目或答辩展示。

如果你只是想快速完成一个稳定可演示的毕设,可以优先看 main 分支。如果你对 AI/RAG 感兴趣,想继续往知识库、文档问答、上下文增强方向扩展,可以看 feat/contextforge-workspace 分支。

三、项目技术栈

前台用户端:

  • Vue 3
  • Vite
  • TypeScript
  • Pinia
  • Vue Router
  • Element Plus
  • Quill 富文本编辑器

后台管理端:

  • Avue
  • Vue 3
  • Vite
  • Element Plus
  • 独立后台入口

后端服务:

  • Python Flask
  • SQLAlchemy
  • PyMySQL
  • JWT 登录鉴权
  • Flask-CORS
  • REST API

数据库:

  • MySQL
  • 用户、文章、分类、标签、上下文包、RAG 索引等业务表

AI 能力方向:

  • OpenAI-compatible Chat API
  • AI 起草文章
  • 上下文包
  • RAG 检索增强
  • Embedding 配置基础能力
  • 语义检索二开方向

四、整体架构怎么理解?

这个项目不是把所有东西塞在一个前端页面里,而是按职责拆成三块:

用户前台 front
  -> 面向普通用户和内容创作者
  -> 浏览、登录、写文章、AI 起草、上下文工作台

管理后台 avue-cli
  -> 面向管理员
  -> 用户管理、文章管理、分类标签、上下文包和系统配置

后端 backend
  -> Flask API 服务
  -> 负责鉴权、数据库读写、AI 调用、RAG 检索、后台接口

请求链路大致是这样:

浏览器页面
  -> Vue / Avue 发起 API 请求
  -> Flask 校验登录态和权限
  -> SQLAlchemy 访问 MySQL
  -> 需要 AI 时调用大模型接口
  -> 需要 RAG 时先检索相关片段,再把少量上下文交给 AI
  -> 返回真实数据给页面展示

这样拆分的好处是,答辩时很好讲清楚:

  • 前台负责用户体验。
  • 后台负责运营管理。
  • 后端负责业务规则。
  • 数据库保存真实数据。
  • AI 模块是系统增强能力,不是写死的演示文本。

五、前台有什么功能?

前台主要面向普通访问者和内容创作者,核心功能包括:

  • 用户登录和基础身份识别。
  • 博客内容展示。
  • 文章编辑和富文本写作。
  • AI 起草入口。
  • 上下文包选择。
  • RAG 检索预览。
  • AI 生成结果写入编辑器。
  • 面向知识工作台的页面整理。

之前的版本容易出现一个问题:页面里有些按钮看起来像功能,但实际没有真正接到后端。现在开发方向是让页面展示的数据尽量来自真实接口,每个按钮都对应明确的行为,而不是只做演示 UI。

比如“AI 起草”不是简单弹出一段假文本,而应该做到:

用户填写主题或写作要求
  -> 选择是否携带上下文包
  -> 后端根据用户输入检索相关资料
  -> 组装低 token 的提示词
  -> 调用 AI
  -> 清洗返回内容
  -> 把可编辑的 Markdown/正文放入编辑器

六、后台管理端为什么要单独存在?

很多毕设项目会把后台功能塞进前台页面里,看起来方便,但长期会很乱。这个项目正在把后台边界拆清楚:

  • 普通用户前台只保留写作、浏览、AI 工作台等用户功能。
  • 管理员后台负责系统管理、内容审核、数据维护和配置管理。
  • AI 配置、上下文包边界、系统自检等更偏管理性质的能力,应放在后台或管理员入口。

后台适合做这些事情:

  • 用户管理
  • 文章管理
  • 分类和标签管理
  • 上下文包管理
  • RAG 索引重建
  • AI 模型配置
  • 系统自检
  • 数据统计和运行状态查看

这样答辩时也更容易解释权限模型:普通用户不能随便改系统配置,管理员才有维护数据和配置 AI 能力的权限。

七、什么是上下文包?为什么要有 RAG?

项目里“上下文包”的意思是:把一组和写作或问答相关的资料整理成可复用的知识来源。

例如你做毕业设计时,可以把这些内容放进上下文包:

  • 需求分析
  • 数据库设计
  • 接口说明
  • 项目 README
  • 答辩稿
  • 论文摘要
  • 功能模块说明

如果每次都把这些内容完整复制进提示词,会有几个问题:

  • 提示词越来越长。
  • token 消耗越来越高。
  • AI 不一定能抓住重点。
  • 内容多了之后,用户不知道 AI 到底参考了哪些资料。

RAG 的思路是先把资料切分成小块,然后在用户提问或起草时只检索最相关的片段:

资料文件
  -> 清洗文本
  -> 切分成 chunk
  -> 建立索引
  -> 用户提问时检索相关 chunk
  -> 只把命中的少量片段交给 AI
  -> AI 基于这些片段回答或起草

这比“把所有内容直接塞进提示词”更适合长期使用,也更适合扩展成知识库问答、论文辅助、答辩资料助手等功能。

目前项目正在逐步把关键词检索升级为更可维护的 RAG 流程。Embedding 语义检索属于后续增强方向,因为它需要接入向量模型,通常会产生一定 API 成本,所以项目会保留配置开关,让开发者可以按需要开启。

八、两个分支怎么选?

main 分支

main 是更适合直接拿来做课程设计、毕业设计和基础二开的稳定分支。

它适合:

  • 想快速跑通前后端。
  • 想基于博客系统做功能扩展。
  • 想部署到 Vercel、Railway 或自己的服务器。
  • 想准备答辩演示和论文说明。

feat/contextforge-workspace 分支

feat/contextforge-workspace 是正在持续开发的增强分支,也就是 知境 ContextForge 的开发方向。

它适合:

  • 想学习 AI 应用怎么落地。
  • 想研究上下文包和 RAG。
  • 想把项目做成更有产品感的知识工作台。
  • 想继续扩展 Embedding、语义检索、AI 工作流。

如果你是第一次使用,建议先跑 main,确认环境没问题后,再切到开发分支学习增强功能。

九、页面截图在哪里?

CSDN 对 GitHub raw 图片外链有时会转存失败,为了避免文章里出现坏图,截图统一放在 GitHub 中查看:

  • 项目 README 截图预览:https://github.com/linsk27/AI-Vue3-python-flask-Blog/tree/feat/contextforge-workspace#页面预览
  • 截图目录:https://github.com/linsk27/AI-Vue3-python-flask-Blog/tree/feat/contextforge-workspace/docs/screenshots/contextforge

目前已经整理了这些截图:

  • 知境 ContextForge 工作台首页
  • 知识库列表
  • 前台登录与 AI 工作台入口
  • 独立 Avue 管理后台登录页

十、快速启动

1. 创建数据库

CREATE DATABASE lsk CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2. 启动 Flask 后端

cd backend
copy .env.example .env
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python init_db.py
python app.py

默认后端地址:

http://127.0.0.1:5000

默认管理员账号:

admin / admin123

正式环境一定要修改默认密码和 SECRET_KEY

3. 启动前台

cd front
npm install
npm run dev -- --host 0.0.0.0 --port 8080

前台访问:

http://127.0.0.1:8080

4. 启动 Avue 管理后台

cd avue-cli
npm install
npm run dev -- --host 0.0.0.0

后台访问:

http://127.0.0.1:5001

十一、可以怎么二开?

这个项目可以继续扩展成很多方向:

  • AI 写作平台
  • 个人知识库
  • 毕设答辩资料助手
  • RAG 文档问答系统
  • 课程资料管理系统
  • 博客 + 管理后台系统
  • 简历项目展示系统
  • 小团队知识沉淀工具
  • 论文资料整理工具
  • AI 项目文档助手

如果做毕业设计,可以从这些功能里选择一两个重点深化,不需要一次性做得太大:

  • 完善文章审核流程。
  • 增加用户角色和权限。
  • 增加评论、收藏、点赞。
  • 增加后台数据统计。
  • 增加 AI 摘要和 AI 标签生成。
  • 增加 RAG 文档问答。
  • 增加部署文档和在线演示。

这样项目既不会失控,又能在答辩时讲出技术深度。

十二、这个项目的学习价值

这个项目不只是一个“博客系统源码”,它更适合用来学习完整全栈项目结构:

  • 前端页面如何组织。
  • 后台管理端如何拆分。
  • Flask API 如何设计。
  • MySQL 表结构如何配合业务。
  • 登录鉴权和权限边界如何处理。
  • AI 生成内容如何接入真实编辑流程。
  • RAG 如何降低上下文成本。
  • 一个普通系统如何逐步升级成 AI 应用。

对大学生来说,它的价值不只是“能交作业”,更重要的是可以围绕它继续讲架构、讲数据、讲权限、讲 AI 增强,答辩时会比单纯 CRUD 项目更有内容。

十三、最后

项目名:

AI-Vue3-python-flask-Blog

GitHub:

https://github.com/linsk27/AI-Vue3-python-flask-Blog

如果这个项目对你有帮助,欢迎到 GitHub 点一个 Star。后续会继续完善部署说明、后台权限、上下文包、RAG、Embedding、真实数据场景和更多适合毕设答辩的文档。

再次说明:项目仅供学习交流、课程设计、毕业设计和个人非商业二开参考,禁止商业用途。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐