Spaces:
Running
Running
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'} | |
def index(): | |
return {'endpoints': ['/paraphrase', '/translate', '/docs', 'https://tiberiucristianleon-fastapimt.hf.space/redoc'], 'mtmodels': MTMODELS} | |
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} | |
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() |