FastAPIMT / app.py
TiberiuCristianLeon's picture
Update app.py
2440a8a verified
raw
history blame
1.53 kB
from fastapi import FastAPI
import src.Paraphrase as Paraphrase
import src.Translate as Translate
from typing import Optional
from fastapi_mcp import FastApiMCP
app = FastAPI(docs_url="/docs")
MTMODELS = {'enro': 'BlackKakapo/opus-mt-en-ro',
'roen': 'BlackKakapo/opus-mt-ro-en',
'gemma': 'Gargaz/gemma-2b-romanian-better'}
@app.get("/")
def index():
return {'endpoints': ['/paraphrase', '/translate', '/docs', 'https://tiberiucristianleon-fastapimt.hf.space/redoc'], 'mtmodels': MTMODELS}
@app.get("/paraphrase")
def paraphrase(text: str, model: str, operation_id="get_paraphrase", description="Paraphrase text"):
resultValue, exception = Paraphrase.paraphraseParaphraseMethod(text, model)
return {"input": text, "translation": resultValue, "exception": exception}
@app.get("/translate")
def translate(text: str, model: Optional[str] = MTMODELS['gemma'], operation_id="get_translate", description="Translate text"):
# resultValue, exception = Translate.paraphraseTranslateMethod(text, model)
resultValue: str = Translate.gemma_direct(text, model)
return {"input": text, "result": resultValue, "model": model}
# Create an MCP server based on this app
mcp = FastApiMCP(
app,
name="FASTAPI translate and paraphrase MCP",
description="MCP server to translate and paraphrase text",
describe_all_responses=True,
describe_full_response_schema=True,
include_operations=["get_translate", "get_paraphrase"]
)
# Mount the MCP server directly to your app
mcp.mount()