软件工程入门实践:从大模型API到个人技术主页构建

项目 内容
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice/
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice/homework/16716
这个作业的目标 梳理自身技能与不足;体验大模型 API 调用与前端交互开发;搭建 GitHub 个人主页;借助 AI 生成软件工程学习指南并进行分析
学号 102402128

软件工程入门实践:从大模型API到个人技术主页构建

一、关于我:技能与不足

我是李韩远,福州大学数据科学与大数据技术专业大三在读学生。

课余时间我比较喜欢跑步和旅行。学习方面,我对计算机和数据相关领域比较感兴趣,习惯通过实际操作理解理论知识,希望能够将课堂中学习到的知识应用到实际问题中。

目前我正在学习 Python、C/C++、Java、数据库以及 Web 开发等相关知识,也开始接触人工智能、大模型 API 和软件工程实践。

1.1 当前技能树与自我评估

以下内容按照我实际接触和完成过的任务进行评价,不把简单使用某个工具等同于真正掌握。

能力方向 已经掌握的知识与实践 仍需深入的部分
Python 能够使用 Python 完成数据清洗、统计分析、可视化,也能够调用模型 API 完成简单的 AI 应用 大规模工程化开发、代码规范、项目部署、MLOps
数据分析 掌握基本的数据处理、统计分析和可视化方法,能够使用相关工具完成数据分析任务 更复杂的数据建模、特征工程和实际业务数据分析
数据库 会使用 MySQL 完成基础查询、数据筛选和简单的数据处理 索引原理、数据库建模、事务和数据可靠性
C/C++ 掌握基础语法,学习过数据结构和相关算法,能够完成常规算法题 底层原理、复杂算法以及工程实践
Java 具备 Java 基础,能够完成课程中的基础编程任务 Java Web、项目开发和框架的深入使用
HTML/CSS/JavaScript 能够完成简单的网页结构、样式以及 JavaScript 交互 前端工程化、组件化开发以及更复杂的前后端交互
Git/GitHub 已经开始使用 Git 和 GitHub 管理代码,并创建个人 GitHub 主页 分支管理、多人协作、Pull Request 和完整项目协作流程
AI 应用开发 已经完成 Hugging Face API 调用,并使用 Flask 搭建简单的 AI 图片生成 Web 应用 更复杂的大模型应用开发、模型部署和 AI 工程化
软件工程 了解软件工程的基本概念,能够按照任务完成项目实践 需求分析、系统设计、软件测试、项目管理和团队协作

1.2 最需要加强的三项能力

  1. 计算机底层基础

    目前对一些计算机底层原理的理解还不够深入。虽然能够使用很多工具和框架完成任务,但是对于计算机组成、操作系统、网络等底层知识还需要进一步学习。

  2. 完整的软件工程实践能力

    目前我的实践更多集中在课程作业和竞赛项目,还缺少一个完整的软件项目从需求分析、系统设计、编码、测试到最终部署的全过程经验。

  3. 科研与问题发现能力

    目前面对已经给出的题目,我能够通过查阅资料和实践完成任务,但主动发现问题、提出有价值的问题以及进行深入研究的能力还需要继续提高。

1.3 技术偏好与希望学习的方向

目前我比较感兴趣的方向是人工智能、大语言模型以及 AI 应用开发。

我希望进一步学习:

  • 自然语言处理(NLP)
  • 大语言模型(LLM)
  • 大模型轻量化部署
  • 图神经网络(GNN)
  • 强化学习
  • MLOps
  • AI 应用工程化

我希望以后不仅能够调用现成的 AI 工具,还能够理解模型背后的基本原理,并能够独立完成一个较完整的 AI 应用项目。


二、三年发展规划

为了让自己的学习目标更加明确,我根据目前的学习阶段制定了未来三年的发展规划。

时间 主要目标 具体计划
第一年 准备考研、夯实基础 系统复习数学、英语和专业课;进一步学习数据结构、操作系统、计算机网络、计算机组成原理等基础知识;继续提高 Python、C/C++ 等编程能力;完成课程项目和竞赛实践
第二年 完成毕业论文与实习 认真完成毕业论文,学习科研和论文写作方法;寻找与数据分析、人工智能或软件开发相关的实习机会;积累真实的软件项目开发经验
第三年 跟随导师深入学习 进入研究生阶段后跟随导师学习,参与科研项目;进一步学习人工智能、大模型等方向;提高科研能力、工程实践能力和独立解决问题的能力

第一年:准备考研

第一年的主要任务是考研和夯实专业基础。

我会重点学习数学、英语以及计算机相关专业课程,同时加强数据结构、算法、操作系统、计算机网络等基础知识。

除此之外,我也会继续保持编程练习,通过课程项目和个人项目提高实际开发能力。

第二年:毕业论文与实习

第二年主要完成本科毕业论文,同时争取找到与专业方向相关的实习。

在毕业论文过程中,我希望能够学习更加规范的科研方法,包括资料查找、实验设计、数据分析、论文撰写等。

通过实习,希望能够接触真实的软件开发环境,了解企业中的开发流程、团队协作和项目管理方式。

第三年:跟随导师学习

第三年进入研究生阶段后,我计划跟随导师进行深入学习和科研实践。

重点关注人工智能、大语言模型、数据分析等方向,在导师指导下参与科研项目,逐渐提高独立思考、问题分析和科研实践能力。


三、代码量与本学期目标

目前我的累计代码量大约为 15000 行,这些代码主要来自课程学习、数学建模竞赛、个人实践以及各种实验项目。

项目 预计数量
目前累计代码量 约 15000 行
本学期计划新增代码 5000 行
课程结束总目标 约 20000 行

这里的代码量主要作为一个自我衡量指标,并不单纯追求代码数量。

我希望通过本学期的软件工程课程,让自己的代码从“能够运行”逐渐向“结构清晰、容易维护、方便协作”转变。

同时通过 GitHub 记录自己的项目和代码,让自己的学习过程更加规范。


四、本课程最期待学习的知识与收获

4.1 期待学习的知识

  1. 软件工程完整开发流程

    希望系统了解需求分析、概要设计、详细设计、编码、软件测试和项目交付等完整流程。

  2. 工程化开发规范

    希望学习 UML、模块化设计、版本管理、单元测试、项目文档等软件工程方法。

  3. 团队软件开发

    希望了解多人协作中的任务分工、代码管理、冲突解决和代码评审等内容。

  4. 项目管理

    希望学习如何对一个完整的软件项目进行任务划分、进度管理和质量控制。

4.2 希望获得的收获

通过本课程,我希望能够:

  • 建立基本的软件工程思维;
  • 不再只追求“代码能运行”,而是更加关注代码的可维护性;
  • 掌握规范的软件项目开发流程;
  • 学会编写更加规范的项目文档;
  • 掌握 Git/GitHub 的基本协作方式;
  • 能够独立完成一个小型软件项目的完整开发流程;
  • 为以后参与更大型的软件项目和科研项目打下基础。

五、基于 Hugging Face API 与 FLUX 模型的 AI 图片生成系统

5.1 实验目的

本次实验的主要目的是学习 Hugging Face 平台模型 API 的基本调用方法。

通过注册 Hugging Face 账号并获取 API Token,在 Python 后端中调用 XLabs-AI/flux-RealismLora 模型,实现根据用户输入的文字提示词生成 AI 图片。

同时结合 Flask 和 HTML、CSS、JavaScript 完成一个简单的 Web 页面,使用户可以在网页中输入 Prompt,点击按钮后生成图片并显示结果。

通过本次实践,我学习了:

  • Hugging Face API Token 的获取与配置;
  • Python 环境和相关依赖的安装;
  • huggingface_hub 库的使用;
  • Flask Web 框架的基本使用;
  • 前后端数据交互;
  • AI 图片生成 API 的调用;
  • API 调用过程中的错误处理;
  • Prompt 的设计与优化。

5.2 实验环境

项目 环境
操作系统 Windows
开发工具 Visual Studio Code
编程语言 Python
Python 版本 Python 3.12.6
Web 框架 Flask
AI 平台 Hugging Face
模型 XLabs-AI/flux-RealismLora
前端技术 HTML、CSS、JavaScript

5.3 项目功能介绍

本项目实现了一个简单的 AI 图片生成网页。

用户可以在网页输入英文图片提示词,然后点击“生成图片”按钮。

系统按照以下流程运行:

  1. 用户在网页输入图片 Prompt;
  2. 前端 JavaScript 获取用户输入;
  3. 前端向 Flask 后端发送 POST 请求;
  4. Flask 后端接收 Prompt;
  5. 后端调用 Hugging Face API;
  6. FLUX 模型根据 Prompt 生成图片;
  7. 后端将生成的图片转换为 Base64 数据;
  8. 后端将图片数据返回给前端;
  9. 前端显示生成后的 AI 图片。

整个系统形成了:

文本输入 → API 请求 → AI 模型推理 → 图片生成 → 前端展示

的完整流程。


5.4 Hugging Face API 调用过程

首先在 Hugging Face 官网注册个人账号,并创建 API Token。

为了避免 Token 直接出现在源代码中,我使用 ` 文件保存 Token。

text
HF_TOKEN=你的_Hugging_Face_API_Token

在 Python 程序中使用 python-dotenv 读取环境变量:

from dotenv import load_dotenv
import os

load_dotenv()

HF_TOKEN = os.getenv("HF_TOKEN")

这样可以避免将 API Token 直接写在 Python 源代码中,提高 Token 的安全性。

5.5 项目目录结构

项目的基本目录结构如下:

software-engineering-homework/
│
├── templates/
│ └── index.html
│
├── .env
├── app.py
├── generate.py
└── generated_image.png

各文件的作用如下:

文件或文件夹 功能
templates/index.html AI 图片生成网页前端
.env 保存 Hugging Face API Token
app.py Flask 后端程序
generate.py 测试 Hugging Face 模型 API
generated_image.png API 生成的图片
5.6 API 调用实现

后端通过 Hugging Face 的 InferenceClient 调用模型:

from huggingface_hub import InferenceClient

client = InferenceClient(
provider="auto",
api_key=HF_TOKEN
)

MODEL_ID = "XLabs-AI/flux-RealismLora"

接收到用户的 Prompt 后调用:

image = client.text_to_image(
prompt=prompt,
model=MODEL_ID
)

生成图片后,将图片转换为 PNG 数据,并通过 Base64 的形式返回给前端。

5.7 前后端交互

前端通过 JavaScript 的 fetch() 向 Flask 后端发送请求。

基本流程为:

用户输入 Prompt
↓
JavaScript 获取输入
↓
POST /generate
↓
Flask 接收 Prompt
↓
调用 Hugging Face API
↓
生成图片
↓
Base64 返回
↓
浏览器显示图片

这种方式实现了前端页面与 AI 模型之间的交互。

5.8 Prompt 设计与优化

在实验过程中,我发现 Prompt 的描述程度会影响生成图片的效果。

最开始使用比较简单的提示词,例如:

A street in Tokyo at night.

image

这个 Prompt 对图片内容的描述比较简单,因此生成结果的细节有限。

之后增加环境、人物、光照等信息:

A realistic street photograph of Tokyo at night, Japanese buildings
and convenience stores, wet road reflecting neon lights,
a person walking on the street, natural human proportions,
realistic skin texture, photorealistic, cinematic photography,
35mm lens, shallow depth of field, high detail.
image

通过逐步增加关键词,我认识到 Prompt 并不是简单地描述“想生成什么”,还可以进一步描述:

场景;
人物;
光照;
色彩;
摄影风格;
镜头;
画面细节;
图片整体氛围。

因此,Prompt 的设计和不断修改也是 AI 应用开发中的重要实践。

5.9 实验结果

通过 Flask 启动本地 Web 服务:

http://127.0.0.1:5000
image

打开网页后,可以在输入框中输入 Prompt,并点击“生成图片”。

最终成功实现:

用户输入 Prompt;
前端发送请求;
Flask 后端调用 Hugging Face API;
FLUX 模型生成图片;
图片返回前端;
网页显示生成结果。

【此处插入 Hugging Face API 调用成功截图】

【此处插入 Flask 后端运行截图】

【此处插入网页生成成功截图】

【此处插入最终生成图片】

六、GitHub 个人主页

本次作业中,我创建了与 GitHub 用户名相同的个人主页仓库:

hanyuan6666/hanyuan6666

该仓库使用 README.md 作为个人主页内容。

GitHub 个人主页主要包含:

个人基本介绍;
兴趣爱好;
当前技能;
技术兴趣;
项目实践;
自我评价;
三年发展规划。

通过创建 GitHub 个人主页,我进一步了解了 GitHub Profile README 的使用方式,也开始尝试将个人学习成果进行整理和展示。
GitHub链接:https://github.com/hanyuan6666
image

image

image

七、AI 生成的软件工程课程学习指南

本次作业选择 ChatGPT 作为 AI 工具,让其生成一份简洁的软件工程课程学习指南。

7.1 AI 生成的学习指南

image

image

image

image

7.2 对 AI 学习指南的分析

我认为这份学习指南总体上是合理的。

首先,它按照软件开发的一般流程进行组织,从软件工程基础开始,逐渐学习需求分析、系统设计、编码、测试,最后通过项目实践进行综合应用。这种学习顺序比较符合软件工程课程的特点。

其次,这份指南比较重视实践。软件工程不仅仅是学习理论知识,如果只停留在概念层面,很难真正理解需求分析、版本管理、测试和团队协作的重要性。因此,通过综合项目将前面学习的知识串联起来是比较有必要的。

不过,这份学习指南也存在一定不足。

第一,内容比较概括,没有结合具体的软件工程工具。例如可以进一步加入 Git、GitHub、UML 工具、测试框架等具体工具。

第二,对于团队开发的内容还不够详细。实际的软件开发通常需要多人协作,因此还应该学习代码评审、Issue 管理、分支策略和冲突解决等内容。

第三,没有针对个人基础进行调整。每个人的编程基础和项目经验不同,学习计划也应该有所区别。

因此,我认为这份 AI 生成的学习指南可以作为课程学习的整体框架,但不能完全替代老师的课程安排和自己的学习计划。

通过这次使用 AI 制定学习指南,我也认识到 AI 更适合帮助我们整理思路、生成学习框架和补充知识,而不是完全代替自己的思考。

八、总结与学习体会

通过本次软件工程个人作业,我对自己的专业能力和不足有了更加清晰的认识。

以前学习编程时,我比较关注代码能不能运行,而通过软件工程课程的学习,我开始意识到一个真正的软件项目还需要考虑需求分析、系统设计、代码规范、版本管理、测试和维护等问题。

本次 Hugging Face API 实践让我第一次比较完整地体验了从 AI 模型 API 到 Web 前端交互的过程。虽然目前完成的只是一个比较简单的 AI 图片生成应用,但它让我认识到,AI 模型与传统软件开发结合之后,可以形成很多新的应用。

同时,GitHub 个人主页的创建也让我开始尝试整理自己的学习成果。

未来我希望继续加强计算机基础和软件工程实践能力,在学习人工智能相关知识的同时,也逐渐提高自己的工程能力,争取能够独立完成更加完整、规范的软件项目。
七、后台博文编辑页面的截图
本截图为博客园随笔后台Markdown编辑页面,本次作业全文采用Markdown语法编写,使用博客园自带Markdown编辑器完成内容撰写与排版,截图用于证明作业是在Markdown编辑模式下完成,满足作业提交格式要求。
image

posted on 2026-09-09 22:42  寒渊666  阅读(34)  评论(0)    收藏  举报