Spaces:
Sleeping
Sleeping
from fastapi import FastAPI | |
from pydantic import BaseModel | |
from components.model_loader import ModelLoader | |
from components.pipeline_preparer import PipelinePreparer | |
from components.predictor import Predictor | |
import uvicorn | |
app = FastAPI() | |
class PredictionRequest(BaseModel): | |
sentence: str | |
async def startup_event(): | |
print("Initializing model...") | |
try: | |
# Model initialization | |
loader = ModelLoader() | |
tokenizer, model = loader.load_model() | |
pipeline = PipelinePreparer.prepare_pipeline(tokenizer, model) | |
app.state.predictor = Predictor(pipeline) | |
print("Model initialized successfully") | |
except Exception as e: | |
print(f"Error initializing model: {e}") | |
app.state.predictor = None | |
def health_check(): | |
return {"Message": "Service is healthy", "Status": "OK"} | |
def predict(request: PredictionRequest): | |
if not app.state.predictor: | |
return {"error": "Model not initialized"} | |
return app.state.predictor.predict(request.sentence) | |
if __name__ == "__main__": | |
uvicorn.run(app, host="0.0.0.0", port=7860) |