krishnachoudhary-hclguvi commited on
Commit
b44a8e3
·
unverified ·
1 Parent(s): fc1a203

Accept any multipart file field in /api/v1/extract

Browse files
Files changed (1) hide show
  1. main.py +12 -1
main.py CHANGED
@@ -7,7 +7,7 @@ import uuid
7
  import time
8
  import asyncio
9
  from typing import Dict, Optional
10
- from fastapi import FastAPI, UploadFile, File, HTTPException, Depends, Header
11
  from fastapi.staticfiles import StaticFiles
12
  from fastapi.responses import FileResponse, JSONResponse
13
  from fastapi.middleware.cors import CORSMiddleware
@@ -287,6 +287,7 @@ async def upload_and_process(file: UploadFile = File(...)):
287
 
288
  @app.post("/api/v1/extract", response_model=ProcessingResult, dependencies=[Depends(get_api_key)])
289
  async def synchronous_extract(
 
290
  file: Optional[UploadFile] = File(None),
291
  document: Optional[UploadFile] = File(None),
292
  upload: Optional[UploadFile] = File(None),
@@ -297,6 +298,16 @@ async def synchronous_extract(
297
  """
298
  # 1. Selection
299
  selected_file = file or document or upload
 
 
 
 
 
 
 
 
 
 
300
  if not selected_file:
301
  raise HTTPException(
302
  status_code=400,
 
7
  import time
8
  import asyncio
9
  from typing import Dict, Optional
10
+ from fastapi import FastAPI, UploadFile, File, HTTPException, Depends, Header, Request
11
  from fastapi.staticfiles import StaticFiles
12
  from fastapi.responses import FileResponse, JSONResponse
13
  from fastapi.middleware.cors import CORSMiddleware
 
287
 
288
  @app.post("/api/v1/extract", response_model=ProcessingResult, dependencies=[Depends(get_api_key)])
289
  async def synchronous_extract(
290
+ request: Request,
291
  file: Optional[UploadFile] = File(None),
292
  document: Optional[UploadFile] = File(None),
293
  upload: Optional[UploadFile] = File(None),
 
298
  """
299
  # 1. Selection
300
  selected_file = file or document or upload
301
+ if not selected_file:
302
+ try:
303
+ form = await request.form()
304
+ for _, value in form.multi_items():
305
+ if isinstance(value, UploadFile) and value.filename:
306
+ selected_file = value
307
+ break
308
+ except Exception:
309
+ pass
310
+
311
  if not selected_file:
312
  raise HTTPException(
313
  status_code=400,