AI 产品经理 · 求职意向

doyle

我把规则、数据和大模型,
拼成中介真正敢用的工具。

丽水学院 · 财务管理 · 2027.06 毕业 · 目标城市 杭州

STATUS
已上线,真实业务场景小范围试用
ROLE
独立完成 · 产品设计 + 全栈实现 + 部署上线
STACK
FastAPI / React / SQLite / LLM

01 / 关于我

先统一口径,再谈智能

我的专业是财务管理。它教给我的不是记账,而是对口径、规则、流程的敏感——两个数字放在一起比较之前,必须先确认它们说的是不是同一件事,否则算得再快也没有意义。

后来我去看家教中介的真实工作流,发现他们的困境并不在于「没有 AI」:需求散落在微信聊天记录和 Excel 里,录入靠手工;科目写法千奇百怪、地区层级不一、课酬单位混着「每小时 / 每次 / 每天」;到了匹配环节,只能一个人在几百位老师里翻表格凭经验挑。我把这些收敛成三句话:信息进不来、进来的是脏数据、数据用不起来。

于是我从需求调研、方案设计、全栈实现一路做到服务器部署,把这三件事逐个解决。整个过程让我更确定一件事:AI 产品的难点从来不在模型本身,而在于怎么让它在脏数据和不确定的输入下依然可靠地被用起来。

口径

科目别名、课酬单位、行政区划先归一再计算。口径不统一,匹配分数就没有意义。

规则

能用确定性规则解决的绝不交给大模型——硬性条件上「不可证即不推荐」。

降级

假设 AI 一定会失败:超时、返回非 JSON、结果为空,都提前备好兜底路径。

闭环

把中介「最终确认了哪位老师」当作现成的标注数据,离线校准排序质量,而不是拍脑袋定权重。

02 / 作品 01 · 独立完成

家教中介 AI 辅助信息管理系统

把「翻记录找老师」变成「一键出候选名单」:AI 智能录入负责把脏数据挡在门外,四层匹配架构负责把最合适的人排到最前面。

时间
2026.08 – 2026.09
角色
独立完成(产品设计 + 全栈实现 + 部署上线)
交付形态
Windows 桌面安装包(Electron + 内置本地模型)
云服务器 Web 版(多人共用)
状态
已部署上线,在真实家教业务场景中完成小范围试用与多轮迭代
技术栈
React + Ant Design + ECharts | FastAPI + SQLAlchemy + SQLite | Ollama(qwen2.5) + OpenAI 兼容远程提供方

我把它收敛成三件事

01

信息进不来

师生需求散落在微信聊天记录和 Excel 表格里,录入全靠手工,一位学生建档就要好几分钟。

02

进来的是脏数据

科目写法千奇百怪、地区层级不一、课酬单位混着「每小时 / 每次 / 每天」,口径不统一就没法比较。

03

数据用不起来

匹配靠人翻表格凭经验,几百位老师里挑一位,响应慢且容易漏掉真正合适的人选。

能力一 · AI 智能录入:让脏数据进不来

  • 任意输入 → 结构化档案粘贴微信派单文本,或直接丢一行任意表头的 Excel,都能转成标准档案,覆盖学生 24+ 字段与教师 17+ 字段(含课酬区间、分级定价、老师要求、是否急单、线上线下等业务字段)。
  • 枚举约束年级、科目、服务类型、课酬单位全部用固定枚举清单约束模型取值,从源头上不产生脏数据。
  • 防幻觉提示词显式要求「原文没有的字段一律留空,不要编造」,并针对「派单编号里的数字不是课酬」这类高频误判做定向约束。
  • 混合兜底大模型负责理解非结构化表达,正则负责抓中文金额、频次、编号,两者取并集互补。
  • 永不失败管道模型超时、返回非 JSON、结果为空时自动回退正则解析,核心流程不中断。

能力二 · 智能匹配:四层架构,各司其职

这套设计的核心判断是:不是所有判断都值得交给大模型。能用规则确定的先用规则砍掉,把大模型留给它真正擅长的语义判断。

  1. 硬性否决

    服务类型无交集、老师要求(性别 / 院校档位 / 专业)不满足 → 直接淘汰。

    取舍用规则,不做模糊判断:不可证即不推荐。

  2. 条件匹配分

    科目 / 年级 / 位置 / 时间 / 预算 五维加权打分,并输出覆盖度与缺失标注。

    取舍缺失维度不参与加权(Σ(sᵢwᵢhasᵢ)/Σ(wᵢhasᵢ)),把「没信息」和「匹配一半」区分开。

    权重 时间 25% | 预算 20% | 科目 20% | 年级 20% | 位置 15%

  3. LLM 质量评估

    经验适配、教学风格 × 学生性格契合度、目标对症、履历亮点与风险,输出结构化 JSON + 置信度。

    取舍只让大模型做规则不擅长的语义判断,而不是让它算距离和预算。

  4. 排序融合

    候选池内归一化后加权融合;LLM 环节失败时退化为纯算法榜。

    取舍原始分直接加权会因量纲不同产生隐性篡权,必须先归一化。

关键迭代 · 成本与延迟

单次匹配的 LLM 调用量

500 次 18 次

单次匹配耗时(500 位老师测试数据)

5–8 分钟 10–13 秒级

首版对全部老师逐一调用大模型,500 位老师单次匹配要 5–8 分钟,显存也吃紧。重构为「传统算法粗排(算法分 ≥40 分 + Top 20)→ 只对候选池做 LLM 精排」后,调用量降了两个数量级。AI 的成本与延迟是产品能不能用的前提,不是技术细节。

能力三 · 数据治理与稳定性:让 AI 敢被用

  • 科目别名归一奥数 / 数竞 / 竞赛数学 / 数学竞赛 → 数学;雅思 / 托福 / 英语口语 → 英语;道法 / 思品 → 政治。
  • 课酬单位折算每 2 小时 / 每 3 小时 / 每次 / 每天统一折算为「每小时」,才能放在一起比价。
  • 地区解析行政区划标准化 + 同区 / 相邻区关系 + 经纬度距离打分。
  • 防误杀科目或年级无法可靠解析时不硬判死,降级走软评分——脏数据不该被当成不匹配。
  • 不静默失败LLM 精排失败时明确标注失败原因并降级为纯算法榜,绝不静默返回一个错误的结果:匹配结果错一位,中介可能就联系错了老师。

工程与上线:证明它真的跑起来了

部署

  • Ubuntu + Nginx(静态托管 + /api 反向代理)+ systemd 进程守护
  • 公网只放行 22/80/443,后端仅监听内网 127.0.0.1:8000
  • 一键部署 / 升级脚本幂等可重复执行,且永不触碰线上数据目录

稳定性

  • 自动备份:每 6 小时检查、超 24 小时生成快照、保留 14 份;日志 5MB × 5 轮转
  • 提供方配置原子写(先写 .tmp 再替换),防中途崩溃损坏配置
  • API 密钥落盘掩码显示,客户端不出现明文密钥

踩坑与修正

  • Web 版构建产物白屏,定位为相对路径配置问题,用构建配置分支隔离修复
  • 识别出 SQLite + 后台任务架构下只能单进程运行的约束,并固化进部署文档
  • 设计了桌面版与 Web 版之间的数据无损迁移流程

测试

  • 后端 22 个测试文件,覆盖匹配正确性、批量匹配、AI 解析、多提供方配置、鉴权与备份等关键链路
  • 把中介的最终确认结果回流为标注数据,用 Recall@N / MRR 离线验证排序质量

界面实拍

以下均为系统真实运行界面,点击可放大查看。

03 / 作品 02 · 个人实践

本地 AI 绘画工作流(ComfyUI)

AI 视觉 · 本地部署

  • 本地环境独立完成 ComfyUI 本地部署,装齐 18 个自定义节点插件(ControlNet Aux、IPAdapter、Impact Pack、UltimateSDUpscale、GGUF、视频生成节点等),本地模型库含 23 个 ControlNet 模型。
  • 自建工作流自己搭并保存了 Z-Image-Turbo 8 步出图工作流(1280×960),节点全部中文标注,出图链路 UNet → 双 CLIP 编码 → K 采样 → VAE 解码 一目了然。
  • 能力范围文生图 / 图生图 / ControlNet 构图控制 / IPAdapter 风格迁移 / 高清放大。

把 AI 从「会用别人的工具」,推到「能自己搭工作流、调参数、稳定出片」。

ComfyUI 工作流全貌:加载器、双 CLIP 文本编码、K 采样器、VAE 解码与图像预览节点连接关系 自建工作流Z-Image-Turbo 8 步出图
本地生成的写实风格人像作品 本地生成的古装人物作品之一 本地生成的古装人物作品之二 本地生成的夏日主题人物作品

以上均为本地模型生成,点击可放大。

04 / 能力清单

我能做什么

AI 产品

  • Prompt 工程与结构化输出约束
  • LLM 能力边界与降级策略
  • 多模型提供方与成本 / 延迟权衡
  • 排序质量评估(Recall@N / MRR)
  • 防幻觉与可解释性设计

产品设计

  • 需求调研与痛点拆解
  • 业务流程梳理
  • 功能架构与数据模型设计
  • 规则引擎与 AI 分级协作设计
  • 上线部署与运维闭环

数据与工具

  • SQL / Excel 数据处理
  • 数据口径与清洗规则设计
  • Axure / Figma / 墨刀 原型
  • 了解 Python、React、FastAPI、SQLite、Electron、Nginx

05 / 联系

想聊聊 AI 产品,或者想看看这套系统的真实运行效果?

求职意向:AI 产品经理实习生 · 杭州

2097903268@qq.com

点击会自动复制邮箱地址,并在新标签页打开 QQ 邮箱。