软件工程第一次作业

软件工程第一次作业

这个作业属于哪个课程 202601 软件工程
这个作业要求在哪里 软件工程个人作业
这个作业的目标 完成 API 调用交互,搭建 GitHub 主页,并梳理个人技能树规划
学号 102401409

一、准备工作

二、huggingface-API的调用

1. 登录huggingface并获取api-key:

Screen Shot 2026-09-07 at 22.47

2. 实现交互生成,结合前端接口以及调用模型的代码已放在GitHub仓库中:Flux_Invoking

API调用的操作步骤

  • 环境准备:为规避本地复杂的网络代理环境限制,选择创建独立的 GitHub Codespaces 云端开发机。

  • 依赖安装:在终端执行 pip install huggingface_hub gradio pillow,配置前后端与官方 API 通信所需的依赖库。

  • 代码编写与运行:编写 Python 脚本。终端成功输出 Running on local URL: http://127.0.0.1:7860(“API调用成功的记录”),证明后端服务已就绪。

Screen Shot 2026-09-08 at 21.27

  • 前端交互:在浏览器打开映射端口,输入优化后的提示词,等待模型响应后生成图像并全屏截图。

Screen Shot 2026-09-08 at 23.58

3. 提示词设计思路和修改过程

版本一:基础描述(极简测试)

  • Prompt (提示词): A young male programmer sitting in a cafe.

  • 设计思路: 最基础的意图表达,仅包含主体(年轻男程序员)和基础场景(咖啡馆)。

  • 生成效果与缺陷: 模型能够准确输出人物和背景,但其实并没有完全顺着提示词走,有点偏航,感觉还可以优化以此体现出 RealismLora 模型的写实优势。

image (1)

版本二:场景与动作增强(丰富细节)

  • Prompt (提示词): A young male programmer wearing a casual hoodie, sitting by the window in a modern cafe, typing on a silver laptop. Outside the window, it is raining.

  • 设计思路: 引入具体的服饰(休闲卫衣)、精确的环境定位(现代咖啡馆靠窗位置)、具体的交互动作(在银色笔记本上打字)以及天气状态(窗外下雨)。

  • 生成效果与缺陷: 画面的叙事感大幅增强,环境元素变得丰富,但光影关系仍略显平淡。

image

版本三:摄影机语言与质感注入

  • Prompt (提示词): A highly realistic cinematic portrait of a young male software engineer wearing a dark grey hoodie, sitting by the window in a cozy modern cafe, deeply focused on typing on a silver laptop. Raindrops on the window glass, soft natural lighting, shallow depth of field, shot on 35mm lens, 8k resolution, photorealistic.

  • 设计思路: 在前一版的基础上,全面引入专业摄影术语。加入“电影级肖像 (cinematic portrait)”、“柔和自然光 (soft natural lighting)”、“浅景深 (shallow depth of field)”、“35mm镜头 (shot on 35mm lens)”以及“8k 分辨率”。

  • 生成效果体验: 感觉实际上并没有什么特别的提升,就是感觉像是把相机换到了另一个角度,其他的地方我没看出什么较大的区别。

image (2)

API调用时的体验和心得

  • 底层网络与代理陷阱:由于直接访问huggingface会超时,且网络不稳定,所以采用代理形式加速访问。最初尝试使用 Python 原生的 requests 和 urllib 发起请求时,遭遇了大量的 SSL: UNEXPECTED_EOF_WHILE_READING 和 DNS 解析异常(socket.gaierror)。这让我深刻体会到,在复杂的本地代理路由(如 TUN 虚拟网卡模式)下,系统级网络转发对代码发起的加密流量干扰极大。

  • 工程化封装的优势:为了解决上述问题,最终弃用了底层的 Socket 和 HTTP 请求硬编码,转而采用 Hugging Face 官方的 InferenceClient 库。这直接免去了处理底层代理握手、超时重连(Timeout)以及大模型冷启动排队状态等繁杂细节。

  • 软件工程认知:这次踩坑完美契合了软件工程的核心理念——不要重复造轮子,善用成熟的 SDK 和云端环境(如 Codespaces)来隔离本地不可控的运行变量。将精力集中在前端交互逻辑与业务实现上,远比死磕底层网络协议带来的工程收益更高。

三、GitHub 个人主页搭建

  • 个人主页定制 (README.md): 利用同名仓库机制,创建了专属的 GitHub 个人主页。在 README.md 的编写中,使用 Markdown 语法,清晰地列出了我目前的技术栈(C/C++、Python)以及正在推进的项目。

Screen Shot 2026-09-08 at 22.55

四、随笔

已发布至:第一次作业随笔

附:后台博文编辑页面的截图

Screen Shot 2026-09-08 at 22.55

posted @ 2026-09-09 00:21  Calmigrhty  阅读(11)  评论(0)    收藏  举报