KoNLPy-homi
KoNLPy-grpcμ homi κΈ°λ°μΌλ‘ 리νν λ§ν νλ‘μ μ§νΈ μ λλ€. λν 무λ£λ‘ κΈ°λ³Έ grpc μλ²λ₯Ό μ 곡νκ³ μμ΅λλ€. κ·Έλμ νμ΅μ λͺ©μ μΌλ‘ konlpyλ₯Ό μ¬μ© νμλ λΆλ€μ΄λΌλ©΄ λ‘컬μμ grpc μλ² νΉμ jvm ꡬλ μμ΄ λ°λ‘ konlpyλ₯Ό μ¬μ© ν μ μμ΅λλ€.
Remote Client
install konlpy-homi
pip install konlpy-homi
patch & ues it!
import konlpy_homi
# if you want connect other server
# konlpy_homi.set_endpoint('localhost:50051')
konlpy_homi.patch()
import konlpy
# use it same as konlpy
print(konlpy.tag.Hannanum().analyze('λ
Έλ©λΌμ΄μ¦ ν
μ€νΈ κ°λ¨γ
γ
γ
γ
γ
γ
γ
γ
'))
μ λ¬΄λ£ μλ²λ₯Ό μ 곡νλμ?
μ΄ νλ‘μ νΈλ homi νλ μμν¬ λ° grpc_requestsκ° μ€μ λ‘ μ°κΈ° νΈνκ³ μ±λ₯ μ μΌλ‘ λ¬Έμ μλμ§ νμΈνκΈ° μν΄ μμνμμ΅λλ€. μ°Έκ³ λ‘ GCP CloudRunμΌλ‘ μλΉμ€ μ€μ΄κΈ°μ μ€μ μ΄μ λΉμ©μ κ±°μ λκ°μ§ μμ μ μμ κ±°μ 무λ£λ‘ μλΉμ€λ₯Ό μ 곡κ°λ₯ν©λλ€.
λ§λκ³ μ¨λ λλμ?
νμ¬λ λ³λμ μμ² μ νμ κ±Έμ§ μμμ΅λλ€. λ€λ§, νΈλν½μ΄ νμ¦ ν κ²½μ° ν₯νμλ μμ² μ ν(ex. ipλ³ ν루 μ΅λ 5000ν μμ² κ°λ₯)μ΄ κ±Έλ¦΄μλ μμ΅λλ€.
λ‘μ»¬λ³΄λ€ μλκ° λλ¦°κ±° κ°μμ..
μλ²λ¦¬μ€λ‘ ꡬμΆλ μλ²μ΄κΈ°μ μ΅μ΄ μμ²μ cold startκ° λ°μ ν μ μμ΅λλ€. κ·Έ μΈμλ μλμ κ°μ λͺκ°μ§ μμΈμ΄ μμ΅λλ€.
- λ‘컬μμ μ§μ ꡬλνλ κ²κ³Ό λ¬λ¦¬ μλ²μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ€λ³΄λ λ€νΈμν¬ νκ²½μ μν₯μ λ°μ΅λλ€.
- νμ¬ GCP Cloud Runμ μμΈλ¦¬μ μ΄ μλ λμΏ λ¦¬μ μ μ§μ νλ€λ³΄λ μ΄μ λν λ μ΄ν΄μκ° μ‘΄μ¬ν©λλ€.(ν₯ν μμΈ λ¦¬μ μ cloud runμ΄ μΆμνλ©΄ μ΄μ ν μμ μ λλ€.)
- μλ² μ΅μ ν μ΄μ(cpu,memory, μλ²λ¦¬μ€ νΉμ μ Cold start)
νμ¬ μ΅λν λ‘컬과 κ·Έ κ°κ²©μ μ€μ΄κΈ° μν΄ μ§μμ μΌλ‘ μλ²λ₯Ό κ°μ ν΄ λκ° μμ μ λλ€. νμ§λ§, μλκ° λ리λ€κ³ μμ ν ν¨μ©μ±μ΄ μλ κ²μ μλλλ€. μ²μ μμ°μ΄ μ²λ¦¬λ₯Ό 곡λΆ,κ°λ₯΄μΉμλ λΆλ€μ λ³λμ μΆκ°μ μΈ μ€μΉ μμ΄ λ°λ‘ konlpyλ₯Ό μ¬μ©ν μ μμ΅λλ€. λν μ μ¬μ μ»΄ν¨ν°, AWS λλ€, λΌμ¦λ² 리νμ΄λ± konlpyλ₯Ό μ§μ ꡬλνκΈ° νλ νκ²½μ΄λ λ©ν°νλ‘μΈμ€λ‘ μ¬λ¬ λΆμμ λμμ μλνλ κ²½μ°μ λ€νΈμν¬ μ°κ²°λ§ λμλ€λ©΄ κΈ°μ‘΄κ³Ό λμΌν μ½λλ₯Ό κ°μ§κ³ κ°λ°, μλΉμ€κ° κ°λ₯ν©λλ€. μ°Έκ³ λ‘ νμ¬ Cloud Run μ¬μμ CPU 2, Memory 1.5G μ λλ€. μ§μμ μΈ μ΅μ νλ₯Ό ν΅ν΄ μλ² μ¬μμ΄ λ³κ²½λ μ μμ΅λλ€.
νλ‘λμ μμ μ¬μ© ν΄λ λλμ?
κ°λ₯νλ©΄ νμ΅ λ° κ°λ°λ¨κ³μμ μ¬μ©νκΈΈ κΆν΄λ립λλ€. μμ λ§μλλ Έλ€ μνΌ λμΏ μλ²μ΄κΈ°μ λ μ΄ν΄μκ° λ°μν©λλ€. λν μΈμ λλ μ§ μμ² μ νμ΄ μκΈΈμ μκΈ°μ νλ‘λμ μμ λ λμ»€λ‘ λ³λμ μ μ©μλ²λ₯Ό ꡬμΆνμλκ²μ κΆμ₯ν©λλ€. (ν₯ν helmκΈ°λ°μΌλ‘ μλ² κ΅¬μΆ ν μ μλλ‘ μ§μν μμ μ λλ€.)
μμ²μ΄ κΈ°λ‘ λλμ?
Cloud Runμμ κΈ°λ‘ νλ κΈ°λ³Έμ μΈ μμ²μ 보 μ΄μΈμλ κ·Έ μ΄λ ν μμ² μ 보(μ΄λ€ ν μ€νΈλ₯Ό λΆμ μμ²νλμ§)λ λ³λλ‘ κΈ°λ‘&보κ΄νμ§ μμ΅λλ€. κΈ°λ³Έ μ μΈ μμ² μ 보μλ μμ²μμ ip μμ² μλΉμ€ μ λλ§ κΈ°λ‘λ©λλ€. μ΄λ λλ²κΉ λ° ν₯ν μμ² μ ν κΈ°λ₯ ꡬμΆμ μ νμ μΌλ‘ νμ© λ μ μμ΅λλ€.
run own Server
python -m venv .venv
. ./.venv/bin/activate
pip install -r requirements-dev.txt
cd src && homi run konlpy_homi/app.py
Make Stubs
python -m grpc_tools.protoc -I protos/ --python_out=src/ --grpc_python_out=src/ protos/konlpy_homi/api/*/*.proto
Additional Links
License
GNU GPLv3