Text Generation
Transformers
Safetensors
Korean
exaone4
pii
privacy
korean
ner
token-classification
exaone
lora
Teeem
conversational
Instructions to use flowos/teeem-pii-ko-1.2b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use flowos/teeem-pii-ko-1.2b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="flowos/teeem-pii-ko-1.2b") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("flowos/teeem-pii-ko-1.2b") model = AutoModelForCausalLM.from_pretrained("flowos/teeem-pii-ko-1.2b") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use flowos/teeem-pii-ko-1.2b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "flowos/teeem-pii-ko-1.2b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "flowos/teeem-pii-ko-1.2b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/flowos/teeem-pii-ko-1.2b
- SGLang
How to use flowos/teeem-pii-ko-1.2b with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "flowos/teeem-pii-ko-1.2b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "flowos/teeem-pii-ko-1.2b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "flowos/teeem-pii-ko-1.2b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "flowos/teeem-pii-ko-1.2b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use flowos/teeem-pii-ko-1.2b with Docker Model Runner:
docker model run hf.co/flowos/teeem-pii-ko-1.2b
| /** | |
| * ํ๊ตญ ์ฃผ์ (Korean Address) detection. | |
| * Heuristic: detects Korean address patterns by structural markers. | |
| * Markers: ์, ๋, ๊ตฌ, ๊ตฐ, ์, ๋ฉด, ๋, ๋ฆฌ, ๋ก, ๊ธธ, ๋ฒ์ง, ์ํํธ, ์ธต, ํธ | |
| */ | |
| import type { PIIDetection } from "@klawn/shared"; | |
| // Korean address structural pattern: | |
| // [์/๋] [์/๊ตฐ/๊ตฌ]+ [๋/์/๋ฉด/๋ฆฌ/๋ก/๊ธธ] [๋ฒ์ง] [๊ฑด๋ฌผ/์ํํธ] [๋/์ธต/ํธ] | |
| // Supports variable admin levels (e.g., ๊ฒฝ๊ธฐ๋ ์ฑ๋จ์ ๋ถ๋น๊ตฌ ํ๊ต๋ก 789๋ฒ์ง) | |
| const ADDRESS_REGEX = | |
| /(?:์์ธ|๋ถ์ฐ|๋๊ตฌ|์ธ์ฒ|๊ด์ฃผ|๋์ |์ธ์ฐ|์ธ์ข |๊ฒฝ๊ธฐ|๊ฐ์|์ถฉ๋ถ|์ถฉ๋จ|์ ๋ถ|์ ๋จ|๊ฒฝ๋ถ|๊ฒฝ๋จ|์ ์ฃผ)(?:ํน๋ณ์|๊ด์ญ์|ํน๋ณ์์น์|ํน๋ณ์์น๋|๋)?\s?(?:[\uAC00-\uD7A3]+(?:์|๊ตฐ|๊ตฌ|๋|์|๋ฉด|๋ฆฌ|๋ก|๊ธธ)\s?){1,4}[\uAC00-\uD7A3\d\s\-]*?\d+(?:๋ฒ์ง|๋ฒ)?/g; | |
| // Simpler fallback: detect by marker density | |
| const MARKERS = ["์ ", "๊ตฌ ", "๋ ", "๋ก ", "๊ธธ ", "๋ฒ์ง", "์ํํธ", "์ธต", "ํธ"]; | |
| export function detectAddress(text: string): PIIDetection[] { | |
| const results: PIIDetection[] = []; | |
| let match: RegExpExecArray | null; | |
| // Primary: structured regex | |
| ADDRESS_REGEX.lastIndex = 0; | |
| while ((match = ADDRESS_REGEX.exec(text)) !== null) { | |
| results.push({ | |
| type: "ADDRESS", | |
| value: match[0].trim(), | |
| start: match.index, | |
| end: match.index + match[0].length, | |
| confidence: 0.8, | |
| }); | |
| } | |
| return results; | |
| } | |