Skip to content

Commit a57cd02

Browse files
authored
Merge pull request #2 from ppirch/dev
Change Flask to FastAPI
2 parents e314126 + 95fce70 commit a57cd02

File tree

7 files changed

+43
-22
lines changed

7 files changed

+43
-22
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,4 @@ ENV/
9999

100100
# mypy
101101
.mypy_cache/
102+
.vscode/settings.json

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
# PyThaiNLP API
2-
Web API for PyThaiNLP
2+
3+
Web API for PyThaiNLP
4+
5+
## How to use it
6+
7+
Enter a command, `uvicorn main:app` to run it

app.py

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,14 @@
11
# -*- coding: utf-8 -*-
2-
import flask
3-
from pythainlp.tokenize import word_tokenize
4-
app = flask.Flask(__name__)
2+
from fastapi import Depends, FastAPI, Header, HTTPException
3+
from routers import tag, tokenize
54

6-
@app.route("/")
5+
app = FastAPI()
6+
7+
8+
@app.get("/")
79
def hello():
8-
return "Hello World!"
10+
return {"Hello": "World"}
911

10-
@app.route("/api/word_tokenize", methods=['GET','POST'])
11-
@app.route("/api/v1/word_tokenize", methods=['GET','POST'])
12-
def word_tokenize_api():
13-
if flask.request.method == 'POST':
14-
source = flask.request.values.get('source')
15-
engine = flask.request.values.get('engine')
16-
else:
17-
source = flask.request.args.get('source')
18-
engine = flask.request.args.get('engine')
19-
if engine==None:
20-
engine='newmm'
21-
return '|'.join(word_tokenize(source,engine=engine))
2212

23-
if __name__ == '__main__':
24-
app.run()
13+
app.include_router(tag.router)
14+
app.include_router(tokenize.router)

requirements.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
flask
2-
pythainlp
1+
fastapi
2+
pythainlp
3+
uvicorn
4+
pytest

routers/__init__.py

Whitespace-only changes.

routers/tag.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from fastapi import APIRouter
2+
from pythainlp import tag
3+
4+
router = APIRouter()
5+
6+
@router.get('/tag/pos_tag', tags=["tag"])
7+
def part_of_speech_tagging(q: str, engine: str = None, corpus: str = None):
8+
words = pythainlp.tokenize.word_tokenize(q)
9+
if engine == None:
10+
engine = 'perceptron'
11+
if corpus == None:
12+
corpus='orchid'
13+
return tag.pos_tag(words, engine, corpus)

routers/tokenize.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from fastapi import APIRouter
2+
from pythainlp import tokenize
3+
4+
router = APIRouter()
5+
6+
@router.get('/tokenize/word_tokenize', tags=["tokenize"])
7+
def word_tokenize(q: str, engine: str = None):
8+
if engine == None:
9+
engine='newmm'
10+
return '|'.join(tokenize.word_tokenize(q,engine=engine))

0 commit comments

Comments
 (0)