⏸ 服务状态AI 学习路径规划的线上后端目前已暂停服务。本页仅保留项目介绍与成果记录,暂不提供在线体验。
📌 项目背景
我们组发现身边同学普遍有个痛点:学了一堆课,但不知道自己能找什么岗、还差什么技能。简历空空、求职迷茫,是大学生最普遍的状态。
为此我们做了一个工具:学生输入自己的专业 + 技能标签,系统用 AI 算法综合分析,输出个性化的岗位推荐、匹配度评分和差距分析。
3 人小组协作,本人作为组长负责后端架构、整体部署以及前后端联调,组员仅负责文档撰写。
📊 关键数据
9
后端接口
7
业务数据表
615KB
数据库体积
80+
技能别名归一化
3
上线终端
6月+
稳定运行
🛠 技术栈
| 模块 | 技术选型 | 作用 |
|---|---|---|
| 后端服务 | Python + FastAPI | 9 个接口,ASGI 异步 |
| 数据库 | SQLite | 7 张业务表,零配置部署 |
| AI 引擎 | MiniMax LLM + 提示工程 | 技能语义提取与匹配 |
| Web 前端 | 原生 HTML/CSS/JS | 单文件架构,无构建 |
| 微信小程序 | WXML/WXSS/JS | 3 个核心页面 + TabBar |
| 移动端 App | Flutter 3.x + Provider | Material Design 3 跨平台 |
| 部署 | 阿里云 + 反向代理 | 7×24 服务守护 |
🧠 核心算法:四层漏斗技能提取
用户输入技能时,格式往往混乱:c++、C++、c plus plus 都是同一个东西。我设计了一个"四层漏斗"提取模型,从严格到宽松逐层匹配:
| 层级 | 策略 | 置信度 |
|---|---|---|
| Layer 1 | 子串精确匹配 | 10 |
| Layer 2 | 去空格子串匹配 | 9 |
| Layer 3 | 英文 Token 前缀匹配 | 7 |
| Layer 4 | 中文 N-gram 模糊匹配 | 6 |
💡 判定规则
Score ≥ 7 视为"确认技能",Score < 7 进入"待定区",需用户二次确认。这套机制让 c++/C++/c plus plus 等 80+ 种格式变体都能归一化匹配。
🎯 我解决的难点
- 技能格式混乱:用户输入五花八门("python 全栈开发" vs "python 全栈开发")→ 设计四层漏斗 + 别名归一化规则(80+ 条)
- 三端一致性:Web、小程序、App 各自实现 UI 但要行为一致 → 抽 9 个统一接口,前端只负责展示
- 首次部署失败:阿里云首次跑 FastAPI + uvicorn 启动顺序问题 → 改写 systemd 服务脚本 + 健康检查
- 匹配精度:加权公式
总分 = 专业技能 × 10 + 软技能 × 3,让硬技能权重远高于软技能
🏆 成果
- 三端上线:Web、微信小程序、Android App 均稳定运行
- 数据库 615KB 支撑完整业务流转(jobs / skills / user_abilities 等 7 张表)
- 已稳定运行半年以上,未出现重大故障
- 完整跑通 "架构设计 → 接口开发 → AI 集成 → 三端联调 → 部署上线" 全流程
✅ 经验沉淀
这次项目让我掌握了从 0 到 1 完整落地一个 AI 应用的工程化思维——架构、接口、数据库、部署,每一环都不能省。