Files
getzep--graphiti/examples/gliner2/README.md
T
wehub-resource-sync 4a19d70af1
Lint with Ruff / ruff (push) Has been cancelled
MCP Server Tests / live-mcp-tests (push) Has been cancelled
Tests / unit-tests (push) Has been cancelled
Tests / database-integration-tests (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Server Tests / live-server-tests (push) Has been cancelled
Pyright Type Check / pyright (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:38:54 +08:00

53 lines
2.1 KiB
Markdown

# GLiNER2 Hybrid LLM Client Example (Experimental)
> **Note:** The `GLiNER2Client` is experimental and may change in future releases.
This example demonstrates using [GLiNER2](https://github.com/fastino-ai/GLiNER2) as a hybrid LLM client for Graphiti. GLiNER2 handles entity extraction (NER) locally on CPU, while a general-purpose LLM client handles edge/fact extraction, deduplication, summarization, and other reasoning tasks.
- Paper: [GLiNER2: An Efficient Multi-Task Information Extraction System with Schema-Driven Interface](https://arxiv.org/abs/2507.18546)
- Models on HuggingFace:
- [fastino/gliner2-base-v1](https://huggingface.co/fastino/gliner2-base-v1) (205M params)
- [fastino/gliner2-large-v1](https://huggingface.co/fastino/gliner2-large-v1) (340M params)
- [fastino/gliner2-multi-v1](https://huggingface.co/fastino/gliner2-multi-v1) (multilingual)
## Prerequisites
- Python 3.11+
- Neo4j 5.26+ ([Neo4j Desktop](https://neo4j.com/download/) or Docker)
- An LLM provider API key (Google, OpenAI, Anthropic, etc.)
## Setup
```bash
# Install graphiti with the gliner2 extra
pip install graphiti-core[gliner2]
# Copy and configure environment variables
cp .env.example .env
```
The GLiNER2 model weights are downloaded automatically on first run.
## LLM and Embedding Providers
The example uses Google Gemini (`gemini-2.5-flash-lite`) for the LLM and embeddings, but `GLiNER2Client` accepts any Graphiti `LLMClient`. To swap providers, replace `GeminiClient` and `GeminiEmbedder` with the equivalent from another provider:
- `graphiti_core.llm_client.openai_client.OpenAIClient`
- `graphiti_core.llm_client.anthropic_client.AnthropicClient`
- `graphiti_core.llm_client.groq_client.GroqClient`
- `graphiti_core.embedder.openai.OpenAIEmbedder`
- `graphiti_core.embedder.voyage.VoyageAIEmbedder`
## Configuration
| Parameter | Description | Default |
|---|---|---|
| `threshold` | GLiNER2 confidence threshold (0.0-1.0). Higher values reduce spurious extractions. | `0.5` |
| `GLINER2_MODEL` | HuggingFace model ID | `fastino/gliner2-large-v1` |
## Running
```bash
python gliner2_neo4j.py
```