| from fastapi import Depends, FastAPI, Header, HTTPException |
| from fastapi.middleware.cors import CORSMiddleware |
| from fastapi.responses import RedirectResponse |
| from routers import tokenize, soundex, util, spell |
| from fastapi_mcp import FastApiMCP |
| import pythainlp |
|
|
|
|
| DESC_TEXT = """# PyThaiNLP API |
| |
| PyThaiNLP API |
| """ |
|
|
|
|
| app = FastAPI( |
| title='PyThaiNLP API', |
| description=DESC_TEXT, |
| |
| version="0.0.1", |
| debug=False, |
| |
| |
| |
| |
| |
| |
| license_info={ |
| "name": "Apache 2.0", |
| "url": "https://www.apache.org/licenses/LICENSE-2.0.html", |
| }, |
| ) |
|
|
| app.add_middleware( |
| CORSMiddleware, |
| allow_origins=["*"], |
| allow_credentials=True, |
| allow_methods=["*"], |
| allow_headers=["*"], |
| ) |
|
|
|
|
| @app.get("/") |
| def index(): |
| response = RedirectResponse(url='/docs') |
| return response |
|
|
| @app.get("/version") |
| def version(): |
| """ |
| Get PyThaiNLP Version |
| """ |
| return {"version": pythainlp.__version__} |
|
|
| app.include_router(tokenize.router, prefix="/tokenize", tags=["Tokenize"]) |
| app.include_router(soundex.router, prefix="/soundex", tags=["Soundex"]) |
| app.include_router(spell.router, prefix="/spell", tags=["Spell"]) |
| app.include_router(util.router, prefix="/util", tags=["Util"]) |
| mcp = FastApiMCP(app) |
|
|
| |
| mcp.mount() |