Spaces:
Runtime error
Runtime error
| from fastapi import FastAPI, UploadFile, HTTPException | |
| from typing import List | |
| from everycure.extractor import Entity, extract_entities_from_pdf | |
| import logging | |
| import uvicorn | |
| # Set up logging | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| app = FastAPI( | |
| title="Medical Entity Extraction API", | |
| description="This API allows users to extract medically relevant entities from PDF documents using a pre-trained NER model.", | |
| version="1.0.0" | |
| ) | |
| from fastapi.middleware.cors import CORSMiddleware | |
| # Add CORS middleware | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| # Rest of your existing code | |
| async def extract_entities(file: UploadFile): | |
| logger.info(f"Received request for file: {file.filename}") | |
| if not file: | |
| logger.error("No file provided") | |
| raise HTTPException(status_code=400, detail="Bad request, file not included or empty filename") | |
| if not file.filename.lower().endswith('.pdf'): | |
| logger.error(f"Invalid file type: {file.filename}") | |
| raise HTTPException(status_code=415, detail="Unsupported file type") | |
| try: | |
| logger.info("Starting entity extraction") | |
| result = extract_entities_from_pdf(file) | |
| logger.info(f"Successfully extracted {len(result)} entities") | |
| return result | |
| except Exception as e: | |
| logger.error(f"Error during extraction: {str(e)}", exc_info=True) | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| if __name__ == "__main__": | |
| uvicorn.run(app, host="0.0.0.0", port=7860) | |