konlpy-homi

remote konlpy client


Keywords
grpc, grpc-python, grpc-requests, homi, konlpy
License
GPL-3.0
Install
pip install konlpy-homi==0.0.2

Documentation

KoNLPy-homi

PyPI - Python Version PyPI PyPI download month Views

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κ°€ λ°œμƒ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·Έ μ™Έμ—λŠ” μ•„λž˜μ™€ 같은 λͺ‡κ°€μ§€ μš”μΈμ΄ μžˆμŠ΅λ‹ˆλ‹€.

  1. λ‘œμ»¬μ—μ„œ 직접 κ΅¬λ™ν•˜λŠ” 것과 달리 μ„œλ²„μ™€ 데이터λ₯Ό μ£Όκ³  λ°›λ‹€λ³΄λ‹ˆ λ„€νŠΈμ›Œν¬ ν™˜κ²½μ— 영ν–₯을 λ°›μŠ΅λ‹ˆλ‹€.
  2. ν˜„μž¬ GCP Cloud Run은 μ„œμšΈλ¦¬μ „μ΄ μ•„λ‹Œ 도쿄 리전을 지원 ν•˜λ‹€λ³΄λ‹ˆ 이에 λŒ€ν•œ λ ˆμ΄ν„΄μ‹œκ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€.(ν–₯ν›„ μ„œμšΈ 리전에 cloud run이 μΆœμ‹œν•˜λ©΄ 이전할 μ˜ˆμ •μž…λ‹ˆλ‹€.)
  3. μ„œλ²„ μ΅œμ ν™” 이슈(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