|
|
|
import json |
|
from fastapi import APIRouter, Response |
|
from fastapi.responses import JSONResponse |
|
from pythainlp.soundex import ( |
|
soundex as py_soundex |
|
) |
|
from enum import Enum |
|
from pydantic import BaseModel |
|
|
|
class SoundexResponse(BaseModel): |
|
soundex: str = "" |
|
|
|
router = APIRouter() |
|
|
|
|
|
class SoundexEngine(str, Enum): |
|
udom83 = "udom83" |
|
lk82 = "lk82" |
|
metasound = "metasound" |
|
prayut_and_somchaip = "prayut_and_somchaip" |
|
|
|
|
|
@router.post('/soundex', response_model=SoundexResponse) |
|
def soundex(word: str, engine: SoundexEngine = "udom83"): |
|
""" |
|
This api converts Thai text into phonetic code. |
|
|
|
## Input |
|
|
|
- **word**: A word that want into phonetic code. |
|
- **engine**: Soundex Engine (default is udom83 |
|
""" |
|
return JSONResponse( |
|
{"soundex": py_soundex(text=word, engine=engine)}, |
|
media_type="application/json; charset=utf-8", |
|
) |
|
|