shashi126's picture
Update Backend/main.py
c19bad0 verified
from fastapi import FastAPI, Query
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse
from utils.wikipedia_compare import fetch_multilingual_summaries
from utils.wiktionary_lookup import get_definition
from utils.summary_stats import compute_stats
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from Backend.utils.wikipedia_compare import fetch_multilingual_summaries
app = FastAPI()
# Supported Indic + English languages
INDIC_LANGS = ['hi', 'te', 'ta', 'ml', 'kn']
# Allow Flutter frontend access
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
allow_credentials=True,#changed
)
@app.get("/compare")
def compare(topic: str = Query(...), source_lang: str = Query("en")):
# Ensure source_lang is included
langs = list(set(INDIC_LANGS + [source_lang]))
summaries = fetch_multilingual_summaries(topic, source_lang, langs)
stats = {lang: compute_stats(text) for lang, text in summaries.items()}
return JSONResponse(
content={"summaries": summaries, "stats": stats},
media_type="application/json; charset=utf-8"
)
@app.get("/define")
def define(word: str = Query(...), lang: str = Query("en")):
definition = get_definition(word, lang)
return {"word": word, "definition": definition}