otai-hf-local
Hugging Face local text classification plugin for Open Ticket AI - on-premise ML ticket categorization.
Overview
otai-hf-local enables local, privacy-preserving text classification using Hugging Face Transformers. Run state-of-the-art NLP models entirely on-premise for ticket categorization, priority detection, and sentiment analysis without sending data to external services.
Features
- 🤖 Local inference - Run models entirely on your infrastructure
- 🔒 Privacy-first - No data leaves your environment
- 🎯 Pre-trained models - Use any Hugging Face text classification model
- ⚡ GPU acceleration - Optional CUDA support for faster inference
- 🎨 Flexible pipelines - Support for multi-label and single-label classification
- 📊 Confidence scores - Get prediction probabilities
Installation
pip install otai-hf-local
For GPU support:
pip install otai-hf-local[gpu]
Configuration
Add the plugin to your Open Ticket AI configuration:
pipes:
- type: hf_local
params:
model_name: "distilbert-base-uncased-finetuned-sst-2-english"
device: "cpu" # or "cuda" for GPU
batch_size: 8
Usage
Programmatic Usage
from otai_hf_local import HFLocalClassifier
# Initialize classifier
classifier = HFLocalClassifier(
model_name="distilbert-base-uncased-finetuned-sst-2-english",
device="cpu"
)
# Classify text
result = await classifier.classify(
text="The server is down and users cannot login"
)
print(result.label) # e.g., "urgent"
print(result.confidence) # e.g., 0.95
With Open Ticket AI
from open_ticket_ai import OpenTicketAI
# Load configuration with HF Local pipe
app = OpenTicketAI.from_yaml("config.yml")
# Process ticket through classification pipeline
result = await app.process_ticket(ticket)
Supported Models
Any Hugging Face model for text classification, including:
- Sentiment:
distilbert-base-uncased-finetuned-sst-2-english - Zero-shot:
facebook/bart-large-mnli - Multi-label:
joeddav/xlm-roberta-large-xnli - Custom models: Upload your fine-tuned models to Hugging Face
Requirements
- Python 3.13 or higher
- PyTorch 2.0+
- transformers 4.52.4+
- CUDA (optional, for GPU acceleration)
Performance
- CPU: ~50-200ms per classification (depends on model)
- GPU: ~10-50ms per classification
- Batch processing: Up to 10x faster with batching
Documentation
- Full docs: open-ticket-ai.com
- Hugging Face: huggingface.co/transformers
Contributing
Contributions welcome! See the main repository for guidelines.
License
LGPL-2.1-only - See LICENSE.
Related Packages
open-ticket-ai- Core applicationotai-base- Base plugin frameworkotai-zammad- Zammad integrationotai-otobo-znuny- OTOBO/Znuny integration
Links
- Homepage: open-ticket-ai.com
- Repository: GitHub
- Issue Tracker: GitHub Issues
- PyPI: pypi.org/project/otai-hf-local
otai-zammad
Zammad ticket system integration plugin for Open Ticket AI - automated helpdesk and ITSM workflows.
Overview
otai-zammad provides seamless integration between Open Ticket AI and Zammad ticket systems. It enables automated ticket management, AI-powered classification, and intelligent workflow automation for Zammad instances.
Features
- 🎫 Full CRUD operations - Create, read, update, and delete tickets
- 🔍 Advanced search - Query tickets with flexible search criteria
- 📝 Article management - Add notes and articles to tickets
- 🔄 Real-time sync - Keep ticket data synchronized
- 🔐 Secure authentication - Token-based API authentication
- 🎯 Type-safe - Full Pydantic v2 validation
Installation
pip install otai-zammad
Configuration
Add the plugin to your Open Ticket AI configuration:
ticketsystem_service:
type: zammad
params:
base_url: "https://your-zammad.example.com"
access_token: "your-api-token"
timeout: 30.0
verify: true
Usage
Programmatic Usage
from otai_zammad import ZammadTicketsystemService
from open_ticket_ai.models import UnifiedTicket, UnifiedEntity
# Initialize service
service = ZammadTicketsystemService(
base_url="https://your-zammad.example.com",
access_token="your-api-token"
)
# Create a ticket
ticket = await service.create_ticket(
UnifiedTicket(
subject="Issue with VPN",
body="Cannot connect to VPN after update",
queue=UnifiedEntity(name="IT Support"),
priority=UnifiedEntity(name="2 normal"),
customer=UnifiedEntity(name="user@example.com")
)
)
With Open Ticket AI
from open_ticket_ai import OpenTicketAI
# Load configuration
app = OpenTicketAI.from_yaml("config.yml")
# Use the Zammad service
tickets = await app.ticketsystem.find_tickets(limit=10)
Requirements
- Python 3.13 or higher
- Zammad instance with API access
- Valid Zammad API token
Documentation
- Full docs: open-ticket-ai.com
- Zammad API: docs.zammad.org
Contributing
Contributions welcome! See the main repository for guidelines.
License
LGPL-2.1-only - See LICENSE.
Related Packages
open-ticket-ai- Core applicationotai-base- Base plugin frameworkotai-otobo-znuny- OTOBO/Znuny integrationotai-hf-local- Local AI model integration
Links
- Homepage: open-ticket-ai.com
- Repository: GitHub
- Issue Tracker: GitHub Issues
- PyPI: pypi.org/project/otai-zammad
Metadata
Release files for otai-hf-local 1.5.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| otai_hf_local-1.5.14.tar.gz | 9.4 kB | Without provenance | Details for otai_hf_local-1.5.14.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| otai_hf_local-1.5.14-py3-none-any.whl | Python 3 | none | any | Details for otai_hf_local-1.5.14-py3-none-any.whl |
Total release size: 15.4 kB
Release files / otai_hf_local-1.5.14.tar.gz
| Download URL | otai_hf_local-1.5.14.tar.gz |
|---|---|
| Size | 9.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
58dfbb97f101c0aeff30d9d370f6790eca865761ceaa506e5dd49871a56b6dae
|
|
BLAKE2b-256 checksum How to use checksums |
93a9c251a4ead2ac11c1667e5660434925a0ae863867751e34acd8eb3fcff625
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.8
|
Release files / otai_hf_local-1.5.14-py3-none-any.whl
| Download URL | otai_hf_local-1.5.14-py3-none-any.whl |
|---|---|
| Size | 6.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a98f131d95ac6b600e18ed48465a8d7a87a01d10f7bb4d44da4d34020ed5d8e7
|
|
BLAKE2b-256 checksum How to use checksums |
bb56014490954042e4071638f92faab258fa4b5a15262852cf63fe8fd882e291
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.8
|
Security for otai-hf-local 1.5.14
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.