多文件上传累积模式,前端文件列表支持删除,后端接收前端指定的文件列表
This commit is contained in:
12
web/main.py
12
web/main.py
@@ -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.")
|
||||
|
||||
Reference in New Issue
Block a user