Skip to content

Redesigned KoNLPy (Wrapper) for Usability and Portability with gRPC. [EXPERIMENTAL]

License

Notifications You must be signed in to change notification settings

minhoryang/KoNLPy-gRPC

Repository files navigation

KoNLPy-gRPC

Redesigned KoNLPy (Wrapper) for Usability and Portability with gRPC.

Try Now!

Run on Ainize

Requirements:

pip install poetry
pip install -r $(python manage.py requirements.txt) -r $(python manage.py requirements-dev.txt)

gRPC Compile needed!

python -m grpc_tools.protoc -I protos/ --python_out=konlpy_grpc/_generated/ --grpc_python_out=konlpy_grpc/_generated/ protos/*.proto

Server

python -m pip install konlpy
python -m konlpy_grpc server
python -m konlpy_grpc hannanum_server
python -m konlpy_grpc kkma_server
python -m konlpy_grpc komoran_server
python -m konlpy_grpc mecab_server
python -m konlpy_grpc okt_server

Tests

python -m pytest
python -m pytest --grpc-fake-server
python -m pytest --grpc-real-server=[::]:50051
python -m pytest --konlpy-repo=../konlpy

Release

rm -rf dist/
poetry publish --build -r test
poetry run twine upload --repository-url https://test.pypi.org/legacy/ dist/*

TODO

  • [P0] client.py will be a konlpy-alike module.
    • [P0] KoNLPy monkey-patcher
  • [P1] Packaging with Poetry pyproject.toml.
    • PyPI Register
    • Find lowerbound-version of requirements.
  • [P1] gRPC Proto Compile
  • [P1] In-house tool: manage.py
  • [P1] KoNLPy Version Matching (set minimum) and Follow-up
  • [P1] gRPC retry/timeout/error_handling logic
  • [P1] gRPC reflection
  • [P1] gRPC heartbeat
  • [P1] gRPC Gateway (gRPC to JSON)
  • [P2] Dockerize / Register
    • k8s and istio?
  • [P2] CI
  • [P3] Button for deploying this to AWS/GCS/Azure now! (and connect by README.)
  • [P3] CustomDic?
  • [P3] Stream I/O
  • [P3] Redesign tests/ with grpc-testing
  • [P4] Java Edition for KoNLPy-gRPC-Server
    • gRPC protos deploy/versioning

Additional Links

License

GNU GPLv3