| |
| 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", |
| ) |
|
|