软件工程第一次作业
软件工程课程作业:HuggingFace API 调用实践与个人规划
这个作业属于哪个课程: H202601软件工程与软件工程实践 这个作业要求在哪里: 2026秋软件工程个人作业(第一次) 这个作业的目标: 掌握 HuggingFace API 的调用方法,完成 Flux 模型图像生成交互;搭建 GitHub 个人主页;梳理技能树并制定未来三年规划。 学号: [102402130]
1. HuggingFace API 的调用
1.1 任务概述
本次作业旨在通过调用 HuggingFace 的 Inference API,使用 XLabs-AI/flux-RealismLora 模型生成一张写实风格的图片,并结合前端实现交互。
1.2 操作步骤与代码实现
第一步:获取 API Token
首先在 HuggingFace 官网注册账号,并在 Settings -> Access Tokens 中创建一个新的 Token(权限选择 WRITE)。

第二步:后端代码编写 (Python)
调用XLabs-AI/flux-RealismLora模型,核心代码如下。
# ==================== 翻译函数 ====================
def translate_chinese_to_english(text: str) -> str:
"""
将中文文本翻译成英文。
try:
from deep_translator import GoogleTranslator
translated = GoogleTranslator(source='zh-CN', target='en').translate(text)
return translated
except ImportError:
pass
except Exception:
pass
return text
# ==================== 图片生成函数 ====================
def generate_image(prompt: str, negative_prompt: str = "") -> bytes:
"""
调用 Hugging Face Inference API 生成图片。
Args:
prompt: 英文提示词
negative_prompt: 反向提示词(不希望出现在图中的内容)
Returns:
图片的原始字节数据
"""
headers = {"Authorization": f"Bearer {HF_TOKEN}"}
payload = {
"inputs": prompt,
"parameters": {
"negative_prompt": negative_prompt,
"guidance_scale": 7.5,
"num_inference_steps": 28,
}
}
response = requests.post(
INFERENCE_API_URL,
headers=headers,
json=payload,
timeout=120
)
if response.status_code != 200:
error_detail = response.text
raise Exception(f"Hugging Face API 错误 (状态码 {response.status_code}): {error_detail}")
return response.content
第三步:前端交互界面
使用简单的 HTML/JS实现输入框和图片,关键代码展示:
<script>
async function generate() {
const prompt = document.getElementById('prompt').value;
const res = await fetch('http://127.0.0.1:5000/generate', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({prompt: prompt})
});
const data = await res.json();
const img = document.getElementById('result');
img.src = data.image;
img.style.display = 'block';
}
</script>
1.3 提示词设计思路与修改过程
- 关键词描述:一只可爱的橘猫坐在窗台上,阳光洒在它的身上,窗外是美丽的夕阳风景,写实风格,高清细节,8k分辨率。加入了光影描述(阳光)和画质关键词(8k),生成的图片真实感明显提升。


1.4 体验与心得
在调用 API 的过程中,我深刻体会到了 Prompt Engineering(提示词工程)的重要性。模型虽然强大,但需要精准的指令才能输出高质量结果。同时,处理 Base64 图片编码和跨域请求(CORS)也是前后端交互中的常见难点,通过这次实践得到了解决。
2. GitHub 个人主页搭建
我选择了 方案一:创建个人资料自述文件。

2.2 个人成果与技能评估
- 已掌握技能:Python 基础语法、HTML/CSS 网页布局。
- 实践经历:完成了本次 HuggingFace API 调用项目,参加网络技术挑战赛。
- 感兴趣方向:大语言模型应用开发、全栈工程。
2.3 未来三年规划
- 大三:深入参与开源项目或实验室科研,参加各类网络比赛。
- 大四:根据届时情况选择深造或进入头部互联网企业实习,成为独当一面的工程师。
3. 博客园随笔:技能梳理与学习指南
3.1 技能树与技术偏好自我评估
| 维度 | 具体内容 | 掌握程度 |
|---|---|---|
| 编程语言 | Python, C++, JavaScript | ⭐⭐⭐ (Python熟练) |
| 开发工具 | VS Code, Linux命令行 | ⭐⭐ (VS Code常用,Linux还在学习) |
| AI 技术 | Prompt Engineering, PyTorch基础 | ⭐ (刚入门) |
| 软技能 | 英语阅读,文档撰写 | ⭐⭐⭐ |
欠缺能力:目前最缺乏的是系统架构设计能力和大型项目协作经验。往往只能写好单个模块,难以统筹全局。
3.2 代码量统计与目标
- 截至目前的代码量:约 5,000 - 8,000 行(包含课程作业和练习)。
- 本学期目标:希望达到 20,000 行有效代码。主要通过完成课程大作业和 LeetCode 刷题来实现。
3.3 课程期待
本课程我最期待学习的是软件需求分析。希望能从理论高度理解如何规范地做一个项目,而不仅仅是写代码。
3.4 AI 生成的软件工程学习指南与分析
我使用了 ChatGPT 生成了一份学习指南,内容如下:
AI 建议摘要:
- 阅读经典书籍《人月神话》和《代码大全》。
- 每周阅读一个优秀的 GitHub 开源项目源码。
- 坚持写技术博客,通过输出来倒逼输入。
- 参与一次完整的开源贡献(Issue -> PR)。
分析:
这份指南非常合理且具有实操性。特别是"阅读源码"和"写博客"这两点,与我目前的短板(缺乏架构感)非常契合。通过分析优秀项目的目录结构和接口设计,能最快提升工程思维。我会将"每周阅读源码"纳入我的周计划中。
4. 后台博文编辑页面的截图


浙公网安备 33010602011771号