Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, UploadFile, File, Form, Request | |
| from fastapi.responses import HTMLResponse, JSONResponse, FileResponse | |
| from fastapi.staticfiles import StaticFiles | |
| from fastapi.templating import Jinja2Templates | |
| from fastapi.middleware.cors import CORSMiddleware | |
| import tempfile, os | |
| from app import summarize_document | |
| from appImage import caption_image | |
| app = FastAPI() | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| app.mount("/static", StaticFiles(directory="static"), name="static") | |
| app.mount("/resources", StaticFiles(directory="resources"), name="resources") | |
| templates = Jinja2Templates(directory="templates") | |
| # Serve homepage | |
| async def serve_home(request: Request): | |
| return templates.TemplateResponse("HomeS.html", {"request": request}) | |
| # Summarize endpoint (calls summarize_document from app.py) | |
| async def summarize_api(file: UploadFile = File(...), length: str = Form("medium")): | |
| try: | |
| result = await summarize_document(file, length) | |
| return JSONResponse(result) | |
| except Exception as e: | |
| print(f"Error during summarization: {str(e)}") | |
| return JSONResponse({"detail": f"Internal server error: {str(e)}"}, status_code=500) | |
| # Captioning endpoint | |
| async def caption(file: UploadFile = File(...)): | |
| try: | |
| result = await caption_image(file) | |
| return JSONResponse(result) | |
| except Exception as e: | |
| print(f"Error during captioning: {str(e)}") | |
| return JSONResponse({"error": f"Image captioning failed: {str(e)}"}, status_code=500) | |
| # Serve audio/pdf files | |
| async def serve_file(filename: str): | |
| filepath = os.path.join(tempfile.gettempdir(), filename) | |
| if os.path.exists(filepath): | |
| return FileResponse(filepath) | |
| return JSONResponse({"error": "File not found"}, status_code=404) | |