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() |