from fastapi import FastAPI, HTTPException,UploadFile,File from pydantic import BaseModel from deep_translator import GoogleTranslator from fastapi.responses import JSONResponse import os from main import process,audio_process from dotenv import load_dotenv load_dotenv() # Create the FastAPI app instance os.makedirs("/tmp/huggingface_cache", exist_ok=True) os.environ["HF_HOME"] = "/tmp/huggingface_cache" app = FastAPI() # Root endpoint @app.get("/") async def home(): return {"message": "Testing_api"} # Token verification function def verify_token(token: str): if token != os.getenv("TOKEN"): raise HTTPException(status_code=401, detail="Token not matched") # Translate endpoint that accepts a query parameter 'text' @app.get("/translate") async def translate(text: str = "", token: str = ""): if not text or not token: raise HTTPException(status_code=400, detail="No text or token provided") verify_token(token) translator = GoogleTranslator(source="auto", target="mr") result = translator.translate(text) return {"result": result} @app.get("/chatbot") async def chatbot(text: str = "", token: str = ""): if not text or not token: raise HTTPException(status_code=400, detail="No text provided") verify_token(token) result = process(user_query=text) return {"result": result} @app.post("/audio_chat") async def audio_chat(audio: UploadFile = File(...), token: str = ""): if not audio or not token: raise HTTPException(status_code=400, detail="No audio file provided") verify_token(token) try: result = audio_process(audio.file) # Replace with actual audio processing logic return {"result": result} except Exception as e: raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")