Dokumentation für **/ce/run/managers/*.py
Modul: open_ticket_ai\src\ce\run\managers\orchestrator.py
Orchestrierungs-Hilfsprogramme auf höchster Ebene.
class Orchestrator
Orchestriert die Ausführung von Ticketverarbeitungs-Pipelines. Diese Klasse verwaltet den Lebenszyklus von Pipelines, einschließlich:
- Instanziierung der Pipeline mittels Dependency Injection
- Verarbeitung einzelner Tickets
- Geplante Ausführung von Pipelines
Parameter:
config
() - Konfigurationseinstellungen für den Orchestratorcontainer
() - Dependency-Injection-Container, der Pipeline-Instanzen bereitstellt_logger
() - Logger-Instanz für Orchestrierungsvorgänge_pipelines
() - Dictionary, das Pipeline-IDs auf Pipeline-Instanzen abbildet
#### method def __init__(self, config: OpenTicketAIConfig, container: AbstractContainer)
Initialisiert den Orchestrator mit Konfiguration und DI-Container.
Parameter:
config
() - Konfigurationseinstellungen für den Orchestrator.container
() - Dependency-Injection-Container, der Pipeline-Instanzen bereitstellt.
#### method def process_ticket(self, ticket_id: str, pipeline: Pipeline) -> PipelineContext
Führt eine Pipeline für ein bestimmtes Ticket aus. Erstellt einen Verarbeitungskontext und führt die angegebene Pipeline aus, um das gegebene Ticket zu verarbeiten. Dies ist die Kernmethode für die individuelle Ticketverarbeitung.
Parameter:
ticket_id
() - Eindeutiger Bezeichner des zu verarbeitenden Tickets.pipeline
() - Auszuführende Pipeline-Instanz.
Rückgabe: (PipelineContext
) - Der Ausführungskontext, der die Ergebnisse und den Zustand nach der Pipeline-Ausführung enthält.
#### method def build_pipelines(self) -> None
Instanziiert alle konfigurierten Pipeline-Objekte. Verwendet den Dependency-Injection-Container, um Pipeline-Instanzen basierend auf der Konfiguration zu erstellen. Füllt die interne Pipeline-Registry mit Zuordnungen von Pipeline-IDs zu Instanzen.
#### method def set_schedules(self) -> None
Konfiguriert die geplante Ausführung für alle Pipelines. Führt die folgenden Operationen durch:
- Erstellt Pipelines, falls diese noch nicht instanziiert sind
- Konfiguriert die periodische Ausführung für jede Pipeline gemäß ihrer Zeitplankonfiguration unter Verwendung der
schedule
-Bibliothek
Die Zeitplanung verwendet die folgenden Konfigurationsparameter:
- interval: Numerischer Intervallwert
- unit: Zeiteinheit (z.B. Minuten, Stunden, Tage)
Hinweis:
- Verwendet das
schedule.every(interval).unit
-Muster für die Zeitplanung - Übergibt bei geplanten Ausführungen einen leeren
ticket_id
-Kontext