Spaces:
Running
Running
title: slotmatch | |
emoji: 🧩 | |
colorFrom: purple | |
colorTo: indigo | |
sdk: static | |
pinned: false | |
--- | |
--- | |
[](https://pypi.org/project/slotmatch/) | |
[](https://opensource.org/licenses/MIT) | |
# SlotMatch | |
**SlotMatch** is a lightweight Python package for extracting structured key-value pairs from unstructured or noisy LLM outputs. It supports regex-based parsing, fuzzy key recovery, schema validation, and confidence scoring. Perfect for production RAG, chatbot, and NLU pipelines. | |
--- | |
## Installation | |
```bash | |
pip install slotmatch | |
## Features | |
- Regex-based value extraction | |
- Fuzzy key mapping (e.g., intnt → intent) | |
- Schema validation for expected keys and types | |
- Type coercion (str, int, float, bool) | |
- Confidence scoring (regex = high, fuzzy = partial, fallback = 0) | |
- Lightweight, no external dependencies | |
## Usage | |
from slotmatch import SlotExtractor | |
schema = { | |
"name": str, | |
"intent": str, | |
"destination": str | |
} | |
llm_output = ''' | |
Hi, I'm Alice. | |
{ | |
"intnt": "book_flight", | |
"dest": "NYC", | |
"name": "Alice" | |
} | |
''' | |
extractor = SlotExtractor(schema) | |
print(extractor.extract(llm_output)) | |
## Output | |
{ | |
'name': {'value': 'Alice', 'confidence': 1.0}, | |
'intent': {'value': 'book_flight', 'confidence': ~0.64}, | |
'destination': {'value': None, 'confidence': 0.0} | |
} | |
## Example Use Cases | |
- Post-processing LLM outputs (chatbots, assistants, tools) | |
- Extracting form fields or user intents | |
- Structuring data for downstream APIs or storage | |
- Integrating LLMs with business logic (field validation, routing) | |
## License | |
This project is licensed under the MIT License. |