File size: 2,061 Bytes
c6e7a78 e833ff7 2a3f391 c6e7a78 e833ff7 2a3f391 e833ff7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | ---
title: WygLore Leaf Korean NER
sdk: docker
app_port: 7860
pinned: false
---
# WygLore Leaf โ Korean NER endpoint
`wl-ko-ner-v2` (RP ๋๋ฉ์ธ ์ ์) ONNX ๋ฅผ CPU ๋ก ์๋น. ํ๊ตญ์ด ํ
์คํธ -> ์ํฐํฐ ์คํฌ (PS / LC / OG / DT / TI / QT).
- **์ฉ๋**: WygLore Leaf ํ๋ฌ๊ทธ์ธ์ *๋ชจ๋ฐ์ผ ์ ๋ฉ๋ชจ๋ฆฌ ํด๋ฐฑ* โ on-device ๋ก ๋ชจ๋ธ(215-430MB)์ ๋ชป ์ฌ๋ฆฌ๋ ๊ธฐ๊ธฐ๊ฐ ์ด ์๋ํฌ์ธํธ์ *NER ์ถ๋ก ๋ง* ์์. canon-์ต์ปค / POS ํํฐ / assemble ์ ํ๋ฌ๊ทธ์ธ JS ๊ฐ ๊ทธ๋๋ก ์ํ.
- **๋ชจ๋ธ**: [m6dd8m/wl-ko-ner-v2](https://huggingface.co/m6dd8m/wl-ko-ner-v2) (CC-BY-SA-4.0). ํ ํฌ๋์ด์ ๋ base `monologg/koelectra-base-v3-discriminator`.
- **์ถ๋ ฅ ๋ชจ์**: on-device `ner.js` ์ ๋์ผ โ `[{text, type, score, start, end}, ...]`.
- **API** (FastAPI, ํ ๋ฐฉ JSON):
- `POST /extract` โ `{"text":"..."}` -> `{"entities":[{text,type,score,start,end}, ...]}`
- `POST /extract_batch` โ `{"texts":[...]}` -> `{"results":[[...], ...]}` (์ฝ๋์คํํธ ๋ฐฐ์น, max 512)
- `GET /health` -> `{ok, model, onnx}` ยท `GET /docs` -> ์ธํฐ๋ํฐ๋ธ Swagger UI
- UI(ํ
์คํธ์ฉ)๋ `/` ๊ทธ๋๋ก. ํ๋ฌ๊ทธ์ธ์ `/extract` ๋ฅผ `host.nativeFetch` ๋ก ํธ์ถ. โป fastapi/uvicorn ์ gradio ์์กด์ฑ์ด๋ผ requirements ๋ถ์.
## ํ๊ณ / TODO (ํ๋ก๋์
์ )
- ๋ฌด๋ฃ CPU Space: 48h *๋ฌดํธ๋ํฝ* ์ sleep -> ์ฒซ ์์ฒญ ~30-60s wake (์ผ์ผ ํธ๋ํฝ ์์ผ๋ฉด ๊ณ์ ๊นจ์ด์์).
- abuse ๋ณดํธ ์์ (public URL) โ rate-limit / ํ ํฐ์ FastAPI ์ด์ฃผ ์ ์ถ๊ฐ.
- ํ๋ผ์ด๋ฒ์ (๋ฏผ๊ฐ ์ ์ ): ์ฑ์ด ์ฌ์ฉ์ ํ
์คํธ๋ฅผ *๋ก๊ทธ/์ ์ฅ/ํ์ต ์ ํจ* (stateless) ยท gradio analytics OFF ยท uvicorn access_log OFF ยท HTTPS. ๋จ ํ
์คํธ๊ฐ HF ์ธํ๋ผ๋ฅผ *๊ฒฝ์ *๋ ํจ -> ์๋ฒ ๊ฒฝ๋ก๋ ํ๋ฌ๊ทธ์ธ์์ **opt-in + ๊ณ ์ง** (์๋ ๋ผ์ฐํ
X). ์์ -๋ก์ปฌ ์ํ๋ฉด on-device/lean (๋ก์ปฌ Ollama ์ ์ ๋ฑ).
- ์ฒซ ๋ถํ
๋ก๊ทธ(`[boot] ...`)์์ (a) ์ด๋ค onnx ๊ฐ ์ ํ๋๋์ง, (b) `id2label` ์ด `B-PS..` ์ธ์ง(=์ ์) `LABEL_0..` ์ธ์ง(=๋ผ๋ฒจ๋งต ํ์) ํ์ธ.
|