软工第一次作业

这个作业属于哪个课程 福州大学软件工程班级圈子
这个作业要求在哪里 作业要求
这个作业的目标 初步体验大模型 API 的调用与应用,完成个人技术主页建设,并梳理个人技能树与未来规划
学号 102401333

一、Hugging Face API 调用(Flux 文生图)

1.1 操作步骤

  1. 在 Hugging Face 官网注册账号,并在 Settings → Access Tokens 创建 Fine-grained Token,勾选 "Make calls to Inference Providers" 权限。
  2. 安装依赖:pip install huggingface_hub gradio
  3. 使用 huggingface_hubInferenceClient 调用模型,返回 PIL 图像对象并保存。
  4. 结合 Gradio 搭建交互式前端,实现"输入提示词 → 点击生成 → 展示图像"。

79260e3b1465906fc3f1a94acc227a46

核心调用代码(节选):

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")

45d4d967c52acf1d7271427b19ca9e84

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 接近真实照片

设计思路总结为四要素

  1. 主体 + 环境:方形花岗岩图书馆 + 钟楼 + 湖岸垂柳(对应福大"山在校中、校在水中"的真实风貌)
  2. 光影:阴天自然光,替代 AI 图常见的"完美黄金时刻",更真实
  3. 镜头 + 参数:Fujifilm X-T5、f/5.6、ISO 200,具体器材让模型往"真实拍摄"靠
  4. 去 AI 味natural muted colors(低饱和)、slight vignetting(暗角)、subtle sensor noise(噪点)、candid(抓拍)

ea1ec1ec009dc9d7b3e8ef814742a34c

df26fdec9331eb1c5928d03619128af6
81a5994b6ce287eafd4851bdbd7f2c67

1.3 前端交互页面

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

4770de387bdaf78399937f5a775b47ba

1.4 体验与心得

  1. Token 安全:Token 相当于密码,不能写进前端或公开仓库,截图时也要打码。
  2. 网络问题:国内直连 huggingface.co 会被墙,报 SSL UNEXPECTED_EOF,需改用国内镜像 hf-mirror.com
  3. 模型选择的坑:作业指定的 XLabs-AI/flux-RealismLora 其实是一个 LoRA 适配器,不是完整模型,免费推理接口会报 Model not supported by provider fal-ai;改用基础 Flux 模型 FLUX.1-schnell 才能跑通。
  4. 写实上限:提示词能影响风格,但改变不了模型的写实天花板——schnell 是"极速版",写实度有限,要极致写实需用 RealismLora 配合基础模型。
  5. 最大收获:第一次完整走通"前端 → 后端 → 第三方 API → 返回结果"的链路,体会到把大模型能力接进自己程序的完整过程。

二、GitHub 个人主页

我创建了与 GitHub 用户名同名的仓库,编写了个人自述文件(Profile README),包含自我介绍、技能、自我评估与三年规划,并用打字动画、GitHub 数据卡片、技能图标做了美化。

2a7e58a9c3597cd359cf8270b7408411


三、技能树与技术偏好(自我评估)

✅ 已具备的能力

  • 能力 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:分支策略、合并冲突解决、协作工作流
  • 测试方法:黑盒/白盒、单元/集成/系统测试、测试用例设计
  • 项目管理:里程碑、进度跟踪、团队分工

三、实践建议

  1. 边学边做一个小项目:把理论落到一个真实项目里,走完"需求→设计→编码→测试"全流程,比只看书有效得多。
  2. 用 Git 管理所有作业:从第一次作业就开始用 Git,养成提交、写 commit message 的习惯。
  3. 多读开源项目:GitHub 上找 Star 高的项目,读它的目录结构、命名、测试写法。
  4. 善用 AI 工具,但必须理解逻辑:用 AI 辅助查错、写样板代码,但每行都要弄懂,否则只是"复制粘贴"。
  5. 坚持写博客记录:把踩坑和心得写下来,既巩固知识,也是求职时能展示的积累。

image

我对这份指南的分析

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

posted @ 2026-09-10 14:31  me2nto  阅读(17)  评论(0)    收藏  举报