| --- |
| 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..` ์ธ์ง(=๋ผ๋ฒจ๋งต ํ์) ํ์ธ. |
|
|