Entwicklerinformationen für die ATC Community Edition
Überblick
Die ATC Community Edition ist eine On-Premise-Lösung zur automatisierten Klassifizierung von Support-Tickets. Die aktuelle MVP-Version wird über eine YAML-Konfigurationsdatei gesteuert und per CLI gestartet. Es gibt keine REST API zum Hochladen von Trainingsdaten oder zum Auslösen eines Trainingslaufs.
Softwarearchitektur
Die Anwendung besteht im Wesentlichen aus den folgenden Paketen:
- core – Basisklassen, Konfigurationsmodelle und Hilfsfunktionen.
- run – enthält die Pipeline für die Ticket-Klassifizierung.
- ticket_system_integration – Adapter für verschiedene Ticketsysteme.
- main.py – CLI-Einstiegspunkt, der den Scheduler und den Orchestrator startet.
Der Orchestrator führt konfigurierbare AttributePredictors
aus, die sich aus DataFetcher
, DataPreparer
, AIInferenceService
und Modifier
zusammensetzen. Alle Komponenten werden in der config.yml
definiert und beim Programmstart validiert.
Ein Beispielbefehl zum Starten der Anwendung:
python -m open_ticket_ai.src.ce.main start
Training benutzerdefinierter Modelle
Ein direktes Training über die Anwendung ist im MVP nicht vorgesehen. Vor-trainierte Modelle können in der Konfiguration spezifiziert und verwendet werden. Wenn ein Model angepasst oder neu erstellt werden muss, muss dies außerhalb der Anwendung geschehen.
Erweiterung
Benutzerdefinierte Fetcher, Preparer, KI-Services oder Modifier können als Python-Klassen implementiert und über die Konfiguration registriert werden. Dank Dependency Injection können neue Komponenten einfach integriert werden.
Wie man eine benutzerdefinierte Pipe hinzufügt
Die Verarbeitungspipeline kann mit eigenen Pipe-Klassen erweitert werden. Eine Pipe ist eine Arbeitseinheit, die einen PipelineContext
empfängt, diesen modifiziert und zurückgibt. Alle Pipes erben von der Pipe
-Basisklasse, die bereits das Providable
-Mixin implementiert.
- Erstellen Sie ein Konfigurationsmodell für Ihre Pipe, falls diese Parameter benötigt.
- Leiten Sie von
Pipe
ab und implementieren Sie dieprocess
-Methode. - Überschreiben Sie
get_provider_key()
, wenn Sie einen benutzerdefinierten Schlüssel wünschen.
Das folgende vereinfachte Beispiel aus der AI_README
zeigt eine Pipe für die Sentiment-Analyse:
class SentimentPipeConfig(BaseModel):
model_name: str = "distilbert/distilbert-base-uncased-finetuned-sst-2-english"
class SentimentAnalysisPipe(Pipe, Providable):
def __init__(self, config: SentimentPipeConfig):
super().__init__(config)
self.classifier = pipeline("sentiment-analysis", model=config.model_name)
def process(self, context: PipelineContext) -> PipelineContext:
ticket_text = context.data.get("combined_text")
if not ticket_text:
context.stop_pipeline()
return context
sentiment = self.classifier(ticket_text)[0]
context.data["sentiment"] = sentiment["label"]
context.data["sentiment_confidence"] = sentiment["score"]
return context
@classmethod
def get_provider_key(cls) -> str:
return "SentimentAnalysisPipe"
Nach der Implementierung der Klasse registrieren Sie diese in Ihrer Dependency-Injection-Registry und referenzieren sie in der config.yml
über den von get_provider_key()
zurückgegebenen Provider-Schlüssel.
Wie man ein neues Ticketsystem integriert
Um ein anderes Helpdesk-System anzubinden, implementieren Sie einen neuen Adapter, der von TicketSystemAdapter
erbt. Der Adapter konvertiert zwischen der externen API und den einheitlichen Modellen des Projekts.
- Erstellen Sie eine Adapter-Klasse, z.B.
FreshdeskAdapter(TicketSystemAdapter)
. - Implementieren Sie alle abstrakten Methoden:
find_tickets
find_first_ticket
create_ticket
update_ticket
add_note
- Übersetzen Sie Daten zu und von den
UnifiedTicket
- undUnifiedNote
-Modellen. - Stellen Sie ein Konfigurationsmodell für Anmeldeinformationen oder API-Einstellungen bereit.
- Registrieren Sie den Adapter in
create_registry.py
, damit er aus der YAML-Konfiguration instanziiert werden kann.
Sobald der Adapter registriert ist, geben Sie ihn im system
-Abschnitt der config.yml
an, und der Orchestrator wird ihn zur Kommunikation mit dem Ticketsystem verwenden.
Zusammenfassung
Die ATC Community Edition bietet in ihrer MVP-Version einen lokal ausgeführten Workflow zur automatischen Ticket-Klassifizierung. Alle Einstellungen werden über YAML-Dateien verwaltet; es ist keine REST API verfügbar. Für das Training müssen externe Prozesse oder Skripte verwendet werden.