Files
sora_python/app/api/api_process_lookbooks.py

36 lines
1.1 KiB
Python
Raw Normal View History

import logging
import os
import shutil
from typing import List
import aiofiles
import tqdm
from fastapi import UploadFile, File, APIRouter, BackgroundTasks, Form
2024-10-21 16:57:57 +08:00
from app.service.lookbooks.service import create_image_batch_requests, process_lookbook_task # 引入服务逻辑
logger = logging.getLogger()
router = APIRouter()
2024-10-21 16:57:57 +08:00
@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)
2024-10-21 16:57:57 +08:00
async with aiofiles.open(file_path, "wb") as f:
await f.write(await file.read())
lookbook_list.append(file_path)
2024-10-21 16:57:57 +08:00
# 将任务放入后台异步执行
background_tasks.add_task(process_lookbook_task, lookbook_list, tag, year)
2024-10-21 16:57:57 +08:00
return {"message": "Lookbooks are being processed in the background."}