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

这个作业属于哪个课程 202601软工
这个作业要求在哪里 作业要求
这个作业的目标 完成 GitHub 与博客园账号注册及个人主页搭建;学习调用 HuggingFace API 并结合前端实现交互式图像生成;梳理个人技能树与发展规划;体验 AI 工具在学习中的应用
学号 102301230

一. 准备工作

按照作业要求完成账号注册:

  1. 注册GitHub账号,搭建个人Profile README主页;
  2. 开通博客园技术博客,完善个人资料,加入软件工程班级圈子;关注老师与助教博客;
  3. 注册Hugging Face账号,生成Access Token,获取调用API所需密钥。

二、huggingface‑API 调用

  1. 在hugging face注册账号,然后access tokens
  2. 编写前后端,同时.env存入token
  3. 前端请求转发后端调用api 接口,然后模型返回结果至前端

这是app.py的代码

import os
import time
from pathlib import Path
from dotenv import load_dotenv
from flask import Flask, jsonify, render_template, request
from huggingface_hub import InferenceClient

load_dotenv()
HF_TOKEN = os.getenv("HF_TOKEN")
if not HF_TOKEN:
    raise RuntimeError("没有找到 HF_TOKEN,请在项目根目录的 .env 文件中配置。")

client = InferenceClient(provider="fal-ai", api_key=HF_TOKEN, timeout=300)
MODEL_ID = "XLabs-AI/flux-RealismLora"

app = Flask(__name__)
OUTPUT_DIR = Path("static/generated")
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)

@app.get("/")
def index():
    return render_template("index.html")

@app.post("/generate")
def generate():
    data = request.get_json(silent=True) or {}
    prompt = (data.get("prompt") or "").strip()
    if not prompt:
        return jsonify({"success": False, "error": "请输入提示词。"}), 400
    try:
        print(f"[API] model={MODEL_ID}")
        print(f"[API] prompt={prompt}")
        image = client.text_to_image(prompt=prompt, model=MODEL_ID)
        filename = f"{time.strftime('%Y%m%d_%H%M%S')}_{int(time.time()*1000)%1000}.png"
        save_path = OUTPUT_DIR / filename
        image.save(save_path)
        print(f"[API] 生成成功: {save_path}")
        return jsonify({"success": True, "image_url": f"/static/generated/{filename}",
                        "model": MODEL_ID, "provider": "fal-ai", "prompt": prompt})
    except Exception as exc:
        print(f"[API] 生成失败: {exc}")
        return jsonify({"success": False, "error": str(exc)}), 500

if __name__ == "__main__":
    print("========================================")
    print(" FLUX Realism LoRA Web App")
    print(f" Model: {MODEL_ID}")
    print(" URL: http://127.0.0.1:5000")
    print("========================================")
    app.run(host="127.0.0.1", port=5000, debug=True)

这是终端调用
1788934374059

prompt 是:A highly realistic photograph of a university student studying computer science at a modern wooden desk, an open laptop showing code, programming books and handwritten notes, soft natural daylight coming through a window, realistic skin texture, natural colors, subtle shadows, 35mm photography, shallow depth of field, photorealistic, highly detailed

1788934394115

  1. 体验与心得
    先用简单的prompt测试能不能跑通,像'highly realistic','natural daylight','realistic skin texture','photorealistic','highly detailed'通通可以增加真实性

by the way ,前面浪费了几次额度,导致最后只有一张图片,

三.GitHub个人主页搭建

我选择创建与GitHub账号同名仓库,编辑仓库README.md作为个人资料主页。my github
主页包含自我介绍、技能、实践经历、感兴趣方向、希望学习的内容、未来三年发展规划。
然后我同时搞了一个GitHub page,不过很粗糙,click here

四.博客园随笔

然后博客端截图
屏幕截图 2026-09-09 180225

posted @ 2026-09-09 18:19  Aidname  阅读(12)  评论(0)    收藏  举报