from fastapi import FastAPI from pydantic import BaseModel from fastapi.middleware.cors import CORSMiddleware from services.predictor import predict_intent from services.keyword import keyword_correction from services.response import generate_response app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) class QueryRequest(BaseModel): text: str @app.get("/") def root(): return {"message": "Land Registry Chatbot API is running 🚀"} @app.post("/predict") def predict(request: QueryRequest): intent, confidence, probabilities = predict_intent(request.text) corrected_intent = keyword_correction(request.text, intent) response = generate_response(corrected_intent, request.text) return { "query": request.text, "predicted_intent": corrected_intent, "confidence": round(confidence, 3), "response": response, "probabilities": probabilities.tolist() }