WY的软件工程第一次作业

这个作业属于哪个课程 <H202601软件工程与软件工程实践 >
这个作业要求在哪里 <2026秋软件工程个人作业(第一次)>
这个作业的目标 注册账号、完成 HF 模型前端图像生成、搭建 GitHub 主页、梳理技能树并分析 AI 课程指南,熟悉 Markdown 与博客作业提交流程
学号 102401206

一、准备工作

1.1 账号注册与班级博客加入

1.注册博客园账号WinterYew,申请开通博客,设置头像、昵称
c6451fac91a162bef1094ca8285b906e

关注任课老师博客黄兆武,关注助教博客 李怡涵焦圣蒙

8136878b78ab9184b4ce88e75c04c966

  1. 加入班级博客:打开班级博客链接,完成实名制申请加入,确认成功加入班级。

335506c6701176dc8b5a4072ce99e3a9

  1. GitHub账号:注册GitHub账号Winter Yew,完善个人简介,后续用于搭建个人主页、存放代码。

f490551f-2e1e-41de-8d13-c55ae7a860c5

二、HuggingFace Flux模型API调用 + 前端交互实现

2.1 注册hugging face账号

6fb505dc970f59e9822f83b5c41afa99

2.2环境准备

项目 内容
操作系统 Windows 11
编程语言 Python 3.11.7
主要依赖库 huggingface_hub、gradio
使用模型 XLabs-AI/flux-RealismLora

☹️一开始我下载了python 3.14.7版本,结果发现并不适配HF,只好重新下载3.11.7版本

2.3使用AI工具调试API

我求助了豆包来搭建app.py,得到如下代码

点击查看代码
import os
import base64
from io import BytesIO
from flask import Flask, request, jsonify, render_template
from huggingface_hub import InferenceClient
from PIL import Image
import truststore
import datetime

truststore.inject_into_ssl()
app = Flask(__name__)

# =========这里替换成你自己HuggingFace的访问Token=========
HF_TOKEN = "填入你的hf token"
MODEL_ID = "black-forest-labs/FLUX.1-schnell"

client = InferenceClient(model=MODEL_ID, token=HF_TOKEN)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/generate', methods=['POST'])
def generate():
    prompt = request.json.get("prompt")
    # API调用记录(作业截图用)
    call_time = datetime.datetime.now()
    print("===== HuggingFace API调用记录 =====")
    print(f"调用时间: {call_time}")
    print(f"使用模型: {MODEL_ID}")
    print(f"输入提示词: {prompt}")
    try:
        image = client.text_to_image(prompt)
        buf = BytesIO()
        image.save(buf, format="PNG")
        img_base64 = base64.b64encode(buf.getvalue()).decode("utf-8")
        print("✅ API调用成功,图像返回")
        return jsonify({"img":img_base64})
    except Exception as e:
        print(f"❌ API调用失败,错误:{str(e)}")
        return jsonify({"error":str(e)}),500

if __name__ == '__main__':
    app.run(debug=True)
点击查看代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Flux图像生成</title>
</head>
<body>
    <h2>HuggingFace API 文生图</h2>
    <textarea id="prompt" rows="4" cols="70" placeholder="输入提示词,例如横版纪实照片,新疆棉田采摘妇女..."></textarea>
    <br><br>
    <button onclick="generateImg()">生成图片</button>
    <div id="result"></div>

    <script>
        async function generateImg(){
            const prompt = document.getElementById("prompt").value;
            const res = await fetch("/generate",{
                method:"POST",
                headers:{"Content-Type":"application/json"},
                body:JSON.stringify({prompt:prompt})
            })
            const data = await res.json();
            if(data.img){
                document.getElementById("result").innerHTML = `< img src="data:image/png;base64,${data.img}" width="800">`
            }else{
                document.getElementById("result").innerText = "错误信息:"+data.error
            }
        }
    </script>
</body>
</html>

2.4结果展示

❤️由于我来自新疆,想向大家宣传我们新疆特产“二红一白”,即西红柿、辣椒和棉花。我选择了采棉妇女作为主题生成图片。
(1)初版提示词生成效果

6082274275a111d62628646301ae8d71

初版提示词为:

photorealistic documentary photograph, horizontal composition, a Han Chinese woman wearing a simple white cotton headscarf picking cotton in Xinjiang cotton field, dense white cotton plants in foreground and left side, woman standing on right side, slightly bent, hands reaching to pick cotton, bright golden hour sunlight, soft rim light on headscarf and shoulders, clear blue sky, well-lit face and natural skin texture, strong but natural contrast between white cotton, white headscarf and blue sky, detailed cotton fibers, local farming clothes, 35mm lens, shallow depth of field, high detail, natural colors, rural documentary style

这张图满足了我的大部分想象,很有艺术气息,却不怎么还原采棉工人的状态

(2)第二次生成效果
😣我在调试API中使用光了三次机会,却因为网络问题并没有图片生成,我只好使用了国产网站:通义万象继续进行生成

dfbb604d-ca70-4299-a088-531803151d4b

第二次提示词为:

Horizontal documentary photography, realistic photo, a middle-aged peasant woman wearing a woven bamboo conical hat, white scarf wrapped around her head, face and neck for sun protection, earthy yellow long-sleeve top, orange work gloves, bending over to pick white cotton in endless cotton field. Another farming woman working in the distant background. Clear bright blue sky, strong bright natural daylight, warm earth tone color palette, low-angle composition, harvest atmosphere, realistic skin texture, rich details, shot on DSLR, 8K, film grain

这张更真实的还原了采棉妇女的形象,但却欠缺美感,我试图找到平衡点

(3)第三次生成效果

60a4c7c2687f56daead4744f99abb537

第三次提示词为:

Wide horizontal cinematic shot, deep depth of field, cotton field under bright blue sky, three female farmers. One woman stands at the right third of frame, facing camera, holding handfuls of fluffy white cotton with simple honest smile. The second woman is at left third behind her, picking cotton and looking toward camera. The third woman is in the foreground center, closest to camera, squatting to harvest cotton, face visible, not turning back to camera. All three women wear camouflage uniform, bamboo conical straw hat and white scarf wrapping head, face and neck for sun protection. Natural bright daylight, documentary movie texture, realistic skin details, rich field texture, 8K, DSLR photography, warm natural tone, vast cotton field stretching to horizon, soft cloud in sky

2.5一点小彩蛋

感觉AI见棉花不多,生成出来都不怎么好看,我又试了试辣椒,结果生成的图片比棉花好看很多,仿佛开智了

6b0f6937e2df84e789ac1aa1422913fe

三、个人随笔

3.1个人技能树与自我评估

💪已掌握能力

  • 基础编程能力:熟练掌握 C/C++ 基础语法,基本能够使用Python语法,具备基础调试与问题排查能力。

  • AI 应用实操能力:会使用 HuggingFace、Gradio 部署简单AI模型,能写提示词、搭建简易网页交互界面,熟悉AI生图基本流程。

  • 文档写作能力:能够使用 Markdown 撰写技术随笔、整理实验过程与作业资料,具备基本复盘与规范写作能力。

  • 软件工程基础认知:了解软件开发不是单纯写代码,包含需求、设计、编码、测试、维护完整流程。

❤️感兴趣的技术方向

  • 生成式 AI 应用开发、AI 模型部署与交互开发

  • 简易 Web 前端交互、可视化项目开发

  • 标准化、规范化的软件工程项目开发与团队协作

🌱目前欠缺的能力

  • 工程化能力弱:代码仅追求功能实现,缺少规范命名、分层设计、注释习惯,无项目思维。

  • 后端基础薄弱:缺乏数据库、接口开发、服务部署相关经验。

  • 团队协作不熟练:仅会简单 GitHub 操作,不熟悉分支管理、冲突解决、团队协同开发。

  • 测试与运维能力缺失:不懂软件测试流程、项目优化与版本迭代。

3.2个人代码量现状与学期目标

截至目前,本人课程练习、脚本开发、AI 实验累计有效代码量约2000,多为零散功能性代码,缺乏规范项目代码积累。

本学期课程结束后,我的目标代码量为5000,重点积累规范化代码、小型项目代码,养成工程化编码习惯。

3.3本课程期待学习的内容与收获

相比单纯写代码,我更希望通过软件工程课程学会标准化、流程化、团队化的开发思维。

最期待学习的内容:

  • 软件完整生命周期:需求分析、设计、编码、测试、维护流程

  • 团队协作开发:Git 版本管理、分支使用、多人协作开发模式

  • 软件工程核心思想:高内聚低耦合、模块化、代码规范与重构

  • 基础软件测试方法与项目优化思路

希望学完课程后,摆脱“只会写零散代码”的状态,具备小型软件项目的设计、开发与协作能力。

3.4AI生成软件工程学习指南及分析

本次使用 DeepSeek 生成软件工程学习指南,内容如下:

📙 AI 生成学习指南

软件工程重点培养系统化开发思维与工程规范,区别于基础编程学习,学习路径分为四部分:

第一,夯实基础理论。掌握软件危机、软件工程定义、软件生命周期、常见开发模型(瀑布、迭代、敏捷),建立完整开发流程认知。

第二,掌握核心设计思想。学习需求分析、结构化与面向对象设计、模块化原则,理解高内聚低耦合、可维护性、可复用性等核心标准。

第三,强化工程实践。熟练 Markdown 文档写作、Git/GitHub 版本控制,养成代码规范、文件规范、项目迭代的良好习惯。

第四,重视测试与团队协作。掌握基础黑白盒测试方法,学会排查bug、优化代码;了解团队分工、任务拆解、代码合并与冲突处理,具备团队开发素养。

🧠 指南合理性与个人收获分析

这份 AI 学习指南整体科学合理、贴合本科课程要求、实用性强。

首先,它清晰区分了“编程”和“软件工程”的区别,让我意识到软件工程重在规范、流程、思维、协作,而非单纯实现功能,纠正了我之前的学习误区。

其次,指南从理论、设计、实践、协作多维度规划学习路径,覆盖课程核心知识点,体系完整,适合作为我的学期学习规划参考。

最后,指南精准对应我的短板,对规范编码、项目思维、团队协作的提升有明确指导作用,能够有效帮助我提升工程化能力,对本学期学习和长期技术成长都有实际帮助。

3.5总结

本次自我梳理让我清晰认知了自身优势与不足。后续我将依托软件工程课程与AI学习指南,规范编码习惯、积累项目代码、提升团队协作与工程化能力,逐步建立完整的软件开发思维。

四、博客园Markdown编辑页面截图

a4412c74-c640-4dea-ae83-68b5db0d6d1e

祝看到这里的你天天开心🖐️😊🤚拜拜~

posted @ 2026-09-11 22:59  WinterYew  阅读(8)  评论(0)    收藏  举报