--- title: NER Server emoji: 🏷️ colorFrom: blue colorTo: green sdk: docker app_port: 7860 pinned: false --- # NER Server Zero-shot Named Entity Recognition HTTP API powered by [GLiNER](https://github.com/urchade/GLiNER). Supports **English · Chinese · Arabic · mixed-language** text. ## Quick Start ```bash # 最简调用:不传 labels,自动使用内置双语标签集 curl -X POST https://robinwu-nerserver.hf.space/api/v1/extract \ -H "Content-Type: application/json" \ -d '{"text": "马云创立了阿里巴巴,总部在杭州。"}' # 自定义标签(自动补充双语对等标签提升召回) curl -X POST https://robinwu-nerserver.hf.space/api/v1/extract \ -H "Content-Type: application/json" \ -d '{"text": "Elon Musk founded SpaceX.", "labels": ["full name of a person", "company or organization name"]}' ``` ## API Base URL: `https://robinwu-nerserver.hf.space` ### `GET /api/v1/health` ```json {"status": "ok"} ``` ### `POST /api/v1/extract` **Request** | Field | Type | Required | Default | Description | |---|---|---|---|---| | `text` | string | ✓ | — | Input text | | `labels` | string[] | — | `[]` | Entity type labels. **Empty = use built-in bilingual defaults.** Bilingual pairs are auto-expanded. | | `threshold` | float [0,1] | — | `0.4` | Minimum confidence. Lower → more entities; higher → more precise. | | `language` | `auto`/`en`/`zh`/`ar`/`mixed` | — | `auto` | Language hint (auto-detected when omitted). | **Example — labels omitted (auto bilingual defaults)** ```json {"text": "张伟加入了 Google 北京研发中心,负责 Android 系统优化。"} ``` ```json { "entities": [ {"text": "张伟", "label": "人名或姓名", "score": 0.91, "start": 0, "end": 2}, {"text": "Google", "label": "company or organization name", "score": 0.95, "start": 6, "end": 12}, {"text": "Android", "label": "product or technology name", "score": 0.88, "start": 20, "end": 27} ], "labels_used": ["full name of a person", "人名或姓名", "company or organization name", "..."] } ``` **Example — custom labels (bilingual auto-expansion)** ```json { "text": "Elon Musk founded SpaceX in Hawthorne, California.", "labels": ["full name of a person", "company or organization name", "geographical location"], "threshold": 0.5 } ``` ```json { "entities": [ {"text": "Elon Musk", "label": "full name of a person", "score": 0.98, "start": 0, "end": 9 }, {"text": "SpaceX", "label": "company or organization name", "score": 0.97, "start": 18, "end": 24}, {"text": "Hawthorne", "label": "geographical location", "score": 0.91, "start": 28, "end": 37}, {"text": "California", "label": "geographical location", "score": 0.95, "start": 39, "end": 49} ], "labels_used": ["full name of a person", "人名或姓名", "company or organization name", "..."] } ``` ## Built-in Bilingual Label Pairs When `labels` is empty, the following label pairs are used automatically: | English | 中文 | |---|---| | full name of a person | 人名或姓名 | | company or organization name | 公司或组织机构名称 | | geographical location | 地名或城市 | | product or technology name | 产品或技术名称 | | date or year | 日期或年份 | | hospital or medical institution | 医院或医疗机构名称 | | university or research institution | 大学或研究机构 | | project or initiative name | 项目或计划名称 | | legislation or policy name | 法规或政策名称 | | monetary amount | 金额或货币 | | job title or position | 职位或头衔 | | event name | 事件或活动名称 | When you provide custom labels, each label is automatically paired with its counterpart (e.g. passing `"人名或姓名"` also activates `"full name of a person"` internally). ## Environment Variables | Variable | Default | Description | |---|---|---| | `MODEL_NAME` | `knowledgator/gliner-multitask-large-v0.5` | GLiNER model | | `PORT` | `7860` | Listen port (fixed by HF Spaces) | | `MODEL_CACHE_DIR` | `/app/model_cache` | Model cache path | | `HF_ENDPOINT` | *(huggingface.co)* | Override with a mirror URL | ## Interactive Docs - Swagger UI: `/docs` - ReDoc: `/redoc`