全栈开发 · AI 应用工程

李俊霖 / Lin

用技术拆解复杂业务问题并实现落地。技术是主语,业务是宾语—— 我关心的是怎么把含糊的诉求建模成数据结构、计算流程与编排图,再让它稳定跑起来。

广州,在职寻求机会 目标:AI 应用工程师 / 全栈工程师 Python · TypeScript 双栈

作品

四项已完成的工程,按「能不能亲手点开」排序。能跑的放前面,最有深度的紧跟其后。

01 可体验

城市体检数据管理平台

双端生产系统。移动端做调研数据采集与板块填报,网页端做指标配置、多层级权限、数据汇聚与一键导出。省级成果,多级组织树五级联动。

  • 元数据驱动的指标配置:新增指标不改代码
  • 审核状态机:草稿 / 待审 / 退回 / 通过,意见回传闭环
  • RBAC 加数据行级权限,组织层级决定可见范围
  • 异构填报数据的汇聚管道与结构校验
参与研发:两端全流程梳理与开发、数据结构与字段设计、数据库运维与缺陷修复
内部生产系统,源码与业务数据不公开
02 内部项目

多智能体协作系统

用多智能体生成长文分析产出的编排系统。核心不是让模型写得更多,而是让产出可验证、可复算、可回归。

  • LangGraph 编排 planner → gov → res → judge 主流程
  • 五组 Pydantic 数据契约,阶段间只认契约不认自由文本
  • 独立规则引擎作为硬约束层,架构上不可被模型绕过
  • 完整评测体系:阈值门禁、离线 A/B、基线对比、基准报告
330 文件 / 7 个阶段 / 19 篇计划 + 6 份规格 + 9 篇评审
单位课题,源码不公开
03 待上线

长文结构化生成编排服务

把一份多章节长文的生成拆成有依赖关系的节点图,每章独立可中断、可续写,改动只向下游传播。

  • LangGraph 多章节节点编排,checkpoint 支持中断续写
  • 章节间上下文传递,避免前后口径漂移
  • 失效传播:单章变更只重算下游,不做全量重跑
  • 29 个 prompt 资产化,与代码解耦
Python 后端 + Vue3 / TS 前端,SSE 流式输出
整理完成后开放可试用的入口
04 内部项目

模块化后台管理系统

在既有的大型代码库上做二次开发,把系统 / 监控 / 业务三层模块解耦,用插件化清单管理扩展点。

  • FastAPI + SQLAlchemy + Alembic 十三条版本化迁移
  • 插件化 manifest,扩展不改核心
  • 二十余个功能模块,Docker 交付
  • 权限模型与操作审计
2272 文件的既有代码库上二次开发
业务系统,源码与界面不公开

技术栈

标蓝的是一线在用的;虚线框的是正在补、只到「了解」程度的——这门手艺上,说清楚边界比堆名词可信。

语言
Python TypeScript JavaScript SQL Java
后端
FastAPI Pydantic SQLAlchemy Alembic REST / SSE
Agent 与 AI
LangGraph Agent 编排 Prompt 资产化 LLM 评测与门禁 规则引擎
前端
Vue 3 Element Plus Vite 微信小程序
数据
MySQL PostgreSQL PostGIS 多源数据治理
交付与运维
Docker Docker Compose Nginx Linux Git CI / CD 流水线

这个站

站本身就是一件作品,而且是唯一一件你能从头看到尾的作品——包括它是怎么上线的。

搭建与部署。站跑在一台自己的云服务器上,Nginx 承载静态页面,容器化跑需要长期运行的服务。域名、解析、备案、HTTPS 这条链走完整了一遍。

从提交到上线。代码推到仓库后由流水线完成构建与部署,镜像用提交号打标而不是 latest——为了能回滚、能追溯线上跑的到底是哪个版本。

为什么会写这些。一个能跑的东西和一个能讲清「为什么这么写」的东西,不是一回事。这个站的每一页都想把后一半写出来:选了什么、放弃了什么、什么情况下会失效。

几条自我约束

  • 不讲行业业务作品一律按技术命名,只讲建模与工程实现。读者看完应该知道我能处理什么工程问题,而不是我懂哪个行业。
  • 数字要能验证只写结构性数字——文件数、模块数、迁移条数、节点数。没有实测过的性能数字不写。
  • 边界如实标注内部项目写明源码不公开及原因;只到「了解」的技术不冒充「熟悉」。缺什么就说缺什么。
  • 失败也算素材部署失败与回滚、评测里挂掉的用例、口径对不上的边角,这些比十个成功案例更能说明问题。