软件工程第一次作业
软件工程入门实践:从大模型API到个人技术主页构建
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice/ |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice/homework/16716 |
| 这个作业的目标 | 完成 Hugging Face API 调用与前端交互实践,搭建 GitHub 个人主页,技能自评与学习规划明确后续目标 |
| 学号 | 102401121 |
软件工程第一次个人作业
一、环境准备
二、Hugging Face API 调用:Flux 真实感图像生成
2.1 账号与 Token 准备
我在 Hugging Face 官网注册账号并创建了用于本次作业的 Fine-grained Access Token。
为了避免泄露密钥,我没有把 Token 写入前端代码或提交到 Git 仓库,而是将其保存在本地
.env 文件中,由后端读取。

2.2 项目实现思路
本项目采用“Gradio 前端 → Python 后端 → Hugging Face Inference API → FLUX 图像生成模型”的调用方式:
-
用户在 Gradio 前端输入想要生成的图片描述(Prompt),并点击“生成图片”按钮;
-
Gradio 将用户输入的提示词传递给后端的
generate_image()函数; -
后端首先检查用户输入的提示词是否为空,如果为空则提示用户重新输入;
-
程序通过
python-dotenv读取本地.env文件中的HF_TOKEN,使用该 Token 创建 Hugging FaceInferenceClient; -
后端调用 Hugging Face Inference Providers,并指定
XLabs-AI/flux-RealismLora模型,将用户输入的 Prompt 发送给模型进行图像生成; -
模型生成图片后,程序将返回的图片保存为
generated_image.png,同时将图片对象返回给 Gradio; -
Gradio 接收到生成结果后,在网页中的“生成结果”区域显示图片,用户可以直接查看生成效果。
整个项目的核心调用流程如下:
用户输入 Prompt
↓
Gradio 前端
↓
generate_image()
↓
读取 .env 中的 HF_TOKEN
↓
InferenceClient
↓
Hugging Face Inference Providers
↓
XLabs-AI/flux-RealismLora
↓
生成图片
↓
保存 generated_image.png
↓
返回 PIL 图片对象
↓
Gradio 显示生成结果
核心代码如下
client = InferenceClient(
provider="fal-ai",
api_key=token,
timeout=180,
)
MODEL = "XLabs-AI/flux-RealismLora"
def generate_image(prompt):
if not prompt.strip():
raise gr.Error("请输入提示词")
try:
image = client.text_to_image(
prompt=prompt,
model=MODEL
)
image.save("generated_image.png")
return image
except Exception as e:
raise gr.Error(str(e))
2.3 生成前端页面

2.4 提示词设计思路与修改过程
第一版提示词为:
A dog.
这一版只描述了人物,即“一只狗”。它能够让模型生成与主题相关的图像,但描述简单,人物整体氛围具有较大的随机性,真实感和可控性有限。

第二版提示词为:
A highly realistic photograph of a golden retriever sitting peacefully in a sunny green meadow, looking directly at the camera with a friendly and curious expression. The dog has soft golden fur with detailed individual hairs, warm brown eyes, a black nose, and slightly floppy ears. Natural sunlight shines from the side, creating soft shadows and a warm atmosphere. Small wildflowers and green grass surround the dog, with a softly blurred forest in the background. The composition is centered at eye level, with a shallow depth of field, natural colors, realistic fur texture, subtle bokeh, cinematic lighting, and professional wildlife photography style, 35mm lens, high detail, photorealistic.

2.5 本次调用心得
通过本次图像生成实验,我发现提示词越具体,生成结果通常越符合预期。简单的提示词只能确定主体和场景,而加入人物动作、外观、光线、环境、镜头等细节后,可以提高对生成图片的控制能力。因此,在使用大模型生成图片时,需要根据想要的效果不断调整和完善提示词。
三、GitHub 个人主页
我创建了一个与 GitHub ID 同名的仓库,并在仓库根目录编写 README.md,作为个人主页的介绍页面。主页主要展示个人介绍,相关技能,学习方向。

四、当前技能树与技术偏好
4.1 已掌握或正在学习的能力
| 能力方向 | 当前情况 |
|---|---|
| C | 掌握基础语法,能够完成简单程序 |
| C++ | 掌握基础语法,并用于数据结构与算法练习 |
| Python | 掌握基础语法,能够进行简单的项目开发 |
| Pandas | 掌握基本的数据读取、清洗、筛选和分析操作 |
| Git / GitHub | 能够完成基础的版本管理操作 |
| 数据结构与算法 | 学习过常见的基础数据结构与算法 |
| Hugging Face API | 能够配置 Token、调用模型,并在前端展示生成结果 |
4.2 自我评估
目前,我已经学习了 C、C++、Python等编程语言,并能够完成一些基础的编程练习。同时,我也在学习MySQL,Linux。
在本次作业中,我进一步实践了 Hugging Face API 的调用,实现了通过输入提示词生成图片的功能。通过这次实践,我对前后端交互、API 调用有了更加直观的认识。
在接下来的学习生涯,我希望继续提高自己能力,并重点学习 AI Agent、大语言模型以及 AI 应用开发,通过更多实际项目积累开发经验。
4.3 技术偏好与感兴趣的方向
目前我比较感兴趣的方向包括:
-
Agent 开发:希望深入学习 AI Agent 的开发方法,了解大语言模型、工具调用、任务拆分和多 Agent 协作,并尝试开发能够自主完成任务的 AI 应用;
-
后端开发:希望继续学习 Python 后端开发,掌握 Flask、FastAPI 等框架,进一步了解 API 设计、数据库、用户认证和服务部署;
-
大语言模型应用:希望学习如何调用和使用不同的大模型 API,将 LLM 能力应用到实际的软件项目中;
-
AI 应用开发:希望将 Agent、后端服务和大模型结合起来,开发具有实际功能的 AI 应用,并通过项目实践提升自己的开发能力;
-
软件工程实践:希望学习 Git、版本控制、项目结构设计、接口规范和项目部署等内容,提高自己的软件工程实践能力。
五、总结
通过本次软件工程第一次个人作业,我对软件工程实践有了更加直观的认识,也对自己的技术能力和未来学习方向进行了梳理。
在本次作业中,我完成了 Hugging Face API 的调用,实现了通过输入提示词生成图片的功能,并通过不断修改提示词观察生成结果的变化,对大模型 API 和提示词设计有了初步了解。同时,我也完成了 GitHub 个人主页的创建,通过 README 对自己的学习经历、掌握的技术和未来规划进行了整理。
通过这次实践,我认识到自己目前的编程能力还主要处于基础学习阶段,在项目开发、后端开发以及人工智能应用方面还有很多需要学习的内容。因此,我希望在后续学习中进一步提高 Python 的使用能力,学习后端开发相关技术,并逐步深入了解大语言模型和 AI Agent。
未来,我希望能够将后端开发与 AI Agent 结合起来,通过实际项目学习 Agent 的开发、工具调用和任务执行等内容,不断积累项目经验,提高自己的软件开发能力。
浙公网安备 33010602011771号