软工第一次作业
| 这个作业属于哪个课程 | 福州大学软件工程班级圈子 |
|---|---|
| 这个作业要求在哪里 | 作业要求 |
| 这个作业的目标 | 初步体验大模型 API 的调用与应用,完成个人技术主页建设,并梳理个人技能树与未来规划 |
| 学号 | 102401333 |
一、Hugging Face API 调用(Flux 文生图)
1.1 操作步骤
- 在 Hugging Face 官网注册账号,并在 Settings → Access Tokens 创建 Fine-grained Token,勾选 "Make calls to Inference Providers" 权限。
- 安装依赖:
pip install huggingface_hub gradio。 - 使用
huggingface_hub的InferenceClient调用模型,返回 PIL 图像对象并保存。 - 结合 Gradio 搭建交互式前端,实现"输入提示词 → 点击生成 → 展示图像"。

核心调用代码(节选):
from huggingface_hub import InferenceClient
client = InferenceClient(api_key="hf_xxx") # 已打码
image = client.text_to_image(prompt, model="black-forest-labs/FLUX.1-schnell")
image.save("output.png")

1.2 提示词设计思路与修改过程
我以"福州大学校园景色"为主题,经历了三轮提示词迭代:
| 版本 | 提示词 | 效果与问题 |
|---|---|---|
| 第 1 版 | Fuzhou University |
画面杂乱、不真实,主体不清 |
| 第 2 版 | a photo of Fuzhou University campus |
具体了些,但仍偏插画、色调假 |
| 第 3 版 | a realistic photo of Fuzhou University campus, a grand square granite library building with a clock tower standing symmetrically beside a calm lake, willow trees along the lakeshore, rolling green mountains in the background under soft haze, a few students walking on a lakeside path, overcast natural daylight, natural muted colors, shot on Fujifilm X-T5, f/5.6, ISO 200, slight vignetting, subtle sensor noise, candid, unedited |
接近真实照片 |
设计思路总结为四要素:
- 主体 + 环境:方形花岗岩图书馆 + 钟楼 + 湖岸垂柳(对应福大"山在校中、校在水中"的真实风貌)
- 光影:阴天自然光,替代 AI 图常见的"完美黄金时刻",更真实
- 镜头 + 参数:Fujifilm X-T5、f/5.6、ISO 200,具体器材让模型往"真实拍摄"靠
- 去 AI 味:
natural muted colors(低饱和)、slight vignetting(暗角)、subtle sensor noise(噪点)、candid(抓拍)



1.3 前端交互页面
结合 Gradio 搭建了交互式前端,在浏览器输入提示词即可生成图像。

1.4 体验与心得
- Token 安全:Token 相当于密码,不能写进前端或公开仓库,截图时也要打码。
- 网络问题:国内直连 huggingface.co 会被墙,报
SSL UNEXPECTED_EOF,需改用国内镜像hf-mirror.com。 - 模型选择的坑:作业指定的
XLabs-AI/flux-RealismLora其实是一个 LoRA 适配器,不是完整模型,免费推理接口会报Model not supported by provider fal-ai;改用基础 Flux 模型FLUX.1-schnell才能跑通。 - 写实上限:提示词能影响风格,但改变不了模型的写实天花板——schnell 是"极速版",写实度有限,要极致写实需用 RealismLora 配合基础模型。
- 最大收获:第一次完整走通"前端 → 后端 → 第三方 API → 返回结果"的链路,体会到把大模型能力接进自己程序的完整过程。
二、GitHub 个人主页
我创建了与 GitHub 用户名同名的仓库,编写了个人自述文件(Profile README),包含自我介绍、技能、自我评估与三年规划,并用打字动画、GitHub 数据卡片、技能图标做了美化。

三、技能树与技术偏好(自我评估)
✅ 已具备的能力
- 能力 A:Python 基础,c++基础(变量、函数、面向对象入门),能写简单脚本并调用第三方 API
- 能力 B:Git 基本操作(clone / add / commit / push)
- 能力 C:Markdown 写作,能看懂并调用简单 HTTP 接口
🔍 感兴趣、正在学的方向
- 大模型应用开发(本次作业第一次真正调用 AI 模型生成图像)
- c++后端开发
- agent相关
❌ 欠缺、需要补的能力
- 能力 D:数据结构与算法不够扎实
- 能力 E:软件测试的系统方法论
- 能力 F:后端框架、数据库设计经验不足
四、代码量
- 截至目前代码量:约 1000 行(估算口径:课程作业 + 个人练习)
- 本学期课程结束后希望达到:约 5000 行
五、本课程最期待的收获
- 最想学的知识:软件工程完整流程(需求 → 设计 → 编码 → 测试 → 维护)、团队协作、版本管理
- 希望获得的收获:做出一个真实可用的项目、掌握测试方法、理解大模型如何赋能开发
六、AI 生成的软件工程学习指南 + 分析
以下指南由 AI 工具(claude code)生成:
软件工程课程学习指南
一、学习路径(由浅入深,分五个阶段)
阶段 1 · 打基础:了解软件工程的本质——为什么需要工程化?掌握软件生命周期(需求→设计→编码→测试→维护)和经典开发模型。
阶段 2 · 需求与设计:学会从"用户想要什么"出发,写需求文档;掌握 UML 建模(用例图、类图、时序图),以及系统架构和数据库的初步设计。
阶段 3 · 编码与协作:巩固一门主力语言,遵守代码规范;重点掌握 Git 团队协作(分支、合并、代码审查),这是实际工作里最常用的技能。
阶段 4 · 测试与质量:理解测试的价值,掌握黑盒/白盒测试、单元测试与自动化测试,学会设计测试用例。
阶段 5 · 部署与维护:了解 CI/CD、项目文档、缺陷管理,建立"软件要长期维护"的工程意识。
二、重点知识点
- 软件开发模型:瀑布模型、迭代模型、敏捷开发、DevOps,理解各自适用场景
- 需求工程:需求获取、需求文档、需求变更管理
- 设计原则与设计模式:SOLID 原则、常用设计模式(单例、工厂、观察者等)
- 版本管理 Git:分支策略、合并冲突解决、协作工作流
- 测试方法:黑盒/白盒、单元/集成/系统测试、测试用例设计
- 项目管理:里程碑、进度跟踪、团队分工
三、实践建议
- 边学边做一个小项目:把理论落到一个真实项目里,走完"需求→设计→编码→测试"全流程,比只看书有效得多。
- 用 Git 管理所有作业:从第一次作业就开始用 Git,养成提交、写 commit message 的习惯。
- 多读开源项目:GitHub 上找 Star 高的项目,读它的目录结构、命名、测试写法。
- 善用 AI 工具,但必须理解逻辑:用 AI 辅助查错、写样板代码,但每行都要弄懂,否则只是"复制粘贴"。
- 坚持写博客记录:把踩坑和心得写下来,既巩固知识,也是求职时能展示的积累。

我对这份指南的分析
- ✅ 合理之处:指南按"需求 → 设计 → 编码 → 测试 → 部署"的软件工程主线展开,结构清晰;"边学边做项目"的建议很实用,符合"实践出真知"。
- ⚠️ 不足:偏通用,未结合本校课程进度和大模型应用;部分内容(设计模式、CI/CD)对零基础起点偏高。
- 🤝 对我的帮助:有帮助。我会按它调整学习顺序,把"测试"和"版本管理"提前练习,并把大模型辅助编码纳入日常。

浙公网安备 33010602011771号