软件工程课程第一次个人作业

软件工程第一次个人作业

这个作业属于哪个课程 H202601软件工程与软件工程实践
这个作业要求在哪里 2026秋软件工程个人作业(第一次)
这个作业的目标 完成GitHub与博客园主页搭建,掌握Hugging Face API调用与前后端交互,梳理个人技能体系与学习规划
学号 102401126

一、作业准备

  1. 完成 GitHub、博客园账号注册与信息完善。
  2. 完成班级博客加入与实名制认证。

二、Hugging Face API 调用实践

2.1 方案概述

基于 Flask 后端 + 原生 HTML/JS 前端,实现可交互的 Flux 写实图像生成工具。后端调用 Hugging Face API 生成图像,前端提供输入与结果展示,完成完整文生图流程。

2.2 提示词设计

本次图像生成围绕「杭州清晨巷弄早餐摊」的纪实场景展开,共经历三轮提示词迭代优化,逐步校准画面主体、场景氛围与视觉质感。

初始版本

Chinese breakfast stall, old man, fried dough sticks, Hangzhou alley, morning

初始版本要素过于简略,生成画面存在明显问题:人物形象模糊、动作不明确,场景杂乱缺少层次,整体偏插画风格,缺乏纪实摄影的真实感。

第一轮修改:细化核心主体与动作

针对主体不清晰的问题,补充摊主的人物特征与动作细节,明确画面核心叙事点。

  • 补充人物设定:52岁中国摊主、微胖、蓝色带油污围裙
  • 明确动作道具:长竹筷、翻动金黄色油条、热锅灶台
  • 修改后画面主体辨识度提升,动作逻辑更清晰,但场景氛围仍显单薄。

第二轮修改:丰富场景层次与生活气息

针对画面空洞、缺少氛围感的问题,补充环境细节与配角人物,构建完整的市井生活场景。

  • 补充环境特征:清晨6点、杭州狭窄小巷、晨光、锅边升腾的热气
  • 增加配角人物:吃早餐的保安、等待的女学生、蹲坐的流浪狗
  • 修改后画面故事感增强,烟火气更足,但整体风格仍偏向插画质感。

第三轮修改:锁定纪实写实质感

针对风格不统一的问题,加入摄影类关键词,统一画面质感,贴近真实相机拍摄效果。

  • 增加风格限定:纪实摄影风格、照片级写实、8K分辨率
  • 补充光影参数:自然光、广角镜头
  • 修改后画面光影更自然,颗粒感与空间感更接近真实纪实照片。

最终提示词

A 52-year-old Chinese breakfast stall vendor named Wang, slightly overweight, wearing a blue apron stained with oil, standing behind a hot oil wok, using long bamboo chopsticks to flip a golden deep-fried dough stick in a narrow Hangzhou alley at 6 AM, morning light, steam rising, a security guard in grey uniform sitting at a folding table, eating a dough stick dipped in soy milk, a middle school girl in white uniform waiting nearby, a yellow stray dog squatting beside the tricycle looking up at Wang, realistic documentary photography style, photorealistic, 8k, natural lighting, wide shot

老人卖早餐

图一 : Flux 生成的早餐摊写实效果图

2.3 核心代码

后端

import os, io, base64
from flask import Flask, request, jsonify
from huggingface_hub import InferenceClient

app = Flask(__name__)
client = InferenceClient(api_key=os.getenv("HF_TOKEN"))

@app.route('/generate', methods=['POST'])
def generate_image():
    prompt = request.get_json().get('prompt', '').strip()
    if not prompt:
        return jsonify({'error': '请输入提示词'}), 400
    
    image = client.text_to_image(prompt=prompt, model="black-forest-labs/FLUX.1-schnell")
    buffered = io.BytesIO()
    image.save(buffered, format="PNG")
    img_base64 = base64.b64encode(buffered.getvalue()).decode('utf-8')
    return jsonify({'success': True, 'image': img_base64})

前端交互逻辑

function generate() {
    fetch('/generate', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ prompt: promptInput.value })
    })
    .then(res => res.json())
    .then(data => {
        if (data.success) {
            resultImg.src = `data:image/png;base64,${data.image}`;
            resultImg.classList.add('show');
        }
    });
}

api调用界面

图二 : 终端运行与API调用成功日志截图

前端
图三 : 运行效果

2.4 实践心得

  • API 方式大幅降低大模型使用门槛,开发者可专注于业务逻辑与交互设计。
  • 提示词精度直接决定生成质量,场景细节与风格限定是提升效果的关键。
  • 密钥硬编码存在安全风险,应通过环境变量管理密钥。

三、GitHub 个人主页搭建

3.1 方案选择

采用 Profile README 方案:创建与用户名同名的公开仓库 diahull/diahull.github.io,通过根目录 README.md 展示个人信息,GitHub 会自动渲染到个人主页。

3.2 主页内容

主页包含自我介绍、技能栈、待提升方向、项目展示、兴趣方向、课程学习目标、三年发展规划与联系方式七个模块。

1
图四 :GitHub 个人主页截图(1)

2
图五 :GitHub 个人主页截图(2)


四、个人技能梳理与发展规划

4.1 现有能力

  • 编程语言:Python、C 基础,可编写简单程序与脚本;掌握 HTML/CSS/JS 基础。
  • 工具技能:Flask 简单应用开发、Hugging Face API 调用、Git 基础操作、VS Code 开发。
  • 学习能力:能主动检索资料解决问题,对新技术有较强学习意愿。

4.2 待提升方向

大型项目架构设计、单元测试与 CI/CD、数据库设计、团队协作与分支管理、工程文档编写。

4.3 三年发展规划

  • 大三:深耕专业课程,积累项目实践,强化 Python 与 Web 开发能力。
  • 大四:准备校招,完成毕业设计,争取实习机会。
  • 毕业后:从事后端开发或 AI 应用开发相关工作,在岗位中持续成长。

4.4 代码量目标

  • 当前累计:约 800 行,以基础练习与小型 Demo 为主。
  • 学期目标:累计突破 5000 行,完成 2 个以上完整项目,兼顾数量与代码质量。

五、课程学习期待

  1. 掌握软件项目完整生命周期,建立工程化思维。
  2. 学习团队协作开发流程,掌握 Git 分支管理与代码评审。
  3. 提升代码规范与文档编写能力,养成良好开发习惯。

六、AI 生成学习指南分析

本次借助 DeepSeek 生成软件工程系统化学习指南,旨在快速搭建完整的知识体系框架,弥补自学过程中知识点碎片化、学习路径不清晰的问题。指南核心划分为基础筑基、理论核心、实践落地、长期提升四个递进阶段,整体遵循从入门到进阶、从理论到实践的成长逻辑,贴合行业通用的工程师能力成长模型。

6.1 各阶段核心内容

  1. 基础筑基阶段
    以编程语言、数据结构与算法、计算机基础原理为核心,重点夯实编码底层能力。对应到自身学习中,就是巩固 Python、C 语言的语法功底,强化常用数据结构与算法练习,为后续工程化开发打下扎实的代码基础。

  2. 理论核心阶段
    覆盖软件工程核心原理、设计模式、需求分析、软件架构设计等内容,帮助建立完整的工程化思维。这部分能够让我跳出“只关注代码实现”的局限,理解软件项目从0到1的设计逻辑与方法论。

  3. 实践落地阶段
    聚焦项目开发全流程、Git 团队协作、单元测试与部署、开发工具链使用等实操技能,强调动手能力与工程规范。这与本次课程的实践目标高度契合,也是我当前需要重点加强的部分。

  4. 长期提升阶段
    延伸至技术选型、架构设计、行业趋势洞察等高阶能力,面向职业发展做长期规划,帮助建立可持续成长的学习路径。

6.2 总结与后续规划

整体来看,AI 生成的学习指南框架完整、逻辑清晰,能够帮我快速理清软件工程的学习脉络,避免入门阶段的盲目性。但通用指南的针对性不足,后续我会结合自身AI 应用开发的兴趣方向,对内容做个性化调整:在实践阶段重点融入 AI API 调用、大模型应用开发相关的项目练习,在架构阶段关注 AI 应用的工程化设计,让学习路径更贴合自身的职业发展目标。


七、作业总结

本次作业完成了 GitHub 与博客园主页搭建、Flux 模型 API 调用与前后端交互工具开发,系统梳理了个人技能体系与发展规划。通过实践体验了生成式 AI 的落地潜力,也明确了自身的短板与后续学习方向。

markdown后台编辑

图六 : 博客园后台 Markdown 编辑器编辑页面截图

posted @ 2026-09-10 12:21  diahull  阅读(11)  评论(0)    收藏  举报