5.10开发日志

vibing code初步开发项目雏形
一、项目简介

这是一套面向铁路客运站的设备运维管理系统,主要完成设备巡检、保养、检测等运维工作的配置管理。系统为纯B/S架构,后端 API 配合 Web 管理后台,运维人员打开浏览器就能使用。

项目是我大二下学期完成的课程作业,用到的技术栈是 Python + FastAPI + SQLite,前端是一个单页面 HTML 文件,整体比较轻量。
image
image
image

image

二、需求背景

铁路客运站里面设备种类繁多——电梯、空调、消防设施、监控系统、配电设备等等。每类设备都需要定期巡检、保养、检测,出了问题还要能快速查到故障原因和解决方案。传统的纸质表格管理效率太低,所以才想到做一个信息化系统来管理这些配置数据。

系统管理的核心对象包括:

  • 基础信息:车站、网格、位置(用来划分管理区域)
  • 设备信息:设备分类、用途、厂商
  • 运维线路:巡检线路/项目、保养线路/项目、检测线路/项目
  • 故障知识库:故障字典(故障现象 → 原因 → 解决方案)
  • 备件管理:备件分类、型号、库位
  • 流程配置:流程定义、流程路由
  • 系统字典:键值字典等通用配置
    三、技术选型
技术 说明
Python + FastAPI 后端框架,上手快、自带 Swagger 文档
SQLite + SQLAlchemy 数据库,轻量免安装,适合小型项目
原生 HTML/CSS/JS 前端,没学框架之前最直接的方案
faster-whisper 本地语音识别,离线可用

选这套技术栈的原因很简单:大二阶段对 React、Vue 还不太熟,FastAPI 的文档齐全、社区活跃,对新手友好。SQLite 不需要单独部署数据库服务,一个文件就搞定,非常适合课程项目。

四、系统功能概览

整个系统分为19个配置管理模块,每个模块都支持增删改查。后台首页长这样:

  • 左侧是导航栏,模块按类别分组
  • 中间是数据表格,支持搜索和分页
  • 点击"新增"或"编辑"会弹出表单弹窗

核心功能包括:

巡检管理 — 定义每条巡检线路和每个检查项目(检查什么、用什么方法、标准值是多少)

保养管理 — 定义保养线路和保养项目(保养内容、周期、预计耗时)

检测管理 — 定义检测线路和检测项目(检测内容、方法、验收标准)

故障字典 — 把常见故障整理成知识库,每条故障包含:故障编码、症状描述、原因分析、解决方案。举个例子:电梯运行异响 → 可能是导轨润滑不足 → 检查导轨并补充润滑油

所有模块的数据都可以互相引用。比如巡检项目会关联设备分类,这样查巡检标准的时候能自然关联到具体设备类型。

五、一个亮点:AI 智能问答

做完了基本的增删改查,总觉得少了点什么。数据是有了,但是每次查信息还是要一个一个模块去翻。能不能直接用自然语言问问题?比如"北京南站有哪些巡检线路?"或者"电梯异响怎么解决?"

于是我在系统里加了一个 AI 智能问答功能。实现思路其实不复杂:

意图识别 + 关键词匹配。用户的输入进来后,先判断是问巡检还是问保养还是问故障,然后提取车站名、故障名等关键词,最后去对应的数据库表里查,把结果组织成通顺的回复。

比如用户输入"北京南站有哪些巡检线路",系统会:

  1. 识别意图:巡检查询
  2. 提取关键词:北京南站
  3. 查询数据库:找到北京南站下的所有巡检线路
  4. 组织回复:每条线路的名称、周期、包含的检查项目

另外还集成了语音输入功能。用 faster-whisper(Whisper 的 CPU 优化版)在本地做语音识别,不需要联网,浏览器录制音频传到后端,识别成文字后自动填入输入框。虽然模型加载有点慢,但识别准确度在中文上还不错。

六、开发过程中的感受

说实话,这个项目对我一个大二学生来说确实有难度。最开始连 FastAPI 的路由怎么写都不太清楚,外键关联、异步查询这些概念也是边写边查文档慢慢理解的。

遇到最大的问题是 19 个模块的重复代码。每个模块的 model、schema、CRUD、路由结构高度相似,如果一个个手写,光复制粘贴就要花很多时间,而且容易出错。后来写了一个 generate.py 脚本,把模块定义存在一个列表里,遍历生成所有文件——这就快了很多,也让我体会到"用代码生成代码"这个思路的价值。
以及语音输入功能仍未实现,多种错误并发。
还有一些意外收获:比如 SQLAlchemy 的异步 session 管理、前端如何和外键下拉框联动、跨域 CORS 配置等等。这些问题调试的时候很头疼,但解决之后确实学到了东西。

七、总结

这个系统还有很多可以改进的地方:

  • 前端目前是一个大 HTML 文件,后面可以拆成组件或用 Vue 重写
  • AI 智能问答目前是规则匹配,可以接入大模型(LLM)做真正的语义理解
  • 数据库可以迁移到 PostgreSQL 或 MySQL 方便多人协作
  • 可以加上用户权限管理

整个过程做下来,最大的体会是:做项目比只看书学得快。遇到问题、查文档、解决、继续做,这个循环里学到的东西比单纯刷教程扎实得多。虽然最终做出来的系统谈不上多高级,但一行一行敲出来的代码,每个功能都知道是怎么实现的,这种感觉还是很踏实的。

posted @ 2026-05-12 14:42  douzishuo  阅读(28)  评论(0)    收藏  举报