import logging import os import shutil from typing import List import tqdm from fastapi import UploadFile, File, APIRouter, BackgroundTasks from app.service.lookbooks.service import create_image_batch_requests, process_lookbook_task # 引入服务逻辑 logger = logging.getLogger() router = APIRouter() @router.post("/process-lookbooks/") async def process_lookbooks( background_tasks: BackgroundTasks, files: List[UploadFile] = File(...), tag: str = Form(...), year: str = Form(...) ): lookbook_dir = "service/lookbooks/temp_lookbooks" os.makedirs(lookbook_dir, exist_ok=True) lookbook_list = [] for file in files: file_path = os.path.join(lookbook_dir, file.filename) async with aiofiles.open(file_path, "wb") as f: await f.write(await file.read()) lookbook_list.append(file_path) # 将任务放入后台异步执行 background_tasks.add_task(process_lookbook_task, lookbook_list, tag, year) return {"message": "Lookbooks are being processed in the background."}