电工类本科生的第一次计算机后端开发实践

2025-12-23 14:13

电力工程AI问答Web项目开发总结:一个大四电工学生的摸索记录

一、初衷:将课余所学付诸实践的想象

大一刚入学后,希望将课余时间利用在比打游戏更有建设意义的兴趣爱好上面,在偶然的机遇下接触了Python语言的学习契机,完成了一些线上的浅显的课程教学,学习了Python相关的基本语法和一些计算机科学的常识,为后来的副业实习奠定了基础和铺垫。除去中间忙碌的大二大三,在大四的招聘考试结束后,朝花夕拾,想到用空闲时间将之前学过的业余知识捡起来,参与实际的项目实践,找点副业兼职来做。



二、方法论:“拆解问题+边学边做”,不贪多不硬刚

我没什么复杂的解决问题的万能公式,核心就是“把大问题拆成小模块,解决一个算一个”。一开始没想着直接做Web应用,先从最基础的API调用入手,能让模型回答问题就行;接着再琢磨怎么存记录、算Token消耗;最后才考虑用Gradio做界面,让用户能用得舒服。全程遵循“最小可行产品”的思路,先跑通核心功能,再慢慢优化细节,遇到解决不了的问题就先放一放,换个角度找办法,不在一开始就以计算机工程专业水准为难自己,不跟自己死磕。



三、学习过程:踩坑无数,但越琢磨越上头

开发这项目的过程,简直是“边踩坑边学习”的真实写照。一开始调用DeepSeek API,要么报443错误,要么超时,查了半天才知道是网络和SSL配置的问题,后来加了重试机制、换了国内镜像源才搞定;用Gradio做界面时更懵,版本更新后参数位置变了、事件绑定老报错,界面还空白过好几次,对着官方文档一点点改,反复测试才弄明白怎么回事;还有模块之间的调用逻辑,一开始写得乱糟糟,后来学着用模块化设计,把API调用、历史管理、Web展示分开,代码才清爽起来。整个过程就像解电路题,一步错步步错, 但每解决一个问题,都觉得自己又开阔了见识,又有一份收获。



四、项目架构:三个核心文件,各司其职又互帮互助

整个项目就三个关键文件,分工明确,配合无间:

1. `ai_assistant_core.py`:核心打工人,负责调用DeepSeek API获取专业回答、计算Token消耗,还能把问答记录保存到Markdown文件,是整个项目的“大脑”;

2. `history_manager.py`:记忆小管家,用队列存最近5条提问记录,不用持久化存储,程序关了就清空,简单又实用;

3. `gradio_web_app.py`:门面担当,用Gradio搭了个可视化Web界面,把前面两个模块的功能整合起来,让用户能通过浏览器操作,不用敲命令行。

它们之间的联系也很简单:Web界面接收用户输入,传给核心模块调用API,核心模块再把结果返回给界面展示,同时通知历史管理模块更新记录,一套流程下来顺顺当当。



五、学习收获:不止是写了个项目,更懂了“学以致用”

这次开发最大的收获,不是搞定了多少技术难题,而是真正体会到了“把课本知识和实际应用结合起来”的乐趣。以前学Python、学电力专业知识,总觉得是两码事,现在发现,用编程工具解决专业相关的问题,效率能提升一大截。另外,也学会了怎么排查问题、怎么查官方文档找答案,遇到网络问题、版本冲突这些“非专业”难题时,不再慌慌张张,而是能沉下心一步步解决。还有模块化编程的思路,以前写代码想到哪写到哪,现在知道怎么把功能拆分、让代码更易维护,这对以后做毕业设计、工作都很有帮助。



六、个人未来愿景:继续推进,做更实用的专业工具

接下来的计划,先是把这个项目完善一下,比如加个多模型切换功能、支持批量导入问题,再优化一下界面交互,让它更符合电力行业的使用场景。长远来看,希望能围绕电力工程领域,做更多实用的小工具,比如故障诊断辅助系统、专业知识题库生成器之类的,既能帮自己和同学解决学习、工作中的问题,也能为行业贡献一点小小的力量。毕竟,我们学工科的,最终还是希望能用技术解决实际问题,这大概就是最大的成就感吧
浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报