import os from fastapi import FastAPI, HTTPException from io import BytesIO import requests from models import InsertedLink, ExtractedText import extractor os.environ['TRANSFORMERS_CACHE'] = '/transformers_cache' os.environ['HF_HOME'] = '/transformers_cache' app = FastAPI() @app.get("/", response_model=dict[str, str]) def getall(): return {"hello":"world"} @app.post("/speech2text", response_model=ExtractedText) async def extract(link: InsertedLink): response = requests.get(link.link) if response.status_code == 200: # Open the PDF from bytes in memory mp3 = (BytesIO(response.content)) else: #return error, make 500 because file server error raise HTTPException(status_code=response.status_code, detail="File server error") dictresult = extractor.speech2text(mp3) return ExtractedText(**dictresult)