多文件上传累积模式,前端文件列表支持删除,后端接收前端指定的文件列表

This commit is contained in:
2026-04-20 13:50:59 +08:00
parent c7224153b1
commit c0879765fd
3 changed files with 51 additions and 10 deletions

View File

@@ -356,6 +356,7 @@ def run_analysis_task(session_id: str, files: list, user_requirement: str, is_fo
class StartRequest(BaseModel):
requirement: str
template: Optional[str] = None
files: Optional[List[str]] = None
class ChatRequest(BaseModel):
session_id: str
@@ -383,10 +384,15 @@ async def upload_files(files: list[UploadFile] = File(...)):
async def start_analysis(request: StartRequest, background_tasks: BackgroundTasks):
session_id = session_manager.create_session()
# Use only the most recently uploaded files, not everything in uploads/
files = getattr(app.state, 'last_uploaded_files', None)
# Priority: request.files (from frontend) > last_uploaded > scan uploads/
files = None
if request.files:
files = [f for f in request.files if os.path.exists(f)]
if not files:
files = getattr(app.state, 'last_uploaded_files', None)
if files:
files = [f for f in files if os.path.exists(f)]
if not files:
# Fallback: scan uploads directory
files = glob.glob("uploads/*.csv") + glob.glob("uploads/*.xlsx")
if not files:
raise HTTPException(status_code=400, detail="No data files found. Please upload files first.")