Ticket-Routing
Diese Anleitung zeigt, wie man Claudes fortschrittliche Sprachverständnisfähigkeiten nutzt, um Kundensupport-Tickets basierend auf Kundenabsicht, Dringlichkeit, Priorisierung, Kundenprofil und mehr im großen Maßstab zu klassifizieren.
Entscheiden Sie, ob Claude für Ticket-Routing verwendet werden sollte
Hier sind einige wichtige Indikatoren dafür, dass Sie ein LLM wie Claude anstelle traditioneller ML-Ansätze für Ihre Klassifizierungsaufgabe verwenden sollten:
Erstellen und implementieren Sie Ihren LLM-Support-Workflow
Verstehen Sie Ihren aktuellen Support-Ansatz
Bevor Sie in die Automatisierung eintauchen, ist es entscheidend, Ihr bestehendes Ticketing-System zu verstehen. Beginnen Sie damit, zu untersuchen, wie Ihr Support-Team derzeit das Ticket-Routing handhabt.
Berücksichtigen Sie Fragen wie:
- Welche Kriterien werden verwendet, um zu bestimmen, welches SLA/Serviceangebot angewendet wird?
- Wird Ticket-Routing verwendet, um zu bestimmen, zu welcher Support-Ebene oder welchem Produktspezialisten ein Ticket geht?
- Gibt es bereits automatisierte Regeln oder Workflows? In welchen Fällen versagen sie?
- Wie werden Grenzfälle oder mehrdeutige Tickets behandelt?
- Wie priorisiert das Team Tickets?
Je mehr Sie darüber wissen, wie Menschen bestimmte Fälle behandeln, desto besser können Sie mit Claude zusammenarbeiten, um die Aufgabe zu erledigen.
Definieren Sie Kategorien für Benutzerabsichten
Eine gut definierte Liste von Benutzerabsichtskategorien ist entscheidend für eine genaue Klassifizierung von Support-Tickets mit Claude. Claudes Fähigkeit, Tickets effektiv innerhalb Ihres Systems zu leiten, ist direkt proportional dazu, wie gut definiert die Kategorien Ihres Systems sind.
Hier sind einige Beispielkategorien und Unterkategorien für Benutzerabsichten.
Neben der Absicht können auch andere Faktoren wie Dringlichkeit, Kundentyp, SLAs oder Sprache das Ticket-Routing und die Priorisierung beeinflussen. Berücksichtigen Sie unbedingt weitere Routing-Kriterien beim Aufbau Ihres automatisierten Routing-Systems.
Erfolgskriterien festlegen
Arbeiten Sie mit Ihrem Support-Team zusammen, um klare Erfolgskriterien zu definieren mit messbaren Benchmarks, Schwellenwerten und Zielen.
Hier sind einige Standardkriterien und Benchmarks bei der Verwendung von LLMs für das Support-Ticket-Routing:
Hier sind einige gängige Erfolgskriterien, die unabhängig davon nützlich sein können, ob ein LLM verwendet wird:
Wählen Sie das richtige Claude-Modell
Die Wahl des Modells hängt von den Kompromissen zwischen Kosten, Genauigkeit und Antwortzeit ab.
Viele Kunden haben festgestellt, dass claude-3-5-haiku-20241022
ein ideales Modell für Ticket-Routing ist, da es das schnellste und kosteneffektivste Modell in der Claude 3-Familie ist und dennoch hervorragende Ergebnisse liefert. Wenn Ihr Klassifizierungsproblem tiefes Fachwissen oder eine große Anzahl von Absichtskategorien mit komplexem Reasoning erfordert, können Sie sich für das größere Sonnet-Modell entscheiden.
Erstellen Sie einen starken Prompt
Ticket-Routing ist eine Art Klassifizierungsaufgabe. Claude analysiert den Inhalt eines Support-Tickets und klassifiziert es in vordefinierte Kategorien basierend auf dem Problemtyp, der Dringlichkeit, der erforderlichen Expertise oder anderen relevanten Faktoren.
Lassen Sie uns einen Ticket-Klassifizierungs-Prompt schreiben. Unser erster Prompt sollte den Inhalt der Benutzeranfrage enthalten und sowohl die Begründung als auch die Absicht zurückgeben.
Probieren Sie den Prompt-Generator auf der Anthropic Console aus, um Claude einen ersten Entwurf für Sie schreiben zu lassen.
Hier ist ein Beispiel für einen Ticket-Routing-Klassifizierungs-Prompt:
Lassen Sie uns die Schlüsselkomponenten dieses Prompts aufschlüsseln:
- Wir verwenden Python f-Strings, um die Prompt-Vorlage zu erstellen, wodurch der
ticket_contents
in die<request>
-Tags eingefügt werden kann. - Wir geben Claude eine klar definierte Rolle als Klassifizierungssystem, das den Ticket-Inhalt sorgfältig analysiert, um die Kernabsicht und die Bedürfnisse des Kunden zu ermitteln.
- Wir weisen Claude an, wie die Ausgabe zu formatieren ist, in diesem Fall seine Begründung und Analyse innerhalb von
<reasoning>
-Tags bereitzustellen, gefolgt vom entsprechenden Klassifizierungslabel innerhalb von<intent>
-Tags. - Wir spezifizieren die gültigen Absichtskategorien: “Support, Feedback, Beschwerde”, “Bestellverfolgung” und “Rückerstattung/Umtausch”.
- Wir fügen einige Beispiele (auch bekannt als Few-Shot-Prompting) hinzu, um zu veranschaulichen, wie die Ausgabe formatiert werden sollte, was die Genauigkeit und Konsistenz verbessert.
Der Grund, warum wir Claude bitten, seine Antwort in verschiedene XML-Tag-Abschnitte aufzuteilen, ist, dass wir reguläre Ausdrücke verwenden können, um die Begründung und die Absicht separat aus der Ausgabe zu extrahieren. Dies ermöglicht es uns, gezielte nächste Schritte im Ticket-Routing-Workflow zu erstellen, wie z.B. nur die Absicht zu verwenden, um zu entscheiden, an wen das Ticket weitergeleitet werden soll.
Implementieren Sie Ihren Prompt
Es ist schwer zu wissen, wie gut Ihr Prompt funktioniert, ohne ihn in einer Test-Produktionsumgebung zu implementieren und Evaluierungen durchzuführen.
Lassen Sie uns die Implementierungsstruktur aufbauen. Beginnen wir mit der Definition der Methodensignatur für die Umhüllung unseres Aufrufs an Claude. Wir werden die Methode, die wir bereits zu schreiben begonnen haben, die ticket_contents
als Eingabe hat, verwenden und nun ein Tupel von reasoning
und intent
als Ausgabe zurückgeben. Wenn Sie eine bestehende Automatisierung mit traditionellem ML haben, sollten Sie stattdessen dieser Methodensignatur folgen.
Dieser Code:
- Importiert die Anthropic-Bibliothek und erstellt eine Client-Instanz mit Ihrem API-Schlüssel.
- Definiert eine
classify_support_request
-Funktion, die einenticket_contents
-String entgegennimmt. - Sendet den
ticket_contents
zur Klassifizierung an Claude unter Verwendung desclassification_prompt
- Gibt die
reasoning
undintent
des Modells zurück, die aus der Antwort extrahiert wurden.
Da wir warten müssen, bis der gesamte Reasoning- und Intent-Text generiert wurde, bevor wir ihn parsen, setzen wir stream=False
(die Standardeinstellung).
Evaluieren Sie Ihren Prompt
Prompting erfordert oft Tests und Optimierung, um produktionsreif zu sein. Um die Einsatzbereitschaft Ihrer Lösung zu bestimmen, bewerten Sie die Leistung basierend auf den Erfolgskriterien und Schwellenwerten, die Sie zuvor festgelegt haben.
Um Ihre Evaluation durchzuführen, benötigen Sie Testfälle, auf denen Sie sie ausführen können. Der Rest dieser Anleitung geht davon aus, dass Sie bereits Ihre Testfälle entwickelt haben.
Erstellen Sie eine Evaluierungsfunktion
Unsere Beispielevaluierung für diese Anleitung misst Claudes Leistung anhand von drei Schlüsselmetriken:
- Genauigkeit
- Kosten pro Klassifizierung
Je nach den für Sie wichtigen Faktoren müssen Sie Claude möglicherweise auf anderen Achsen bewerten.
Um dies zu beurteilen, müssen wir zunächst das von uns geschriebene Skript modifizieren und eine Funktion hinzufügen, um die vorhergesagte Absicht mit der tatsächlichen Absicht zu vergleichen und den Prozentsatz korrekter Vorhersagen zu berechnen. Wir müssen auch Funktionen zur Kostenberechnung und Zeitmessung hinzufügen.
Lassen Sie uns die Änderungen aufschlüsseln, die wir vorgenommen haben:
- Wir haben den
actual_intent
aus unseren Testfällen in dieclassify_support_request
-Methode aufgenommen und einen Vergleich eingerichtet, um zu beurteilen, ob Claudes Absichtsklassifizierung mit unserer goldenen Absichtsklassifizierung übereinstimmt. - Wir haben Nutzungsstatistiken für den API-Aufruf extrahiert, um die Kosten basierend auf den verwendeten Eingabe- und Ausgabe-Tokens zu berechnen.
Führen Sie Ihre Evaluation durch
Eine ordnungsgemäße Evaluation erfordert klare Schwellenwerte und Benchmarks, um zu bestimmen, was ein gutes Ergebnis ist. Das obige Skript gibt uns die Laufzeitwerte für Genauigkeit, Antwortzeit und Kosten pro Klassifizierung, aber wir würden immer noch klar festgelegte Schwellenwerte benötigen. Zum Beispiel:
- Genauigkeit: 95% (von 100 Tests)
- Kosten pro Klassifizierung: 50% Reduktion im Durchschnitt (über 100 Tests) gegenüber der aktuellen Routing-Methode
Diese Schwellenwerte ermöglichen es Ihnen, schnell und einfach im großen Maßstab und mit unparteiischer Empirie zu erkennen, welche Methode für Sie am besten geeignet ist und welche Änderungen möglicherweise vorgenommen werden müssen, um Ihre Anforderungen besser zu erfüllen.
Verbessern Sie die Leistung
In komplexen Szenarien kann es hilfreich sein, zusätzliche Strategien zur Leistungsverbesserung über Standard-Prompt-Engineering-Techniken und Implementierungsstrategien für Leitplanken hinaus zu berücksichtigen. Hier sind einige häufige Szenarien:
Verwenden Sie eine taxonomische Hierarchie für Fälle mit mehr als 20 Absichtskategorien
Mit zunehmender Anzahl von Klassen wächst auch die Anzahl der erforderlichen Beispiele, was den Prompt möglicherweise unhandlich macht. Alternativ können Sie die Implementierung eines hierarchischen Klassifizierungssystems mit einer Mischung aus Klassifikatoren in Betracht ziehen.
- Organisieren Sie Ihre Absichten in einer taxonomischen Baumstruktur.
- Erstellen Sie eine Reihe von Klassifikatoren auf jeder Ebene des Baums, um einen kaskadierenden Routing-Ansatz zu ermöglichen.
Beispielsweise könnten Sie einen Klassifikator der obersten Ebene haben, der Tickets grob in “Technische Probleme”, “Abrechnungsfragen” und “Allgemeine Anfragen” kategorisiert. Jede dieser Kategorien kann dann ihren eigenen Unterklassifikator haben, um die Klassifizierung weiter zu verfeinern.
-
Vorteile - größere Nuancierung und Genauigkeit: Sie können verschiedene Prompts für jeden übergeordneten Pfad erstellen, was eine gezieltere und kontextspezifischere Klassifizierung ermöglicht. Dies kann zu verbesserter Genauigkeit und nuancierterer Bearbeitung von Kundenanfragen führen.
-
Nachteile - erhöhte Latenz: Beachten Sie, dass mehrere Klassifikatoren zu erhöhter Latenz führen können, und wir empfehlen, diesen Ansatz mit unserem schnellsten Modell, Haiku, zu implementieren.
Verwenden Sie Vektordatenbanken und Ähnlichkeitssuchabruf zur Bearbeitung hochvariabler Tickets
Obwohl das Bereitstellen von Beispielen der effektivste Weg ist, um die Leistung zu verbessern, kann es schwierig sein, genügend Beispiele in einem einzigen Prompt aufzunehmen, wenn Supportanfragen stark variieren.
In diesem Szenario könnten Sie eine Vektordatenbank verwenden, um Ähnlichkeitssuchen aus einem Datensatz von Beispielen durchzuführen und die relevantesten Beispiele für eine bestimmte Anfrage abzurufen.
Dieser Ansatz, der in unserem Klassifizierungsrezept detailliert beschrieben wird, hat nachweislich die Leistung von 71% Genauigkeit auf 93% Genauigkeit verbessert.
Berücksichtigen Sie speziell erwartete Grenzfälle
Hier sind einige Szenarien, in denen Claude Tickets falsch klassifizieren könnte (es können andere geben, die für Ihre Situation einzigartig sind). In diesen Szenarien sollten Sie erwägen, explizite Anweisungen oder Beispiele im Prompt zu geben, wie Claude den Grenzfall behandeln sollte:
Integrieren Sie Claude in Ihren größeren Support-Workflow
Eine ordnungsgemäße Integration erfordert, dass Sie einige Entscheidungen darüber treffen, wie Ihr Claude-basiertes Ticket-Routing-Skript in die Architektur Ihres größeren Ticket-Routing-Systems passt. Es gibt zwei Möglichkeiten, dies zu tun:
- Push-basiert: Das von Ihnen verwendete Support-Ticket-System (z.B. Zendesk) löst Ihren Code aus, indem es ein Webhook-Ereignis an Ihren Routing-Service sendet, der dann die Absicht klassifiziert und weiterleitet.
- Dieser Ansatz ist web-skalierbarer, erfordert jedoch, dass Sie einen öffentlichen Endpunkt bereitstellen.
- Pull-basiert: Ihr Code fragt nach den neuesten Tickets basierend auf einem bestimmten Zeitplan ab und leitet sie zum Zeitpunkt des Abrufs weiter.
- Dieser Ansatz ist einfacher zu implementieren, könnte aber unnötige Aufrufe an das Support-Ticket-System machen, wenn die Abruffrequenz zu hoch ist, oder könnte zu langsam sein, wenn die Abruffrequenz zu niedrig ist.
Für beide Ansätze müssen Sie Ihr Skript in einen Service einbinden. Die Wahl des Ansatzes hängt davon ab, welche APIs Ihr Support-Ticketing-System bereitstellt.