Plugins
Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.
Plugins
Section titled “Plugins”Plugins extend Open Ticket AI with additional capabilities. Each plugin provides services and pipes that you can use in your configuration to connect to different ticket systems, run ML models, or add custom processing logic.
What is a Plugin?
Section titled “What is a Plugin?”A plugin is a Python package that adds new functionality to Open Ticket AI:
- Services: Connect to ticket systems (OTOBO, Znuny), ML models, or external APIs
- Pipes: Fetch tickets, classify content, update fields, add notes, or run custom logic
- Ready to Use: Just install, configure, and reference in your YAML
How to Install Plugins
Section titled “How to Install Plugins”Install plugins using the uv package manager:
# Install a single pluginuv add otai-otobo-znuny
# Install multiple plugins at onceuv add otai-otobo-znuny otai-hf-localThat’s it! Once installed, the plugin’s services and pipes are automatically available in your configuration.
How to Use Plugins in Configuration
Section titled “How to Use Plugins in Configuration”Plugins provide services and pipes that you reference in your YAML configuration using the format
plugin-name:ComponentName.
Example: Complete Workflow with Plugins
Section titled “Example: Complete Workflow with Plugins”# Define services from pluginsservices: ticket_system: use: 'otobo-znuny:OTOBOZnunyTicketSystemService' params: base_url: "{{ get_env('OTOBO_URL') }}" username: "{{ get_env('OTOBO_USER') }}" password: "{{ get_env('OTOBO_PASSWORD') }}"
classifier: use: 'hf-local:HuggingFaceLocalTextClassificationService' params: model_name: 'distilbert-base-uncased-finetuned-sst-2-english'
# Use plugin pipes in your pipelineorchestrator: runners: - run: id: fetch_tickets use: 'base:FetchTicketsPipe' injects: ticket_system: 'ticket_system' params: ticket_search_criteria: queue_name: 'Support' state: 'new' limit: 25
- run: id: classify_tickets use: 'hf-local:TextClassificationPipe' injects: classifier: 'classifier' params: tickets: "{{ get_pipe_result('fetch_tickets', 'fetched_tickets') }}"
- run: id: update_tickets use: 'base:UpdateTicketPipe' injects: ticket_system: 'ticket_system' params: ticket_id: '{{ ticket.id }}' queue: '{{ classification.label }}'Available Plugins
Section titled “Available Plugins”Base Plugin
Section titled “Base Plugin”Package: otai-base (installed automatically with Open Ticket AI)
The Base plugin provides core functionality that works with any ticket system:
Pipes:
base:FetchTicketsPipe- Fetch tickets from your ticket systembase:UpdateTicketPipe- Update ticket fields (queue, priority, state, etc.)base:AddNotePipe- Add notes or comments to ticketsbase:ExpressionPipe- Evaluate dynamic expressions and conditional logic
Example:
orchestrator: runners: - run: id: fetch_new_tickets use: 'base:FetchTicketsPipe' injects: ticket_system: 'my_ticket_system' params: ticket_search_criteria: state: 'new' limit: 50OTOBO/Znuny Plugin
Section titled “OTOBO/Znuny Plugin”Package: otai-otobo-znuny
Connect to OTOBO, Znuny, and OTRS ticket systems.
Installation:
uv add otai-otobo-znunyWhat it provides:
- Full integration with OTOBO, Znuny, and OTRS
- Ticket fetching, updating, and note management
- Queue, priority, and state management
Example Configuration:
services: otobo: use: 'otobo-znuny:OTOBOZnunyTicketSystemService' params: base_url: 'https://helpdesk.example.com' username: "{{ get_env('OTOBO_USER') }}" password: "{{ get_env('OTOBO_PASSWORD') }}"
orchestrator: runners: - run: id: fetch use: 'base:FetchTicketsPipe' injects: ticket_system: 'otobo' params: ticket_search_criteria: queue_name: 'IT Support' state: 'new'HuggingFace Local Plugin
Section titled “HuggingFace Local Plugin”Package: otai-hf-local
Run machine learning classification models locally using HuggingFace transformers.
Installation:
uv add otai-hf-localWhat it provides:
- Local ML model inference (no external API calls)
- Text classification for ticket content
- Support for any HuggingFace text classification model
Example Configuration:
services: ml_classifier: use: 'hf-local:HuggingFaceLocalTextClassificationService' params: model_name: 'distilbert-base-uncased-finetuned-sst-2-english' # Or use your custom fine-tuned model # model_name: "my-org/custom-ticket-classifier"
orchestrator: runners: - run: id: classify use: 'hf-local:TextClassificationPipe' injects: classifier: 'ml_classifier' params: text: '{{ ticket.title }} {{ ticket.body }}'Benefits of the Plugin System
Section titled “Benefits of the Plugin System”Install Only What You Need:
- Don’t use OTOBO? Don’t install the OTOBO plugin
- Running classification in the cloud? Skip the HuggingFace plugin
- Keeps your installation lightweight
Mix and Match:
- Use OTOBO plugin with HuggingFace models
- Combine multiple ticket systems in one setup
- Add community plugins as they become available
Independent Updates:
- Update plugins without updating core
- Get new features faster
- Roll back individual plugins if needed
Plugin Naming Convention
Section titled “Plugin Naming Convention”When you use plugins in configuration, the format is:
plugin-name:ComponentNameExamples:
base:FetchTicketsPipe- FetchTicketsPipe from the base pluginotobo-znuny:OTOBOZnunyTicketSystemService- Service from the otobo-znuny pluginhf-local:TextClassificationPipe- Pipe from the hf-local plugin
The plugin name is derived from the package name by removing otai- prefix.
For Developers
Section titled “For Developers”Want to create your own plugin? Whether free or commercial, you have complete freedom!
See the Plugin Development Guide for:
- How to build custom plugins
- Publishing to PyPI
- Monetization strategies for commercial plugins
- Getting your plugin listed