Spaces:
Sleeping
Sleeping
krishnachoudhary-hclguvi commited on
Accept any multipart file field in /api/v1/extract
Browse files
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,
|