Definieren, ob Claude für Ticket-Routing verwendet werden soll

Hier sind einige wichtige Indikatoren, dass Sie ein LLM wie Claude anstelle traditioneller ML-Ansätze für Ihre Klassifizierungsaufgabe verwenden sollten:
Traditionelle ML-Prozesse erfordern massive gelabelte Datensätze. Claudes vortrainiertes Modell kann Tickets effektiv mit nur wenigen Dutzend gelabelten Beispielen klassifizieren, wodurch die Datenvorbereitungszeit und -kosten erheblich reduziert werden.
Sobald ein traditioneller ML-Ansatz etabliert wurde, ist eine Änderung ein mühsames und datenintensives Unterfangen. Andererseits kann sich Claude, während sich Ihr Produkt oder die Kundenbedürfnisse entwickeln, leicht an Änderungen in Klassendefinitionen oder neuen Klassen anpassen, ohne umfangreiche Neulabelung von Trainingsdaten.
Traditionelle ML-Modelle haben oft Schwierigkeiten mit unstrukturierten Daten und erfordern umfangreiche Feature-Engineering. Claudes fortschrittliches Sprachverständnis ermöglicht eine genaue Klassifizierung basierend auf Inhalt und Kontext, anstatt sich auf strenge ontologische Strukturen zu verlassen.
Traditionelle ML-Ansätze verlassen sich oft auf Bag-of-Words-Modelle oder einfache Mustererkennung. Claude zeichnet sich durch das Verstehen und Anwenden zugrundeliegender Regeln aus, wenn Klassen durch Bedingungen statt durch Beispiele definiert werden.
Viele traditionelle ML-Modelle bieten wenig Einblick in ihren Entscheidungsprozess. Claude kann menschenlesbare Erklärungen für seine Klassifizierungsentscheidungen liefern, Vertrauen in das Automatisierungssystem aufbauen und bei Bedarf eine einfache Anpassung ermöglichen.
Traditionelle ML-Systeme haben oft Schwierigkeiten mit Ausreißern und mehrdeutigen Eingaben und klassifizieren sie häufig falsch oder verwenden standardmäßig eine Sammelkategorie. Claudes Fähigkeiten zur Verarbeitung natürlicher Sprache ermöglichen es, Kontext und Nuancen in Support-Tickets besser zu interpretieren, wodurch möglicherweise die Anzahl falsch gerouteter oder unklassifizierter Tickets reduziert wird, die manuelle Eingriffe erfordern.
Traditionelle ML-Ansätze erfordern typischerweise separate Modelle oder umfangreiche Übersetzungsprozesse für jede unterstützte Sprache. Claudes mehrsprachige Fähigkeiten ermöglichen es, Tickets in verschiedenen Sprachen zu klassifizieren, ohne separate Modelle oder umfangreiche Übersetzungsprozesse zu benötigen, wodurch die Unterstützung für globale Kundenstämme optimiert wird.

Erstellen und Bereitstellen Ihres LLM-Support-Workflows

Verstehen Sie Ihren aktuellen Support-Ansatz

Bevor Sie sich in die Automatisierung stürzen, ist es entscheidend, Ihr bestehendes Ticketing-System zu verstehen. Beginnen Sie damit, zu untersuchen, wie Ihr Support-Team derzeit Ticket-Routing handhabt. Betrachten 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-Stufe 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 handhaben, desto besser können Sie mit Claude zusammenarbeiten, um die Aufgabe zu erledigen.

Definieren Sie Benutzerabsichtskategorien

Eine gut definierte Liste von Benutzerabsichtskategorien ist entscheidend für eine genaue Support-Ticket-Klassifizierung mit Claude. Claudes Fähigkeit, Tickets effektiv in Ihrem System zu routen, ist direkt proportional dazu, wie gut definiert die Kategorien Ihres Systems sind. Hier sind einige Beispiele für Benutzerabsichtskategorien und Unterkategorien.
  • Hardware-Problem
  • Software-Bug
  • Kompatibilitätsproblem
  • Leistungsproblem
  • Passwort zurücksetzen
  • Kontozugriffsprobleme
  • Rechnungsanfragen
  • Abonnement-Änderungen
  • Feature-Anfragen
  • Produktkompatibilitätsfragen
  • Preisinformationen
  • Verfügbarkeitsanfragen
  • Anleitungsfragen
  • Feature-Nutzungshilfe
  • Best-Practice-Beratung
  • Fehlerbehebungsanleitung
  • Bug-Berichte
  • Feature-Anfragen
  • Allgemeines Feedback oder Vorschläge
  • Beschwerden
  • Bestellstatusanfragen
  • Versandinformationen
  • Rücksendungen und Umtausch
  • Bestelländerungen
  • Installationshilfe
  • Upgrade-Anfragen
  • Wartungsplanung
  • Service-Kündigung
  • Datenschutzanfragen
  • Berichte über verdächtige Aktivitäten
  • Sicherheitsfeature-Hilfe
  • Regulatorische Compliance-Fragen
  • Nutzungsbedingungsanfragen
  • Rechtsdokumentationsanfragen
  • Kritische Systemausfälle
  • Dringende Sicherheitsprobleme
  • Zeitkritische Probleme
  • Produktschulungsanfragen
  • Dokumentationsanfragen
  • Webinar- oder Workshop-Informationen
  • Integrationshilfe
  • API-Nutzungsfragen
  • Drittanbieter-Kompatibilitätsanfragen
Zusätzlich zur Absicht kann Ticket-Routing und Priorisierung auch von anderen Faktoren wie Dringlichkeit, Kundentyp, SLAs oder Sprache beeinflusst werden. Stellen Sie sicher, dass Sie andere Routing-Kriterien beim Aufbau Ihres automatisierten Routing-Systems berücksichtigen.

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 Support-Ticket-Routing:
Diese Metrik bewertet, wie konsistent Claude ähnliche Tickets im Laufe der Zeit klassifiziert. Sie ist entscheidend für die Aufrechterhaltung der Routing-Zuverlässigkeit. Messen Sie dies, indem Sie das Modell regelmäßig mit einem Satz standardisierter Eingaben testen und eine Konsistenzrate von 95% oder höher anstreben.
Dies misst, wie schnell sich Claude an neue Kategorien oder sich ändernde Ticket-Muster anpassen kann. Testen Sie dies, indem Sie neue Ticket-Typen einführen und die Zeit messen, die das Modell benötigt, um zufriedenstellende Genauigkeit (z.B. >90%) bei diesen neuen Kategorien zu erreichen. Streben Sie eine Anpassung innerhalb von 50-100 Beispiel-Tickets an.
Dies bewertet Claudes Fähigkeit, Tickets in mehreren Sprachen genau zu routen. Messen Sie die Routing-Genauigkeit über verschiedene Sprachen hinweg und streben Sie nicht mehr als einen 5-10%igen Rückgang der Genauigkeit für nicht-primäre Sprachen an.
Dies bewertet Claudes Leistung bei ungewöhnlichen oder komplexen Tickets. Erstellen Sie einen Testsatz von Grenzfällen und messen Sie die Routing-Genauigkeit, wobei Sie mindestens 80% Genauigkeit bei diesen herausfordernden Eingaben anstreben.
Dies misst Claudes Fairness beim Routing über verschiedene Kundendemografien hinweg. Überprüfen Sie regelmäßig Routing-Entscheidungen auf potenzielle Verzerrungen und streben Sie konsistente Routing-Genauigkeit (innerhalb von 2-3%) über alle Kundengruppen hinweg an.
In Situationen, in denen die Minimierung der Token-Anzahl entscheidend ist, bewertet dieses Kriterium, wie gut Claude mit minimalem Kontext funktioniert. Messen Sie die Routing-Genauigkeit mit unterschiedlichen Mengen an bereitgestelltem Kontext und streben Sie 90%+ Genauigkeit mit nur dem Ticket-Titel und einer kurzen Beschreibung an.
Dies bewertet die Qualität und Relevanz von Claudes Erklärungen für seine Routing-Entscheidungen. Menschliche Bewerter können Erklärungen auf einer Skala (z.B. 1-5) bewerten, mit dem Ziel, einen Durchschnittswert von 4 oder höher zu erreichen.
Hier sind einige häufige Erfolgskriterien, die unabhängig davon nützlich sein können, ob ein LLM verwendet wird:
Routing-Genauigkeit misst, wie oft Tickets beim ersten Versuch korrekt dem entsprechenden Team oder der entsprechenden Person zugewiesen werden. Dies wird typischerweise als Prozentsatz korrekt gerouteter Tickets von der Gesamtzahl der Tickets gemessen. Branchenbenchmarks streben oft 90-95% Genauigkeit an, obwohl dies je nach Komplexität der Support-Struktur variieren kann.
Diese Metrik verfolgt, wie schnell Tickets nach der Einreichung zugewiesen werden. Schnellere Zuweisungszeiten führen im Allgemeinen zu schnelleren Lösungen und verbesserter Kundenzufriedenheit. Erstklassige Systeme erreichen oft durchschnittliche Zuweisungszeiten von unter 5 Minuten, wobei viele nahezu sofortiges Routing anstreben (was mit LLM-Implementierungen möglich ist).
Die Umleitungsrate zeigt an, wie oft Tickets nach der ersten Weiterleitung neu zugewiesen werden müssen. Eine niedrigere Rate deutet auf genaueres anfängliches Routing hin. Streben Sie eine Umleitungsrate unter 10% an, wobei leistungsstarke Systeme Raten von 5% oder weniger erreichen.
Dies misst den Prozentsatz der Tickets, die während der ersten Interaktion mit dem Kunden gelöst werden. Höhere Raten zeigen effizientes Routing und gut vorbereitete Support-Teams an. Branchenbenchmarks reichen typischerweise von 70-75%, wobei Top-Performer Raten von 80% oder höher erreichen.
Die durchschnittliche Bearbeitungszeit misst, wie lange es dauert, ein Ticket von Anfang bis Ende zu lösen. Effizientes Routing kann diese Zeit erheblich reduzieren. Benchmarks variieren stark nach Branche und Komplexität, aber viele Organisationen streben an, die durchschnittliche Bearbeitungszeit unter 24 Stunden für nicht-kritische Probleme zu halten.
Oft durch Post-Interaktions-Umfragen gemessen, spiegeln diese Werte die allgemeine Kundenzufriedenheit mit dem Support-Prozess wider. Effektives Routing trägt zu höherer Zufriedenheit bei. Streben Sie CSAT-Werte von 90% oder höher an, wobei Top-Performer oft 95%+ Zufriedenheitsraten erreichen.
Dies misst, wie oft Tickets an höhere Support-Stufen eskaliert werden müssen. Niedrigere Eskalationsraten zeigen oft genaueres anfängliches Routing an. Streben Sie eine Eskalationsrate unter 20% an, wobei erstklassige Systeme Raten von 10% oder weniger erreichen.
Diese Metrik betrachtet, wie viele Tickets Agenten nach der Implementierung der Routing-Lösung effektiv bearbeiten können. Verbessertes Routing sollte die Produktivität steigern. Messen Sie dies, indem Sie die pro Agent pro Tag oder Stunde gelösten Tickets verfolgen und eine 10-20%ige Verbesserung nach der Implementierung eines neuen Routing-Systems anstreben.
Dies misst den Prozentsatz potenzieller Tickets, die durch Self-Service-Optionen gelöst werden, bevor sie in das Routing-System gelangen. Höhere Raten zeigen effektive Vor-Routing-Triage an. Streben Sie eine Ablenkungsrate von 20-30% an, wobei Top-Performer Raten von 40% oder höher erreichen.
Diese Metrik berechnet die durchschnittlichen Kosten zur Lösung jedes Support-Tickets. Effizientes Routing sollte helfen, diese Kosten im Laufe der Zeit zu reduzieren. Während Benchmarks stark variieren, streben viele Organisationen an, die Kosten pro Ticket um 10-15% nach der Implementierung eines verbesserten Routing-Systems zu reduzieren.

Das richtige Claude-Modell wählen

Die Wahl des Modells hängt von den Kompromissen zwischen Kosten, Genauigkeit und Antwortzeit ab. Viele Kunden haben claude-3-5-haiku-20241022 als ideales Modell für Ticket-Routing empfunden, 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 komplexer Argumentation erfordert, können Sie sich für das größere Sonnet-Modell entscheiden.

Einen starken Prompt erstellen

Ticket-Routing ist eine Art von 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 anfänglicher Prompt sollte den Inhalt der Benutzeranfrage enthalten und sowohl die Begründung als auch die Absicht zurückgeben.
Probieren Sie den Prompt-Generator in der Claude Console aus, um Claude einen ersten Entwurf für Sie schreiben zu lassen.
Hier ist ein Beispiel für einen Ticket-Routing-Klassifizierungs-Prompt:
def classify_support_request(ticket_contents):
    # Define the prompt for the classification task
    classification_prompt = f"""Sie werden als Kundensupport-Ticket-Klassifizierungssystem fungieren. Ihre Aufgabe ist es, Kundensupport-Anfragen zu analysieren und die entsprechende Klassifizierungsabsicht für jede Anfrage zusammen mit Ihrer Begründung auszugeben.

        Hier ist die Kundensupport-Anfrage, die Sie klassifizieren müssen:

        <request>{ticket_contents}</request>

        Bitte analysieren Sie die obige Anfrage sorgfältig, um die Kernabsicht und Bedürfnisse des Kunden zu bestimmen. Überlegen Sie, was der Kunde fragt oder welche Bedenken er hat.

        Schreiben Sie zuerst Ihre Begründung und Analyse zur Klassifizierung dieser Anfrage in <reasoning>-Tags.

        Geben Sie dann das entsprechende Klassifizierungslabel für die Anfrage in einem <intent>-Tag aus. Die gültigen Absichten sind:
        <intents>
        <intent>Support, Feedback, Beschwerde</intent>
        <intent>Bestellverfolgung</intent>
        <intent>Rückerstattung/Umtausch</intent>
        </intents>

        Eine Anfrage kann NUR EINE anwendbare Absicht haben. Geben Sie nur die Absicht an, die am besten auf die Anfrage zutrifft.

        Als Beispiel betrachten Sie die folgende Anfrage:
        <request>Hallo! Ich hatte am Samstag Hochgeschwindigkeits-Glasfaser-Internet installiert und mein Installateur, Kevin, war absolut fantastisch! Wo kann ich meine positive Bewertung senden? Danke für Ihre Hilfe!</request>

        Hier ist ein Beispiel dafür, wie Ihre Ausgabe formatiert werden sollte (für die obige Beispielanfrage):
        <reasoning>Der Benutzer sucht Informationen, um positives Feedback zu hinterlassen.</reasoning>
        <intent>Support, Feedback, Beschwerde</intent>

        Hier sind ein paar weitere Beispiele:
        <examples>
        <example 2>
        Beispiel 2 Eingabe:
        <request>Ich wollte schreiben und Ihnen persönlich für das Mitgefühl danken, das Sie meiner Familie während der Beerdigung meines Vaters am vergangenen Wochenende gezeigt haben. Ihr Personal war so rücksichtsvoll und hilfsreich während dieses ganzen Prozesses; es hat uns wirklich eine Last von den Schultern genommen. Die Besuchsbroschüren waren wunderschön. Wir werden die Freundlichkeit, die Sie uns gezeigt haben, nie vergessen und sind so dankbar dafür, wie reibungslos die Verfahren verliefen. Nochmals vielen Dank, Amarantha Hill im Namen der Familie Hill.</request>

        Beispiel 2 Ausgabe:
        <reasoning>Benutzer hinterlässt eine positive Bewertung ihrer Erfahrung.</reasoning>
        <intent>Support, Feedback, Beschwerde</intent>
        </example 2>
        <example 3>

        ...

        </example 8>
        <example 9>
        Beispiel 9 Eingabe:
        <request>Ihre Website sendet ständig Werbe-Popups, die den gesamten Bildschirm blockieren. Es hat zwanzig Minuten gedauert, bis ich endlich die Telefonnummer gefunden habe, um anzurufen und mich zu beschweren. Wie kann ich möglicherweise auf meine Kontoinformationen zugreifen mit all diesen Popups? Können Sie für mich auf mein Konto zugreifen, da Ihre Website kaputt ist? Ich muss wissen, welche Adresse hinterlegt ist.</request>

        Beispiel 9 Ausgabe:
        <reasoning>Der Benutzer bittet um Hilfe beim Zugriff auf seine Web-Kontoinformationen.</reasoning>
        <intent>Support, Feedback, Beschwerde</intent>
        </example 9>

        Denken Sie daran, immer Ihre Klassifizierungsbegründung vor Ihrer tatsächlichen Absichtsausgabe anzugeben. Die Begründung sollte in <reasoning>-Tags und die Absicht in <intent>-Tags eingeschlossen werden. Geben Sie nur die Begründung und die Absicht zurück.
        """
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 Bedürfnisse des Kunden zu bestimmen.
  • Wir weisen Claude zur ordnungsgemäßen Ausgabeformatierung an, in diesem Fall seine Begründung und Analyse in <reasoning>-Tags zu liefern, gefolgt vom entsprechenden Klassifizierungslabel in <intent>-Tags.
  • Wir spezifizieren die gültigen Absichtskategorien: “Support, Feedback, Beschwerde”, “Bestellverfolgung” und “Rückerstattung/Umtausch”.
  • Wir fügen einige Beispiele hinzu (auch bekannt als Few-Shot-Prompting), um zu veranschaulichen, wie die Ausgabe formatiert werden sollte, was Genauigkeit und Konsistenz verbessert.
Der Grund, warum wir möchten, dass Claude seine Antwort in verschiedene XML-Tag-Abschnitte aufteilt, ist, damit wir reguläre Ausdrücke verwenden können, um die Begründung und 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 welche Person das Ticket weitergeleitet werden soll.

Ihren Prompt bereitstellen

Es ist schwer zu wissen, wie gut Ihr Prompt funktioniert, ohne ihn in einer Test-Produktionsumgebung bereitzustellen und Evaluierungen durchzuführen. Lassen Sie uns die Bereitstellungsstruktur aufbauen. Beginnen Sie damit, die Methodensignatur für das Umhüllen unseres Aufrufs an Claude zu definieren. Wir nehmen die Methode, die wir bereits zu schreiben begonnen haben, die ticket_contents als Eingabe hat, und geben nun ein Tupel von reasoning und intent als Ausgabe zurück. Wenn Sie eine bestehende Automatisierung mit traditionellem ML haben, sollten Sie stattdessen dieser Methodensignatur folgen.
import anthropic
import re

# Create an instance of the Claude API client
client = anthropic.Anthropic()

# Set the default model
DEFAULT_MODEL="claude-3-5-haiku-20241022"

def classify_support_request(ticket_contents):
    # Define the prompt for the classification task
    classification_prompt = f"""Sie werden als Kundensupport-Ticket-Klassifizierungssystem fungieren. 
        ...
        ... Die Begründung sollte in <reasoning>-Tags und die Absicht in <intent>-Tags eingeschlossen werden. Geben Sie nur die Begründung und die Absicht zurück.
        """
    # Send the prompt to the API to classify the support request.
    message = client.messages.create(
        model=DEFAULT_MODEL,
        max_tokens=500,
        temperature=0,
        messages=[{"role": "user", "content": classification_prompt}],
        stream=False,
    )
    reasoning_and_intent = message.content[0].text

    # Use Python's regular expressions library to extract `reasoning`.
    reasoning_match = re.search(
        r"<reasoning>(.*?)</reasoning>", reasoning_and_intent, re.DOTALL
    )
    reasoning = reasoning_match.group(1).strip() if reasoning_match else ""

    # Similarly, also extract the `intent`.
    intent_match = re.search(r"<intent>(.*?)</intent>", reasoning_and_intent, re.DOTALL)
    intent = intent_match.group(1).strip() if intent_match else ""

    return reasoning, intent
Dieser Code:
  • Importiert die Anthropic-Bibliothek und erstellt eine Client-Instanz mit Ihrem API-Schlüssel.
  • Definiert eine classify_support_request-Funktion, die einen ticket_contents-String nimmt.
  • Sendet den ticket_contents zur Klassifizierung mit dem classification_prompt an Claude
  • Gibt die reasoning und intent des Modells zurück, die aus der Antwort extrahiert wurden.
Da wir warten müssen, bis der gesamte Begründungs- und Absichtstext generiert wurde, bevor wir ihn parsen können, setzen wir stream=False (der Standard).

Evaluieren Sie Ihren Prompt

Prompting erfordert oft Tests und Optimierung, um produktionsreif zu sein. Um die Bereitschaft Ihrer Lösung zu bestimmen, bewerten Sie die Leistung basierend auf den Erfolgskriterien und Schwellenwerten, die Sie zuvor festgelegt haben. Um Ihre Evaluierung durchzuführen, benötigen Sie Testfälle, auf denen Sie sie ausführen können. Der Rest dieses Leitfadens geht davon aus, dass Sie bereits Ihre Testfälle entwickelt haben.

Eine Evaluierungsfunktion erstellen

Unsere Beispiel-Evaluierung für diesen Leitfaden misst Claudes Leistung entlang drei Schlüsselmetriken:
  • Genauigkeit
  • Kosten pro Klassifizierung
Sie müssen Claude möglicherweise auf anderen Achsen bewerten, abhängig davon, welche Faktoren für Sie wichtig sind. Um dies zu bewerten, müssen wir zuerst das Skript, das wir geschrieben haben, 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 Kostenberechnungs- und Zeitmessungsfunktionalität hinzufügen.
import anthropic
import re

# Create an instance of the Claude API client
client = anthropic.Anthropic()

# Set the default model
DEFAULT_MODEL="claude-3-5-haiku-20241022"

def classify_support_request(request, actual_intent):
    # Define the prompt for the classification task
    classification_prompt = f"""Sie werden als Kundensupport-Ticket-Klassifizierungssystem fungieren. 
        ...
        ...Die Begründung sollte in <reasoning>-Tags und die Absicht in <intent>-Tags eingeschlossen werden. Geben Sie nur die Begründung und die Absicht zurück.
        """

    message = client.messages.create(
        model=DEFAULT_MODEL,
        max_tokens=500,
        temperature=0,
        messages=[{"role": "user", "content": classification_prompt}],
    )
    usage = message.usage  # Get the usage statistics for the API call for how many input and output tokens were used.
    reasoning_and_intent = message.content[0].text

    # Use Python's regular expressions library to extract `reasoning`.
    reasoning_match = re.search(
        r"<reasoning>(.*?)</reasoning>", reasoning_and_intent, re.DOTALL
    )
    reasoning = reasoning_match.group(1).strip() if reasoning_match else ""

    # Similarly, also extract the `intent`.
    intent_match = re.search(r"<intent>(.*?)</intent>", reasoning_and_intent, re.DOTALL)
    intent = intent_match.group(1).strip() if intent_match else ""

      # Check if the model's prediction is correct.
    correct = actual_intent.strip() == intent.strip()

    # Return the reasoning, intent, correct, and usage.
    return reasoning, intent, correct, usage
Lassen Sie uns die Bearbeitungen aufschlüsseln, die wir vorgenommen haben:
  • Wir haben die actual_intent aus unseren Testfällen in die classify_support_request-Methode hinzugefügt und einen Vergleich eingerichtet, um zu bewerten, ob Claudes Absichtsklassifizierung mit unserer goldenen Absichtsklassifizierung übereinstimmt.
  • Wir haben Nutzungsstatistiken für den API-Aufruf extrahiert, um Kosten basierend auf verwendeten Eingabe- und Ausgabe-Tokens zu berechnen

Ihre Evaluierung durchführen

Eine ordnungsgemäße Evaluierung 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 bräuchten immer noch klar etablierte Schwellenwerte. Zum Beispiel:
  • Genauigkeit: 95% (von 100 Tests)
  • Kosten pro Klassifizierung: 50% Reduzierung im Durchschnitt (über 100 Tests) von der aktuellen Routing-Methode
Diese Schwellenwerte zu haben, ermöglicht es Ihnen, schnell und einfach im großen Maßstab und mit unparteiischem Empirismus zu sagen, welche Methode für Sie am besten ist und welche Änderungen möglicherweise vorgenommen werden müssen, um Ihre Anforderungen besser zu erfüllen.

Leistung verbessern

In komplexen Szenarien kann es hilfreich sein, zusätzliche Strategien zur Leistungsverbesserung über Standard-Prompt-Engineering-Techniken und Guardrail-Implementierungsstrategien hinaus zu betrachten. Hier sind einige häufige Szenarien:

Verwenden Sie eine taxonomische Hierarchie für Fälle mit 20+ Absichtskategorien

Wenn die Anzahl der Klassen wächst, erweitert sich auch die Anzahl der erforderlichen Beispiele, wodurch der Prompt möglicherweise unhandlich wird. Als Alternative können Sie die Implementierung eines hierarchischen Klassifizierungssystems mit einer Mischung von Klassifizierern in Betracht ziehen.
  1. Organisieren Sie Ihre Absichten in einer taxonomischen Baumstruktur.
  2. Erstellen Sie eine Reihe von Klassifizierern auf jeder Ebene des Baums, wodurch ein kaskadierender Routing-Ansatz ermöglicht wird.
Zum Beispiel könnten Sie einen Top-Level-Klassifizierer haben, der Tickets grob in “Technische Probleme”, “Rechnungsfragen” und “Allgemeine Anfragen” kategorisiert. Jede dieser Kategorien kann dann ihren eigenen Sub-Klassifizierer haben, um die Klassifizierung weiter zu verfeinern.
  • Vorteile - größere Nuance 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 nuancierterem Umgang mit Kundenanfragen führen.
  • Nachteile - erhöhte Latenz: Beachten Sie, dass mehrere Klassifizierer zu erhöhter Latenz führen können, und wir empfehlen, diesen Ansatz mit unserem schnellsten Modell, Haiku, zu implementieren.

Verwenden Sie Vektordatenbanken und Ähnlichkeitssuche-Retrieval für hochvariable Tickets

Obwohl das Bereitstellen von Beispielen der effektivste Weg zur Leistungsverbesserung ist, kann es schwierig sein, genügend Beispiele in einem einzigen Prompt einzuschließen, wenn Support-Anfragen hochvariabel sind. 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 gegebene Abfrage abzurufen. Dieser Ansatz, der detailliert in unserem Klassifizierungs-Rezept beschrieben wird, hat gezeigt, dass er die Leistung von 71% Genauigkeit auf 93% Genauigkeit verbessert.

Berücksichtigen Sie spezifisch erwartete Grenzfälle

Hier sind einige Szenarien, in denen Claude Tickets möglicherweise falsch klassifiziert (es kann andere geben, die für Ihre Situation einzigartig sind). In diesen Szenarien sollten Sie explizite Anweisungen oder Beispiele im Prompt bereitstellen, wie Claude den Grenzfall handhaben sollte:
Kunden drücken Bedürfnisse oft indirekt aus. Zum Beispiel könnte “Ich warte jetzt seit über zwei Wochen auf mein Paket” eine indirekte Anfrage nach dem Bestellstatus sein.
  • Lösung: Geben Sie Claude einige echte Kundenbeispiele dieser Art von Anfragen zusammen mit der zugrundeliegenden Absicht. Sie können noch bessere Ergebnisse erzielen, wenn Sie eine Klassifizierungsbegründung für besonders nuancierte Ticket-Absichten einschließen, damit Claude die Logik besser auf andere Tickets verallgemeinern kann.
Wenn Kunden Unzufriedenheit ausdrücken, kann Claude die Behandlung der Emotion über die Lösung des zugrundeliegenden Problems priorisieren.
  • Lösung: Geben Sie Claude Anweisungen, wann Kundenstimmung priorisiert werden soll oder nicht. Es kann so einfach sein wie “Ignorieren Sie alle Kundenemotionen. Konzentrieren Sie sich nur auf die Analyse der Absicht der Kundenanfrage und welche Informationen der Kunde möglicherweise sucht.”
Wenn Kunden mehrere Probleme in einer einzigen Interaktion präsentieren, kann Claude Schwierigkeiten haben, das Hauptanliegen zu identifizieren.
  • Lösung: Klären Sie die Priorisierung von Absichten, damit Claude die extrahierten Absichten besser bewerten und das Hauptanliegen identifizieren kann.

Claude in Ihren größeren Support-Workflow integrieren

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, wie Sie dies tun könnten:
  • Push-basiert: Das Support-Ticket-System, das Sie verwenden (z.B. Zendesk), löst Ihren Code aus, indem es ein Webhook-Event an Ihren Routing-Service sendet, der dann die Absicht klassifiziert und weiterleitet.
    • Dieser Ansatz ist web-skalierbarer, erfordert aber, dass Sie einen öffentlichen Endpunkt bereitstellen.
  • Pull-basiert: Ihr Code zieht die neuesten Tickets basierend auf einem gegebenen Zeitplan und leitet sie zum Pull-Zeitpunkt weiter.
    • Dieser Ansatz ist einfacher zu implementieren, kann aber unnötige Aufrufe an das Support-Ticket-System machen, wenn die Pull-Frequenz zu hoch ist, oder könnte übermäßig langsam sein, wenn die Pull-Frequenz zu niedrig ist.
Für beide Ansätze müssen Sie Ihr Skript in einen Service einbetten. Die Wahl des Ansatzes hängt davon ab, welche APIs Ihr Support-Ticketing-System bereitstellt.