软件工程第一次个人作业——Hugging Face API 调用与个人主页搭建
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice/homework/16716 |
| 这个作业的目标 | 熟悉 Hugging Face API 调用与前端交互,完成 GitHub 个人主页建设,梳理个人技能树并借助 AI 工具规划学习 |
| 学号 | 102402125 |
一、准备工作
本次作业需要在三个平台完成注册与配置:
- GitHub:注册账号并完善头像、昵称、个人简介等信息。
- 博客园:注册账号,申请开通博客(审核约15分钟),将编辑器切换为 Markdown 编辑器,设置好昵称和头像。
- Hugging Face:注册账号,在 Settings 中创建 Read 权限的 Access Token,并同意 Flux 模型的使用许可协议。
同时,已加入班级博客(H202601软件工程与软件工程实践),完成实名认证,并关注了任课老师黄兆武和助教李怡涵、焦圣蒙的博客。
二、Hugging Face API 调用 Flux 生成图像
2.1 模型说明
作业要求使用 XLabs-AI/flux-RealismLora 模型。该模型是一个 LoRA 权重,不能独立调用生成图像,需要搭配基础模型 black-forest-labs/FLUX.1-dev 一起使用。本次实践采用基础模型完成生成,并已提前同意该模型的许可协议。
2.2 操作步骤
整体流程可以概括为以下几步:
- 获取 Token:在 Hugging Face 的 Settings → Access Tokens 中创建一个 Read 权限的 Token,保存备用。
- 同意模型协议:打开 FLUX.1-dev 模型页面,点击 Agree and access repository,否则调用 API 时会返回 401 错误。
- 搭建后端:使用 Flask 编写一个
/generate接口,接收前端传来的提示词,通过huggingface_hub库调用推理 API 生成图像,并将图像转为 base64 编码返回给前端。 - 编写前端:创建一个简单的 HTML 页面,包含提示词输入框、生成按钮和图片展示区域。点击按钮后,前端通过 fetch 请求后端接口,将返回的图像显示在页面上。
- 运行测试:启动 Flask 服务,浏览器访问本地页面,输入提示词即可生成图像。
2.3 运行结果
API 调用成功,前端页面正常显示生成的图像。相关截图如下:

2.4 提示词设计思路与修改过程
本次实践的目标是生成一张“最贴近真实世界的图像”,同时融入温馨治愈的 emoji 笑脸拟人元素。
第一版提示词: 只写了 a smiling emoji character,生成结果过于卡通,色彩饱和度过高,不符合“真实世界”的要求。
第二版提示词: 改为 a 3d render of a cute smiling face character, soft lighting,画面质感有所提升,但细节仍然不足,光影平淡。
第三版(最终采用): A photorealistic image of an adorable emoji-inspired character with a warm happy smiling face, big sparkling eyes, rosy cheeks, soft yellow body, sitting in a cozy sunlit room, gentle sunlight through window, soft shadows, ultra realistic, 8k, high detail, cinematic lighting, heartwarming atmosphere
通过添加 photorealistic、ultra realistic、8k、high detail 等关键词强化真实感,同时用 gentle sunlight、soft shadows、heartwarming atmosphere 营造温馨治愈的氛围,最终生成效果满意。
设计心得:
- Flux 模型对英文提示词响应最好,中文提示词效果不稳定。
photorealistic、ultra realistic、cinematic lighting等关键词能显著提升真实感。- 用
adorable、warm、heartwarming等形容词可以保留温馨可爱的氛围。 - 避免让模型生成复杂人脸或文字内容,容易产生畸变。
2.5 API 调用体验与心得
第一次调用 Hugging Face 推理 API,整体门槛比想象中低,不需要本地部署庞大的模型,几行代码就能生成高质量图像。过程中遇到的主要问题是:Flux 属于受限模型,需要先同意协议才能调用;免费账号的推理额度有限,偶尔需要排队等待;提示词质量直接影响生成效果,需要反复调试。
通过这次实践,我理解了“前端交互 + 后端代理”这一常见的 AI 应用基本架构。如果把图像生成换成文本生成,就是类似 ChatGPT 的应用雏形。这让我对 AI 应用开发产生了更大的兴趣。
三、GitHub 个人主页搭建
我选择了方案一:创建个人资料自述文件。新建一个与 GitHub ID 同名的仓库,在根目录编写 README.md,GitHub 会自动将该内容展示在个人主页上。
https://github.com/H3HN/h3hn.github.io
截图如下:

四、技能树与自我评估
4.1 已具备的专业知识与能力
- Java 方向:面向对象编程、集合框架、多线程、IO 流、Swing GUI
- Python 方向:基础语法、Flask Web 服务、urllib/requests 爬虫、Playwright 入门
- 数据库:MySQL 基本操作,增删改查
- 工程工具:Linux 常用命令、Git 版本控制
- AI 应用入门:了解 RAG 和 Agent 概念,能使用 LangChain 搭建简单 Agent,使用 LlamaIndex 做文档问答
4.2 感兴趣的技术方向
- 大模型应用开发(RAG、Agent、多工具协作)
- 后端开发(Java/Python 服务端)
- 数据工程(数据采集、清洗、可视化)
4.3 还欠缺的能力
- 前端开发:JavaScript 基础薄弱,Vue/React 等框架基本不会
- 系统设计:缺乏大型项目的架构设计与模块划分经验
- 测试能力:单元测试和集成测试缺少实践
- 文档撰写:需求文档、设计文档的编写经验不足
五、代码量与目标
- 当前累计代码量:约 4000 行,主要为 Java(课程设计、练习)和 Python(实习项目、爬虫脚本)。
- 课程结束目标:累计代码量达到 15000 行以上,重点增加 Python 后端、前端交互和测试代码的比例。
六、本课程中最期待学习的知识
- 规范化软件开发流程:从需求分析、设计、编码到测试、维护的完整过程。
- 设计模式与代码质量:学习如何写出可维护、可扩展的代码。
- 结对编程与团队协作:掌握 Git 工作流、代码评审等工程实践。
- 测试驱动开发:理解测试在软件质量保障中的重要性。
- 大模型与软件工程的结合:探索 AI 辅助开发的实际应用。
希望获得的收获:不只是会写代码,而是能完整地完成一个小项目,并通过博客记录自己的成长。
七、AI 工具生成的软件工程学习指南与分析
7.1 DeepSeek 生成的指南
我选择 DeepSeek 生成软件工程课程学习指南,内容摘要如下:
核心内容:软件过程模型(瀑布、敏捷、迭代)、需求工程、系统设计、编码规范、测试(单元/集成/系统)、项目管理与团队协作。
学习方法:理论结合实践;重视需求分析;掌握 SOLID 原则和常见设计模式;测试从第一天开始;使用版本控制小步提交。
学习顺序:第1-3周过程模型与需求工程 → 第4-6周系统设计与 UML 建模 → 第7-9周编码实现与代码评审 → 第10-12周测试与部署 → 第13-15周综合项目实战。
常见误区:只重编码忽视文档;测试留到最后;闭门造车;忽视代码可维护性。
推荐资源:《软件工程——实践者的研究方法》《代码整洁之道》《重构:改善既有代码的设计》。
7.2 对指南的分析
合理之处:
- 指南覆盖了软件工程课程的主要知识模块,结构完整。
- 把“需求分析”和“测试”提到了重要位置,符合当前软件开发强调质量和用户导向的趋势。
- “小步提交”和“边写代码边写测试”的建议非常实用。
需要调整的地方:
- 指南偏理论,没有涉及结对编程、博客作业等本课程特色实践环节。
- 缺少对大模型辅助开发等新工具的建议。
- 学习顺序只是一个参考,实际课程安排需要以老师为准。
结论:
这份指南帮我建立了软件工程课程的整体框架,让我意识到需求分析和测试的重要性。但它不能替代老师的教学安排,只能作为预习和复习的补充材料。我会结合课堂要求,把重点放在实践能力和文档撰写上。
本次作业到此完成,感谢老师和助教的阅读。
浙公网安备 33010602011771号