Bevor Sie mit Claude entwickeln

Entscheiden Sie, ob Sie Claude für Support-Chat verwenden möchten

Hier sind einige wichtige Indikatoren dafür, dass Sie ein LLM wie Claude einsetzen sollten, um Teile Ihres Kundensupport-Prozesses zu automatisieren:
Claude zeichnet sich dadurch aus, eine große Anzahl ähnlicher Fragen effizient zu bearbeiten und menschliche Agenten für komplexere Probleme freizusetzen.
Claude kann schnell Informationen aus umfangreichen Wissensdatenbanken abrufen, verarbeiten und kombinieren, während menschliche Agenten möglicherweise Zeit benötigen, um zu recherchieren oder mehrere Quellen zu konsultieren.
Claude kann rund um die Uhr Support ohne Ermüdung bieten, während die Besetzung mit menschlichen Agenten für kontinuierliche Abdeckung kostspielig und herausfordernd sein kann.
Claude kann plötzliche Anstiege im Anfragevolumen bewältigen, ohne dass zusätzliches Personal eingestellt und geschult werden muss.
Sie können Claude anweisen, den Ton und die Werte Ihrer Marke konsistent zu repräsentieren, während menschliche Agenten in ihren Kommunikationsstilen variieren können.
Einige Überlegungen für die Wahl von Claude gegenüber anderen LLMs:
  • Sie priorisieren natürliche, nuancierte Konversation: Claudes ausgeklügeltes Sprachverständnis ermöglicht natürlichere, kontextbewusste Gespräche, die sich menschlicher anfühlen als Chats mit anderen LLMs.
  • Sie erhalten oft komplexe und offene Anfragen: Claude kann eine breite Palette von Themen und Anfragen bearbeiten, ohne vorgefertigte Antworten zu generieren oder umfangreiche Programmierung von Permutationen von Benutzeräußerungen zu erfordern.
  • Sie benötigen skalierbaren mehrsprachigen Support: Claudes mehrsprachige Fähigkeiten ermöglichen es, Gespräche in über 200 Sprachen zu führen, ohne separate Chatbots oder umfangreiche Übersetzungsprozesse für jede unterstützte Sprache zu benötigen.

Definieren Sie Ihre ideale Chat-Interaktion

Skizzieren Sie eine ideale Kundeninteraktion, um zu definieren, wie und wann Sie erwarten, dass der Kunde mit Claude interagiert. Diese Skizze hilft dabei, die technischen Anforderungen Ihrer Lösung zu bestimmen. Hier ist ein Beispiel für eine Chat-Interaktion für Autoversicherungs-Kundensupport:
  • Kunde: Initiiert Support-Chat-Erfahrung
    • Claude: Begrüßt den Kunden herzlich und initiiert das Gespräch
  • Kunde: Fragt nach Versicherung für ihr neues Elektroauto
    • Claude: Stellt relevante Informationen über Elektrofahrzeug-Abdeckung bereit
  • Kunde: Stellt Fragen zu einzigartigen Bedürfnissen für Elektrofahrzeug-Versicherungen
    • Claude: Antwortet mit präzisen und informativen Antworten und stellt Links zu den Quellen bereit
  • Kunde: Stellt themenfremde Fragen, die nicht mit Versicherung oder Autos zusammenhängen
    • Claude: Klärt, dass es nicht über unverwandte Themen diskutiert und lenkt den Benutzer zurück zur Autoversicherung
  • Kunde: Äußert Interesse an einem Versicherungsangebot
    • Claude: Stellt eine Reihe von Fragen, um das angemessene Angebot zu bestimmen, und passt sich an ihre Antworten an
    • Claude: Sendet eine Anfrage zur Verwendung des Angebotsgenerierungs-API-Tools zusammen mit den notwendigen vom Benutzer gesammelten Informationen
    • Claude: Erhält die Antwortinformationen von der API-Tool-Verwendung, synthetisiert die Informationen in eine natürliche Antwort und präsentiert dem Benutzer das bereitgestellte Angebot
  • Kunde: Stellt Nachfragen
    • Claude: Beantwortet Nachfragen nach Bedarf
    • Claude: Führt den Kunden zu den nächsten Schritten im Versicherungsprozess und schließt das Gespräch ab
In dem realen Beispiel, das Sie für Ihren eigenen Anwendungsfall schreiben, könnte es nützlich sein, die tatsächlichen Worte in dieser Interaktion auszuschreiben, damit Sie auch ein Gefühl für den idealen Ton, die Antwortlänge und das Detailniveau bekommen, das Claude haben soll.

Unterteilen Sie die Interaktion in einzigartige Aufgaben

Kundensupport-Chat ist eine Sammlung mehrerer verschiedener Aufgaben, von Fragebeantwortung über Informationsabruf bis hin zur Bearbeitung von Anfragen, alles verpackt in eine einzige Kundeninteraktion. Bevor Sie mit der Entwicklung beginnen, unterteilen Sie Ihre ideale Kundeninteraktion in jede Aufgabe, die Claude ausführen können soll. Dies stellt sicher, dass Sie Claude für jede Aufgabe prompten und bewerten können, und gibt Ihnen ein gutes Gefühl für die Bandbreite der Interaktionen, die Sie beim Schreiben von Testfällen berücksichtigen müssen.
Kunden finden es manchmal hilfreich, dies als Interaktionsflussdiagramm möglicher Gesprächswendepunkte je nach Benutzeranfragen zu visualisieren.
Hier sind die wichtigsten Aufgaben, die mit der obigen Beispiel-Versicherungsinteraktion verbunden sind:
  1. Begrüßung und allgemeine Anleitung
    • Den Kunden herzlich begrüßen und das Gespräch initiieren
    • Allgemeine Informationen über das Unternehmen und die Interaktion bereitstellen
  2. Produktinformationen
    • Informationen über Elektrofahrzeug-Abdeckung bereitstellen
      Dies erfordert, dass Claude die notwendigen Informationen in seinem Kontext hat, und könnte bedeuten, dass eine RAG-Integration notwendig ist.
    • Fragen zu einzigartigen Elektrofahrzeug-Versicherungsbedürfnissen beantworten
    • Nachfragen zum Angebot oder zu Versicherungsdetails beantworten
    • Links zu Quellen anbieten, wenn angemessen
  3. Gesprächsmanagement
    • Beim Thema bleiben (Autoversicherung)
    • Themenfremde Fragen zurück zu relevanten Themen umleiten
  4. Angebotsgenerierung
    • Angemessene Fragen stellen, um die Angebotsberechtigung zu bestimmen
    • Fragen basierend auf Kundenantworten anpassen
    • Gesammelte Informationen an die Angebotsgenerierungs-API übermitteln
    • Das bereitgestellte Angebot dem Kunden präsentieren

Erfolgskriterien festlegen

Arbeiten Sie mit Ihrem Support-Team zusammen, um klare Erfolgskriterien zu definieren und detaillierte Bewertungen mit messbaren Benchmarks und Zielen zu schreiben. Hier sind Kriterien und Benchmarks, die verwendet werden können, um zu bewerten, wie erfolgreich Claude die definierten Aufgaben ausführt:
Diese Metrik bewertet, wie genau Claude Kundenanfragen zu verschiedenen Themen versteht. Messen Sie dies, indem Sie eine Stichprobe von Gesprächen überprüfen und bewerten, ob Claude die korrekte Interpretation der Kundenabsicht, kritische nächste Schritte, wie erfolgreiche Lösung aussieht und mehr hat. Streben Sie eine Verständnisgenauigkeit von 95% oder höher an.
Dies bewertet, wie gut Claudes Antwort die spezifische Frage oder das Problem des Kunden anspricht. Bewerten Sie eine Reihe von Gesprächen und bewerten Sie die Relevanz jeder Antwort (verwenden Sie LLM-basierte Bewertung für Skalierung). Streben Sie einen Relevanz-Score von 90% oder höher an.
Bewerten Sie die Korrektheit allgemeiner Unternehmens- und Produktinformationen, die dem Benutzer bereitgestellt werden, basierend auf den Informationen, die Claude im Kontext bereitgestellt wurden. Streben Sie 100% Genauigkeit in diesen einführenden Informationen an.
Verfolgen Sie die Häufigkeit und Relevanz angebotener Links oder Quellen. Streben Sie an, relevante Quellen in 80% der Interaktionen bereitzustellen, wo zusätzliche Informationen vorteilhaft sein könnten.
Messen Sie, wie gut Claude beim Thema bleibt, wie dem Thema Autoversicherung in unserer Beispielimplementierung. Streben Sie an, dass 95% der Antworten direkt mit Autoversicherung oder der spezifischen Anfrage des Kunden zusammenhängen.
Messen Sie, wie erfolgreich Claude dabei ist zu bestimmen, wann informativer Inhalt generiert werden soll und wie relevant dieser Inhalt ist. Zum Beispiel würden wir in unserer Implementierung bestimmen, wie gut Claude versteht, wann ein Angebot generiert werden soll und wie genau dieses Angebot ist. Streben Sie 100% Genauigkeit an, da dies wichtige Informationen für eine erfolgreiche Kundeninteraktion sind.
Dies misst Claudes Fähigkeit zu erkennen, wann eine Anfrage menschliche Intervention benötigt und angemessen zu eskalieren. Verfolgen Sie den Prozentsatz korrekt eskalierter Gespräche versus solcher, die hätten eskaliert werden sollen, aber nicht wurden. Streben Sie eine Eskalationsgenauigkeit von 95% oder höher an.
Hier sind Kriterien und Benchmarks, die verwendet werden können, um die Geschäftsauswirkungen der Verwendung von Claude für Support zu bewerten:
Dies bewertet Claudes Fähigkeit, die Kundenstimmung während des Gesprächs zu erhalten oder zu verbessern. Verwenden Sie Stimmungsanalyse-Tools, um die Stimmung am Anfang und Ende jedes Gesprächs zu messen. Streben Sie erhaltene oder verbesserte Stimmung in 90% der Interaktionen an.
Der Prozentsatz der Kundenanfragen, die erfolgreich vom Chatbot ohne menschliche Intervention bearbeitet werden. Streben Sie typischerweise eine Ablenkungsrate von 70-80% an, abhängig von der Komplexität der Anfragen.
Ein Maß dafür, wie zufrieden Kunden mit ihrer Chatbot-Interaktion sind. Wird normalerweise durch Umfragen nach der Interaktion durchgeführt. Streben Sie einen CSAT-Score von 4 von 5 oder höher an.
Die durchschnittliche Zeit, die der Chatbot benötigt, um eine Anfrage zu lösen. Dies variiert stark je nach Komplexität der Probleme, aber im Allgemeinen sollten Sie eine niedrigere AHT im Vergleich zu menschlichen Agenten anstreben.

Wie Sie Claude als Kundenservice-Agent implementieren

Wählen Sie das richtige Claude-Modell

Die Wahl des Modells hängt von den Kompromissen zwischen Kosten, Genauigkeit und Antwortzeit ab. Für Kundensupport-Chat ist claude-opus-4-1-20250805 gut geeignet, um Intelligenz, Latenz und Kosten auszubalancieren. Für Fälle, in denen Sie jedoch einen Gesprächsfluss mit mehreren Prompts einschließlich RAG, Tool-Verwendung und/oder Long-Context-Prompts haben, könnte claude-3-haiku-20240307 geeigneter sein, um für Latenz zu optimieren.

Erstellen Sie einen starken Prompt

Die Verwendung von Claude für Kundensupport erfordert, dass Claude genügend Anleitung und Kontext hat, um angemessen zu antworten, während es genügend Flexibilität hat, um eine breite Palette von Kundenanfragen zu bearbeiten. Beginnen wir damit, die Elemente eines starken Prompts zu schreiben, beginnend mit einem System-Prompt:
IDENTITY = """Du bist Eva, eine freundliche und sachkundige KI-Assistentin für die Acme Insurance 
Company. Deine Rolle ist es, Kunden herzlich zu begrüßen und Informationen über 
Acmes Versicherungsangebote bereitzustellen, die Autoversicherung und Elektroauto-
Versicherung umfassen. Du kannst Kunden auch dabei helfen, Angebote für ihre Versicherungsbedürfnisse zu erhalten."""
Obwohl Sie versucht sein könnten, alle Ihre Informationen in einen System-Prompt zu packen, um Anweisungen von der Benutzerkonversation zu trennen, funktioniert Claude tatsächlich am besten mit dem Großteil seines Prompt-Inhalts, der im ersten User-Turn geschrieben ist (mit der einzigen Ausnahme des Rollen-Promptings). Lesen Sie mehr unter Claude eine Rolle mit einem System-Prompt geben.
Es ist am besten, komplexe Prompts in Unterabschnitte zu unterteilen und einen Teil nach dem anderen zu schreiben. Für jede Aufgabe könnten Sie größeren Erfolg haben, indem Sie einem schrittweisen Prozess folgen, um die Teile des Prompts zu definieren, die Claude benötigen würde, um die Aufgabe gut zu erledigen. Für dieses Autoversicherungs-Kundensupport-Beispiel werden wir stückweise alle Teile für einen Prompt schreiben, beginnend mit der Aufgabe “Begrüßung und allgemeine Anleitung”. Dies macht auch das Debuggen Ihres Prompts einfacher, da Sie einzelne Teile des Gesamtprompts schneller anpassen können. Wir werden alle diese Teile in eine Datei namens config.py einfügen.
STATIC_GREETINGS_AND_GENERAL = """
<static_context>
Acme Auto Insurance: Ihr vertrauensvoller Begleiter auf der Straße

Über uns:
Bei Acme Insurance verstehen wir, dass Ihr Fahrzeug mehr als nur ein Transportmittel ist—es ist Ihr Ticket zu den Abenteuern des Lebens. 
Seit 1985 erstellen wir Autoversicherungspolicen, die Fahrern das Vertrauen geben, mit Seelenfrieden zu erkunden, zu pendeln und zu reisen.
Ob Sie durch Stadtstraßen navigieren oder sich auf länderübergreifende Roadtrips begeben, Acme ist da, um Sie und Ihr Fahrzeug zu schützen. 
Unsere innovativen Autoversicherungspolicen sind darauf ausgelegt, sich an Ihre einzigartigen Bedürfnisse anzupassen und alles von Blechschäden bis zu größeren Kollisionen abzudecken.
Mit Acmes preisgekröntem Kundenservice und schneller Schadensregulierung können Sie sich auf die Freude am Fahren konzentrieren, während wir uns um den Rest kümmern. 
Wir sind nicht nur ein Versicherungsanbieter—wir sind Ihr Co-Pilot in den Reisen des Lebens.
Wählen Sie Acme Auto Insurance und erleben Sie die Gewissheit, die mit überlegener Abdeckung und echter Fürsorge einhergeht. Denn bei Acme versichern wir nicht nur Ihr Auto—wir befeuern Ihre Abenteuer auf der offenen Straße.

Hinweis: Wir bieten auch spezialisierte Abdeckung für Elektrofahrzeuge an, um sicherzustellen, dass Fahrer aller Autotypen von unserem Schutz profitieren können.

Acme Insurance bietet die folgenden Produkte an:
- Autoversicherung
- Elektroauto-Versicherung
- Zweirad-Versicherung

Geschäftszeiten: Montag-Freitag, 9:00 - 17:00 EST
Kundenservice-Nummer: 1-800-123-4567
</static_context>
"""
Wir werden dann dasselbe für unsere Autoversicherungs- und Elektroauto-Versicherungsinformationen tun.
STATIC_CAR_INSURANCE="""
<static_context>
Autoversicherungsabdeckung:
Acmes Autoversicherungspolicen decken typischerweise ab:
1. Haftpflichtabdeckung: Zahlt für Körperverletzung und Sachschäden, die Sie anderen zufügen.
2. Kollisionsabdeckung: Zahlt für Schäden an Ihrem Auto bei einem Unfall.
3. Vollkaskoabdeckung: Zahlt für Schäden an Ihrem Auto durch Nicht-Kollisions-Vorfälle.
4. Medizinische Zahlungsabdeckung: Zahlt für medizinische Ausgaben nach einem Unfall.
5. Nicht-versicherte/unterversicherte Fahrerabdeckung: Schützt Sie, wenn Sie von einem Fahrer mit unzureichender Versicherung getroffen werden.

Optionale Abdeckungen umfassen:
- Mietwagen-Erstattung
- Pannenhilfe
- Neuwagen-Ersatz
</static_context>
"""

STATIC_ELECTRIC_CAR_INSURANCE="""
<static_context>
Elektroauto-Versicherung:
Unsere spezialisierte Elektroauto-Versicherung geht über traditionelle Auto-Abdeckung hinaus 
und bietet maßgeschneiderten Schutz für Ihre High-Tech-Investition. Zusätzlich zu Standard-Abdeckungen bieten wir:
- Schutz teurer Batteriesysteme
- Abdeckung von Heimlade-Ausrüstung
- Anpassung an die sich schnell entwickelnde Welt der Elektrofahrzeuge

Ob Sie einen Rivian, Nissan Leaf, Chevrolet Bolt 
oder ein anderes Elektrofahrzeug fahren, unsere sachkundigen Agenten sind bereit, eine Police zu erstellen, 
die Ihnen das Vertrauen gibt, jede elektronengetriebene Meile zu genießen.
</static_context>
"""
Jetzt, da wir unseren statischen Inhalt haben, fügen wir mindestens 4-5 Beispiele “guter” Interaktionen hinzu, um Claudes Antworten zu leiten. Diese Beispiele sollten repräsentativ für Ihre ideale Kundeninteraktion sein und können Leitplanken, Tool-Aufrufe usw. enthalten.
EXAMPLES="""
Hier sind einige Beispiele, wie Sie mit Kunden interagieren können:

<example 1>
H: Hallo, bieten Sie Gewerbeversicherung für kleine Unternehmen an?

A: Ah! Leider bieten wir derzeit keine Gewerbeversicherung an. 
Wir bieten jedoch eine Reihe von Privatversicherungsprodukten einschließlich Autoversicherung und Elektroauto-Versicherung an. 
Möchten Sie mehr über diese Angebote erfahren?
</example 1>

<example 2>
H: Hallo, was sind Ihre Geschäftsze

A: Unsere Geschäftszeiten sind Montag bis Freitag, 9:00 bis 17:00 EST. 
Wenn Sie Fragen haben oder Hilfe benötigen, zögern Sie nicht, sich während dieser Zeiten zu melden. 
Wie kann ich Ihnen heute sonst helfen?
</example 2>

<example 3>
H: Ich suche nach einer Autoversicherung. Was bietet Acme an?

A: Großartige Wahl! Acmes Autoversicherungspolicen umfassen typischerweise:
- Haftpflichtabdeckung: Schützt Sie, wenn Sie bei einem Unfall schuld sind
- Kollisionsabdeckung: Zahlt für Schäden an Ihrem Auto bei einem Unfall
- Vollkaskoabdeckung: Deckt Nicht-Kollisions-Vorfälle wie Diebstahl oder Vandalismus ab
- Medizinische Zahlungsabdeckung: Zahlt für medizinische Ausgaben nach einem Unfall
- Nicht-versicherte/unterversicherte Fahrerabdeckung: Schützt Sie vor Fahrern mit unzureichender Versicherung

Wir bieten auch optionale Abdeckungen wie Mietwagen-Erstattung, Pannenhilfe und Neuwagen-Ersatz an. 
Möchten Sie mehr Details zu einer dieser Abdeckungen oder haben Sie spezifische Fragen zur Versicherung Ihres Fahrzeugs?
</example 3>

<example 4>
H: Ich möchte über Ihre Elektroauto-Versicherung hören.

A: Gerne! Unsere Elektroauto-Versicherung ist speziell darauf ausgelegt, die einzigartigen Bedürfnisse von Elektrofahrzeug-Besitzern zu erfüllen. 
Zusätzlich zu allen Standard-Abdeckungen, die wir für normale Autos anbieten, umfassen unsere Elektroauto-Policen:

- Batterieabdeckung: Schutz vor Schäden oder Verschlechterung des teuren Batteriesystems Ihres Fahrzeugs
- Tech-Paket: Deckt Reparaturen oder Ersatz fortschrittlicher Elektronik und bordeigener Computersysteme ab
- Ladestation-Abdeckung: Schützt sowohl Heim- als auch tragbare Lade-Ausrüstung
- Cybersicherheitsschutz: Abdeckung gegen Hacking oder digitale Bedrohungen
- Spezialisierte Pannenhilfe: Umfasst Abschleppwagen-Transport zum Schutz der Fahrzeug-Unterseite

Wir decken eine breite Palette von Elektrofahrzeugen ab, einschließlich beliebter Modelle von Tesla, Rivian, Nissan, Chevrolet und mehr. 
Gibt es ein spezifisches Elektrofahrzeug, das Sie versichern möchten, oder möchten Sie mehr Details zu einer dieser Abdeckungen?
</example 4>

<example 5>
H: Ich möchte ein Angebot für meine Autoversicherung erhalten.

A: Gerne! Ich helfe Ihnen gerne dabei, ein Angebot für Ihre Autoversicherung zu erhalten. 
Um Ihnen ein genaues Angebot zu geben, muss ich einige Informationen über Ihr Fahrzeug und den Hauptfahrer sammeln. 
Beginnen wir mit den Grundlagen:

1. Was ist die Marke und das Modell Ihres Fahrzeugs?
2. In welchem Jahr wurde es hergestellt?
3. Ungefähr wie viele Kilometer sind Sie gefahren?
4. Wie alt ist der Hauptfahrer?

Sobald Sie diese Informationen bereitstellen, verwende ich unser Angebots-Tool, um ein personalisiertes Versicherungsangebot für Sie zu generieren.
</example 5>
"""
Sie möchten auch wichtige Anweisungen einschließen, die Do’s und Don’ts dafür umreißen, wie Claude mit dem Kunden interagieren sollte. Dies kann aus Marken-Leitplanken oder Support-Richtlinien stammen.
ADDITIONAL_GUARDRAILS = """Bitte halten Sie sich an die folgenden Leitplanken:
1. Stellen Sie nur Informationen über Versicherungstypen bereit, die in unseren Angeboten aufgeführt sind.
2. Wenn nach einem Versicherungstyp gefragt wird, den wir nicht anbieten, teilen Sie höflich mit, 
dass wir diesen Service nicht anbieten.
3. Spekulieren Sie nicht über zukünftige Produktangebote oder Unternehmenspläne.
4. Machen Sie keine Versprechen oder gehen Sie Vereinbarungen ein, die Sie nicht autorisiert sind zu treffen.
Sie stellen nur Informationen und Anleitung bereit.
5. Erwähnen Sie keine Produkte oder Dienstleistungen von Konkurrenten.
"""
Jetzt kombinieren wir alle diese Abschnitte in einen einzigen String, den wir als unseren Prompt verwenden.
TASK_SPECIFIC_INSTRUCTIONS = ' '.join([
   STATIC_GREETINGS_AND_GENERAL,
   STATIC_CAR_INSURANCE,
   STATIC_ELECTRIC_CAR_INSURANCE,
   EXAMPLES,
   ADDITIONAL_GUARDRAILS,
])

Fügen Sie dynamische und agentische Fähigkeiten mit Tool-Verwendung hinzu

Claude ist in der Lage, Aktionen durchzuführen und Informationen dynamisch mit clientseitiger Tool-Verwendungsfunktionalität abzurufen. Beginnen Sie damit, alle externen Tools oder APIs aufzulisten, die der Prompt verwenden sollte. Für dieses Beispiel beginnen wir mit einem Tool zur Berechnung des Angebots.
Zur Erinnerung: Dieses Tool führt nicht die tatsächliche Berechnung durch, es signalisiert nur der Anwendung, dass ein Tool mit den angegebenen Argumenten verwendet werden sollte.
Beispiel-Versicherungsangebots-Rechner:
TOOLS = [{
  "name": "get_quote",
  "description": "Berechnet das Versicherungsangebot basierend auf Benutzereingaben. Rückgabewert ist Prämie pro Monat.",
  "input_schema": {
    "type": "object",
    "properties": {
      "make": {"type": "string", "description": "Die Marke des Fahrzeugs."},
      "model": {"type": "string", "description": "Das Modell des Fahrzeugs."},
      "year": {"type": "integer", "description": "Das Jahr, in dem das Fahrzeug hergestellt wurde."},
      "mileage": {"type": "integer", "description": "Die Kilometerleistung des Fahrzeugs."},
      "driver_age": {"type": "integer", "description": "Das Alter des Hauptfahrers."}
    },
    "required": ["make", "model", "year", "mileage", "driver_age"]
  }
}]

def get_quote(make, model, year, mileage, driver_age):
    """Gibt die Prämie pro Monat in USD zurück"""
    # Sie können einen HTTP-Endpunkt oder eine Datenbank aufrufen, um das Angebot zu erhalten.
    # Hier simulieren wir eine Verzögerung von 1 Sekunde und geben ein festes Angebot von 100 zurück.
    time.sleep(1)
    return 100

Stellen Sie Ihre Prompts bereit

Es ist schwer zu wissen, wie gut Ihr Prompt funktioniert, ohne ihn in einer Test-Produktionsumgebung bereitzustellen und Bewertungen durchzuführen, also bauen wir eine kleine Anwendung mit unserem Prompt, dem Anthropic SDK und Streamlit für eine Benutzeroberfläche. In einer Datei namens chatbot.py beginnen Sie mit der Einrichtung der ChatBot-Klasse, die die Interaktionen mit dem Anthropic SDK kapselt. Die Klasse sollte zwei Hauptmethoden haben: generate_message und process_user_input.
from anthropic import Anthropic
from config import IDENTITY, TOOLS, MODEL, get_quote
from dotenv import load_dotenv

load_dotenv()

class ChatBot:
   def __init__(self, session_state):
       self.anthropic = Anthropic()
       self.session_state = session_state

   def generate_message(
       self,
       messages,
       max_tokens,
   ):
       try:
           response = self.anthropic.messages.create(
               model=MODEL,
               system=IDENTITY,
               max_tokens=max_tokens,
               messages=messages,
               tools=TOOLS,
           )
           return response
       except Exception as e:
           return {"error": str(e)}

   def process_user_input(self, user_input):
       self.session_state.messages.append({"role": "user", "content": user_input})

       response_message = self.generate_message(
           messages=self.session_state.messages,
           max_tokens=2048,
       )

       if "error" in response_message:
           return f"Ein Fehler ist aufgetreten: {response_message['error']}"

       if response_message.content[-1].type == "tool_use":
           tool_use = response_message.content[-1]
           func_name = tool_use.name
           func_params = tool_use.input
           tool_use_id = tool_use.id

           result = self.handle_tool_use(func_name, func_params)
           self.session_state.messages.append(
               {"role": "assistant", "content": response_message.content}
           )
           self.session_state.messages.append({
               "role": "user",
               "content": [{
                   "type": "tool_result",
                   "tool_use_id": tool_use_id,
                   "content": f"{result}",
               }],
           })

           follow_up_response = self.generate_message(
               messages=self.session_state.messages,
               max_tokens=2048,
           )

           if "error" in follow_up_response:
               return f"Ein Fehler ist aufgetreten: {follow_up_response['error']}"

           response_text = follow_up_response.content[0].text
           self.session_state.messages.append(
               {"role": "assistant", "content": response_text}
           )
           return response_text
      
       elif response_message.content[0].type == "text":
           response_text = response_message.content[0].text
           self.session_state.messages.append(
               {"role": "assistant", "content": response_text}
           )
           return response_text
      
       else:
           raise Exception("Ein Fehler ist aufgetreten: Unerwarteter Antworttyp")

   def handle_tool_use(self, func_name, func_params):
       if func_name == "get_quote":
           premium = get_quote(**func_params)
           return f"Angebot generiert: ${premium:.2f} pro Monat"
      
       raise Exception("Ein unerwartetes Tool wurde verwendet")

Erstellen Sie Ihre Benutzeroberfläche

Testen Sie die Bereitstellung dieses Codes mit Streamlit unter Verwendung einer Hauptmethode. Diese main()-Funktion richtet eine Streamlit-basierte Chat-Oberfläche ein. Wir machen das in einer Datei namens app.py
import streamlit as st
from chatbot import ChatBot
from config import TASK_SPECIFIC_INSTRUCTIONS

def main():
   st.title("Chat mit Eva, Acme Insurance Companys Assistentin🤖")

   if "messages" not in st.session_state:
       st.session_state.messages = [
           {'role': "user", "content": TASK_SPECIFIC_INSTRUCTIONS},
           {'role': "assistant", "content": "Verstanden"},
       ]

   chatbot = ChatBot(st.session_state)

   # Benutzer- und Assistenten-Nachrichten anzeigen, die ersten beiden überspringen
   for message in st.session_state.messages[2:]:
       # Tool-Verwendungsblöcke ignorieren
       if isinstance(message["content"], str):
           with st.chat_message(message["role"]):
               st.markdown(message["content"])

   if user_msg := st.chat_input("Geben Sie hier Ihre Nachricht ein..."):
       st.chat_message("user").markdown(user_msg)

       with st.chat_message("assistant"):
           with st.spinner("Eva denkt nach..."):
               response_placeholder = st.empty()
               full_response = chatbot.process_user_input(user_msg)
               response_placeholder.markdown(full_response)

if __name__ == "__main__":
   main()
Führen Sie das Programm aus mit:
streamlit run app.py

Bewerten Sie Ihre Prompts

Prompting erfordert oft Tests und Optimierung, um produktionsreif zu sein. Um die Bereitschaft Ihrer Lösung zu bestimmen, bewerten Sie die Chatbot-Leistung mit einem systematischen Prozess, der quantitative und qualitative Methoden kombiniert. Das Erstellen einer starken empirischen Bewertung basierend auf Ihren definierten Erfolgskriterien ermöglicht es Ihnen, Ihre Prompts zu optimieren.
Die Claude Console verfügt jetzt über ein Bewertungs-Tool, mit dem Sie Ihre Prompts unter verschiedenen Szenarien testen können.

Leistung verbessern

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

Reduzieren Sie Long-Context-Latenz mit RAG

Beim Umgang mit großen Mengen statischer und dynamischer Kontexte kann das Einschließen aller Informationen in den Prompt zu hohen Kosten, langsameren Antwortzeiten und dem Erreichen von Kontextfenster-Grenzen führen. In diesem Szenario kann die Implementierung von Retrieval Augmented Generation (RAG)-Techniken die Leistung und Effizienz erheblich verbessern. Durch die Verwendung von Embedding-Modellen wie Voyage zur Umwandlung von Informationen in Vektordarstellungen können Sie ein skalierbareres und reaktionsschnelleres System erstellen. Dieser Ansatz ermöglicht den dynamischen Abruf relevanter Informationen basierend auf der aktuellen Anfrage, anstatt alle möglichen Kontexte in jeden Prompt einzuschließen. Die Implementierung von RAG für Support-Anwendungsfälle RAG-Rezept hat gezeigt, dass sie die Genauigkeit erhöht, Antwortzeiten reduziert und API-Kosten in Systemen mit umfangreichen Kontextanforderungen senkt.

Integrieren Sie Echtzeitdaten mit Tool-Verwendung

Beim Umgang mit Anfragen, die Echtzeitinformationen erfordern, wie Kontostände oder Policendetails, sind Embedding-basierte RAG-Ansätze nicht ausreichend. Stattdessen können Sie Tool-Verwendung nutzen, um die Fähigkeit Ihres Chatbots, genaue Echtzeitantworten zu liefern, erheblich zu verbessern. Zum Beispiel können Sie Tool-Verwendung nutzen, um Kundeninformationen nachzuschlagen, Bestelldetails abzurufen und Bestellungen im Namen des Kunden zu stornieren. Dieser Ansatz, der in unserem Tool-Verwendung: Kundenservice-Agent-Rezept beschrieben ist, ermöglicht es Ihnen, Live-Daten nahtlos in Claudes Antworten zu integrieren und eine personalisiertere und effizientere Kundenerfahrung zu bieten.

Stärken Sie Eingabe- und Ausgabe-Leitplanken

Bei der Bereitstellung eines Chatbots, insbesondere in Kundenservice-Szenarien, ist es entscheidend, Risiken im Zusammenhang mit Missbrauch, themenfremden Anfragen und unangemessenen Antworten zu verhindern. Während Claude von Natur aus widerstandsfähig gegen solche Szenarien ist, sind hier zusätzliche Schritte zur Stärkung Ihrer Chatbot-Leitplanken:
  • Halluzinationen reduzieren: Implementieren Sie Faktenprüfungsmechanismen und Zitate, um Antworten in bereitgestellten Informationen zu verankern.
  • Informationen gegenprüfen: Überprüfen Sie, dass die Antworten des Agenten mit den Richtlinien Ihres Unternehmens und bekannten Fakten übereinstimmen.
  • Vertragliche Verpflichtungen vermeiden: Stellen Sie sicher, dass der Agent keine Versprechen macht oder Vereinbarungen eingeht, die er nicht autorisiert ist zu treffen.
  • Jailbreaks mildern: Verwenden Sie Methoden wie Harmlosigkeits-Screens und Eingabevalidierung, um zu verhindern, dass Benutzer Modellschwachstellen ausnutzen und unangemessene Inhalte generieren.
  • Erwähnung von Konkurrenten vermeiden: Implementieren Sie einen Konkurrenten-Erwähnungsfilter, um den Markenfokus zu behalten und keine Produkte oder Dienstleistungen von Konkurrenten zu erwähnen.
  • Claude in der Rolle halten: Verhindern Sie, dass Claude seinen Stil oder Kontext ändert, auch während langer, komplexer Interaktionen.
  • Persönlich identifizierbare Informationen (PII) entfernen: Sofern nicht ausdrücklich erforderlich und autorisiert, entfernen Sie alle PII aus Antworten.

Reduzieren Sie die wahrgenommene Antwortzeit mit Streaming

Beim Umgang mit potenziell langen Antworten kann die Implementierung von Streaming das Benutzerengagement und die Zufriedenheit erheblich verbessern. In diesem Szenario erhalten Benutzer die Antwort progressiv, anstatt auf die gesamte Antwort zu warten. So implementieren Sie Streaming:
  1. Verwenden Sie die Anthropic Streaming API, um Streaming-Antworten zu unterstützen.
  2. Richten Sie Ihr Frontend ein, um eingehende Textchunks zu verarbeiten.
  3. Zeigen Sie jeden Chunk an, sobald er ankommt, und simulieren Sie Echtzeit-Tippen.
  4. Implementieren Sie einen Mechanismus zum Speichern der vollständigen Antwort, damit Benutzer sie anzeigen können, wenn sie wegnavigieren und zurückkehren.
In einigen Fällen ermöglicht Streaming die Verwendung fortgeschrittenerer Modelle mit höheren Basis-Latenzen, da die progressive Anzeige die Auswirkungen längerer Verarbeitungszeiten mildert.

Skalieren Sie Ihren Chatbot

Wenn die Komplexität Ihres Chatbots wächst, kann sich Ihre Anwendungsarchitektur entsprechend entwickeln. Bevor Sie weitere Schichten zu Ihrer Architektur hinzufügen, betrachten Sie die folgenden weniger aufwändigen Optionen:
  • Stellen Sie sicher, dass Sie das Beste aus Ihren Prompts herausholen und durch Prompt-Engineering optimieren. Verwenden Sie unsere Prompt-Engineering-Leitfäden, um die effektivsten Prompts zu schreiben.
  • Fügen Sie zusätzliche Tools zum Prompt hinzu (die Prompt-Ketten einschließen können) und sehen Sie, ob Sie die erforderliche Funktionalität erreichen können.
Wenn Ihr Chatbot unglaublich vielfältige Aufgaben bewältigt, möchten Sie möglicherweise einen separaten Intent-Klassifizierer hinzufügen, um die anfängliche Kundenanfrage zu routen. Für die bestehende Anwendung würde dies das Erstellen eines Entscheidungsbaums beinhalten, der Kundenanfragen durch den Klassifizierer und dann zu spezialisierten Gesprächen (mit ihren eigenen Tool-Sets und System-Prompts) routen würde. Beachten Sie, dass diese Methode einen zusätzlichen Aufruf an Claude erfordert, der die Latenz erhöhen kann.

Integrieren Sie Claude in Ihren Support-Workflow

Während sich unsere Beispiele auf Python-Funktionen konzentriert haben, die in einer Streamlit-Umgebung aufrufbar sind, erfordert die Bereitstellung von Claude für Echtzeit-Support-Chatbot einen API-Service. So können Sie dies angehen:
  1. Erstellen Sie einen API-Wrapper: Entwickeln Sie einen einfachen API-Wrapper um Ihre Klassifizierungsfunktion. Zum Beispiel können Sie Flask API oder Fast API verwenden, um Ihren Code in einen HTTP-Service zu verpacken. Ihr HTTP-Service könnte die Benutzereingabe akzeptieren und die Assistenten-Antwort in ihrer Gesamtheit zurückgeben. Somit könnte Ihr Service die folgenden Eigenschaften haben:
    • Server-Sent Events (SSE): SSE ermöglicht Echtzeit-Streaming von Antworten vom Server zum Client. Dies ist entscheidend für eine reibungslose, interaktive Erfahrung bei der Arbeit mit LLMs.
    • Caching: Die Implementierung von Caching kann Antwortzeiten erheblich verbessern und unnötige API-Aufrufe reduzieren.
    • Kontextbeibehaltung: Die Beibehaltung des Kontexts, wenn ein Benutzer wegnavigiert und zurückkehrt, ist wichtig für die Kontinuität in Gesprächen.
  2. Erstellen Sie eine Web-Oberfläche: Implementieren Sie eine benutzerfreundliche Web-UI für die Interaktion mit dem Claude-gestützten Agenten.