Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/litsynp/flask-g2pk
Docker, Flask로 g2pk를 설치해 API로 제공하는 예제
https://github.com/litsynp/flask-g2pk
docker flask g2pk m1-mac
Last synced: about 9 hours ago
JSON representation
Docker, Flask로 g2pk를 설치해 API로 제공하는 예제
- Host: GitHub
- URL: https://github.com/litsynp/flask-g2pk
- Owner: litsynp
- Created: 2022-07-20T14:33:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-07-20T14:39:08.000Z (over 2 years ago)
- Last Synced: 2023-03-05T02:38:14.965Z (over 1 year ago)
- Topics: docker, flask, g2pk, m1-mac
- Language: Dockerfile
- Homepage:
- Size: 5.86 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# flask-g2pk
Flask로 [`g2pk`](https://github.com/Kyubyong/g2pK) 설치해 API로 제공하는 예제입니다.
## 특이사항
- 테스트 환경은 Macbook Pro macOS Monterey 12.4 with **M1** 입니다.
- M1 (ARM 기반)에서 mecab 등이 제대로 설치되지 않는 것 같아 `docker-compose.yml`에서 `platform`을 `AMD64`로 바꿨습니다.
- `g2pk`의 의존성으로 추가된 모듈인 [`python-mecab-ko`](https://github.com/jonghwanhyeon/python-mecab-ko) 설치에서 매우 오래 걸립니다. (평균 13+분)
- Dockerfile에서 `alpine` 기반으로 Mecab 설치하는 예시를 찾지 못해 `apt get`으로 설치하는 이미지를 base로 했습니다.
- `apt get` 및 Mecab 설치 스크립트를 통해 Mecab을 설치합니다.
- `requirements.txt`로 모듈을 빼둘 수도 있었으나 특정 모듈은 그대로 남겨뒀습니다.
- flask 관련 환경변수는 `python-dotenv`를 이용해 `.flaskenv`를 자동으로 읽는 방식입니다. 공식문서 참고 바랍니다.
## 서버 실행
`docker-compose up`, `docker-compose down`, `docker-compose up --build` 등을 적절히 활용하셔서 사용하면 됩니다.
## API
`http://localhost:8000`에서 열립니다.
- `GET /`
- hello world를 반환합니다. 테스트용입니다.
- `GET /mecab?q=<한글입력>`
- `Mecab` 예시입니다.
- 아무것도 입력 안하면 디폴트값이 들어갑니다.
- 출력 예시
```json
{
"morphs": ["영등포구청역", "에", "있", "는", "맛집", "좀", "알려", "주", "세요", "."],
"nouns": ["영등포구청역", "맛집"],
"pos": [
["영등포구청역", "NNP"],
["에", "JKB"],
["있", "VV"],
["는", "ETM"],
["맛집", "NNG"],
["좀", "MAG"],
["알려", "VV+EC"],
["주", "VX"],
["세요", "EP+EF"],
[".", "SF"]
]
}
```- `GET /g2pk?q=<한글입력>`
- `g2pk` 예시입니다.
- 아무것도 입력 안하면 디폴트값이 들어갑니다.
```json
{
"result": "시늘 신꼬 얼른 동사무소에 가서 호닌 신고 해라"
}
```## REF
[Dockerfile 출처](https://somjang.tistory.com/entry/Docker-ubuntu1604-%EA%B8%B0%EB%B0%98%EC%97%90%EC%84%9C-mecab-ko-%ED%99%9C%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95)