| 这个作业属于课程 | https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice |
|---|---|
| 这个作业要求在 | https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice/homework/16716 |
| 这个作业的目标 | 梳理个人技能树与技术偏好,明确代码量目标,写出课程期待,并借助 AI 工具生成学习指南进行分析 |
| 学号 | <102401204> |
一、 准备工作
- GitHub账号准备:在GitHub官网上注册了个人账号(ID:
fenhaozi1),并完善了个人资料等各项信息。 - 博客园账号准备:注册了博客园账号,建立了个人技术博客,完善了昵称、头像等个人信息,并设置了博客园的样式。
- 关注老师与助教:已严肃关注黄兆武老师的博客,以及李怡涵助教、焦圣蒙助教的博客。

二、 Hugging Face API 的调用与实战
1. API 准备与获取
首先,在 Hugging Face 官网注册个人账号。进入个人设置中的 Access Tokens 页面,点击 Create new token 生成具有 FINE-GRAINED 权限的 Token,命名为 fenhaozi。
由于生成的 Token 仅显示一次,我将其妥善保存并在前端输入。代码中前端隐藏了Token的明文显示(使用 type="password"),后端处理完即弃,不留存于服务器,保障了账号安全性。

2. 调用过程与代码实现
本次实战使用 Flask 搭建后端,HTML+JS 编写前端。模型使用了 black-forest-labs/FLUX.1-dev。由于网络环境限制,代码中通过 os.environ 设置了本地代理(端口7897)。后端接收前端传来的 Token 和 Prompt,调用 InferenceClient 生成图像并转为 Base64 返回前端展示。
后端代码 (app.py):
import os
os.environ['HTTP_PROXY'] = 'http://127.0.0.1:7897'
os.environ['HTTPS_PROXY'] = 'http://127.0.0.1:7897'
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
import io
import base64
from flask import Flask, request, jsonify, render_template
from flask_cors import CORS
from huggingface_hub import InferenceClient
app = Flask(__name__)
CORS(app)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/generate', methods=['POST'])
def generate_image():
try:
data = request.get_json()
token = data.get('token', '').strip()
prompt = data.get('prompt', '').strip()
if not token:
return jsonify({'error': '请输入你的 Hugging Face Token'}), 400
if not prompt:
return jsonify({'error': '请输入提示词'}), 400
client = InferenceClient(provider="fal-ai", api_key=token)
image = client.text_to_image(
prompt=prompt,
model="black-forest-labs/FLUX.1-dev"
)
buffered = io.BytesIO()
image.save(buffered, format="PNG")
img_base64 = base64.b64encode(buffered.getvalue()).decode('utf-8')
return jsonify({'success': True, 'image': img_base64})
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
app.run(debug=True, host='127.0.0.1', port=5000)
3. 提示词设计思路与修改过程
设计思路:为了生成最贴近真实的图像,我采用了“主体描述 + 环境背景 + 摄影风格参数 + 画质细节”的提示词结构。
修改过程:
- 初始提示词仅仅输入了
A woman in the city,生成结果具有明显的AI塑料感,面部不够自然。 - 随后修改为:
A realistic photo of a woman standing in a city street, natural lighting, high detail. - 进一步优化加入摄影术语:
A photorealistic photograph of a young woman walking on a modern city street, natural skin texture, natural daylight, 35mm photography, beautiful bokeh background.
通过强化natural skin texture(自然皮肤纹理)、natural daylight(自然日光)以及35mm photography(35mm摄影镜头)等词眼,最终生成了极其逼真、带有景深效果的人像照片,光影表现自然,衣服褶皱和面部细节丰富。生成效果截图如下:




个人更喜欢图片二
4. API 调用体验与心得
- 网络配置的心得:由于Hugging Face在国内访问受限,配置代理是首要解决的环境问题。在Python代码中设置
HTTP_PROXY和HTTPS_PROXY是最直接有效的方法。 - 前后端联调的心得:生成一张高清图像大约需要10-30秒,前端必须设置加载状态(
disabled)和提示语,避免用户重复点击。此外,将图片转换成Base64编码返回给前端展示,绕过了静态文件存储的繁琐步骤,非常适合轻量级演示。 - 安全心得:Token 属于敏感信息,绝不能硬编码在后端或前端代码中。本次实现由用户前端输入,通过HTTPS/本地网络传给后端临时使用,不落盘留存,大大提升了安全性。
三、 GitHub 个人主页搭建
本次作业我选择方案一:创建个人资料自述文件。我新建了一个与 GitHub ID (fenhaozi1) 同名的仓库,并在根目录下编写了 README.md 文档。

四、 个人技术博客梳理与AI分析
1. 技能树梳理与自我评估
- 能力A(已具备):掌握了C语言底层逻辑,能够熟练使用指针与进行手动内存管理,具备基础的数据结构应用能力。具备数电模电基础,对计算机底层硬件有初步认知。
- 能力B(感兴趣):对前端开发有浓厚的兴趣,希望通过HTML/CSS/JS构建直观的用户交互界面。同时想涉猎操作系统、计算机网络等底层原理,以及Linux开发。
- 能力C(尚欠缺):工程化实战经验不足,代码量积累不够,缺乏完整的软件项目开发周期经历;算法与数据结构进阶能力有所欠缺,大型项目的架构设计能力有待提升。这也是本课程最希望弥补的短板。
2. 代码量记录与目标
- 目前的代码量:经过大一大二的积累,包括C语言作业、数据结构实验、课程设计等,目前的累计代码量大约在 10,00 - 15,00 行左右。
- 本学期目标:希望通过软件工程这门课的项目驱动开发,以及后端API接口联调、前端页面交互等实战,在学期末将代码量提升至 2,000 行以上,并学会写规范、可维护的工程代码。
3. 课程期待
最期待学习软件工程的完整生命周期(需求分析、架构设计、编码、测试、维护)以及团队协作工具(Git分支管理、CI/CD)。希望在本课程结束后,不仅能写出代码,还能写出“好代码”,收获一名准工程师应当具备的系统性思维。
4. 借助AI工具生成的软件工程课程学习指南及分析
我使用 DeepSeek 生成了一份学习指南,内容如下:
1. 软件工程概述与过程模型(敏捷、瀑布)。
2. 需求工程:获取、分析、规格说明(SRS文档撰写)。
3. 软件设计:架构设计、模块化、设计模式(MVC等)。
4. 编码规范与版本控制:Git 协作流程、代码审查。
5. 软件测试:黑盒/白盒测试、单元测试、集成测试。
6. 项目管理:进度控制、风险管理和团队沟通。
合理性分析与帮助:
这份指南非常合理且具有宏观指导意义,它几乎涵盖了软件工程领域的核心知识域,并且强调了流程、规范和团队协作的重要性。
对我个人的帮助:它帮我理清了本课程的学习脉络,指明了从“个人编写代码”转向“团队开发产品”的思维转变。不过,由于我目前偏向于前端开发,这份通用指南缺少具体的技术栈指导(如前端框架、接口设计等)。因此,我会在跟随大纲学习的同时,结合自己的前端方向,在实际项目中去应用这些理论,比如尝试使用Git Flow进行分支管理,在开发前端页面时引入单元测试等,以达到知行合一。
这里是后台博文截图:


浙公网安备 33010602011771号