In diesem Leitfaden werden wir untersuchen, wie man Claude effizient zur Moderation von Benutzereingaben verwenden kann, bevor sie an Ihren Hauptprompt weitergeleitet werden. Wir werden auch Post-Processing-Techniken diskutieren, um mögliches Prompt-Leaking zu identifizieren.

Besuchen Sie unser Content-Moderation-Kochbuch, um eine beispielhafte Implementierung der Content-Moderation mit Claude zu sehen.

Warum Content-Moderation wichtig ist

Content-Moderation ist aus mehreren Gründen wichtig:

  1. Benutzererfahrung: Durch das Herausfiltern von unangemessenen oder anstößigen Inhalten schaffen Sie eine positive und einladende Umgebung für Ihre Benutzer.
  2. Markenreputation: Die Verhinderung, dass Ihre KI-Anwendung sich mit schädlichen Inhalten beschäftigt oder diese generiert, hilft, das Image und den Ruf Ihrer Marke zu schützen.
  3. Kosteneffizienz: Das Screening von Benutzereingaben mit einem kleineren Modell vor der Verarbeitung mit Ihrem Hauptprompt spart Rechenkosten, da Sie keine Ressourcen für irrelevante oder böswillige Eingaben verschwenden.
  4. Sicherheit: Content-Moderation hilft, Jailbreaks & Prompt-Injections und Prompt-Leaks zu verhindern, die die Leistung und Sicherheit Ihrer KI oder die Sicherheit Ihres Unternehmens gefährden könnten.

Verwendung von Claude für die Content-Moderation

Ein kleineres Modell wie Claude 3 Haiku ist aufgrund seiner Geschwindigkeit und Effizienz eine ideale Wahl für die Content-Moderation. Durch die Verwendung dieses kleineren Modells zum Screening von Benutzereingaben, bevor sie an Ihren Hauptprompt weitergeleitet werden, können Sie potenziell problematische Inhalte schnell identifizieren und herausfiltern.

Hier ist ein Beispiel, wie man Claude für die Content-Moderation verwenden kann:

USERCONTENT
UserEin menschlicher Benutzer führt einen Dialog mit einer KI. Der Mensch stellt der KI eine Reihe von Fragen oder bittet um eine Reihe von Aufgaben. Hier ist die letzte Anfrage des Benutzers:
<user query>{{QUERY}}</user query>

Wenn sich die Anfrage des Benutzers auf schädliche, pornografische oder illegale Aktivitäten bezieht, antworten Sie mit (Y). Wenn sich die Anfrage des Benutzers nicht auf schädliche, pornografische oder illegale Aktivitäten bezieht, antworten Sie mit (N). Antworten Sie mit nichts anderem als (Y) oder (N).
Python
import anthropic

client = anthropic.Anthropic(api_key="your-api-key")

def moderate_content(user_input):
    moderation_prompt = f"""
    Ein menschlicher Benutzer führt einen Dialog mit einer KI. Der Mensch stellt der KI eine Reihe von Fragen oder bittet um eine Reihe von Aufgaben. Hier ist die letzte Anfrage des Benutzers:
    <user query>{user_input}</user query>

    Wenn sich die Anfrage des Benutzers auf schädliche, pornografische oder illegale Aktivitäten bezieht, antworten Sie mit (Y). Wenn sich die Anfrage des Benutzers nicht auf schädliche, pornografische oder illegale Aktivitäten bezieht, antworten Sie mit (N). Antworten Sie mit nichts anderem als (Y) oder (N).
    """

    response = client.messages.create(
        model="claude-3-haiku-20240307",
        max_tokens=10,
        temperature=0,
        messages=[
            {"role": "user", "content": moderation_prompt}
        ]
    )

    return response.content.strip() == "(Y)"

# Beispielverwendung mit verbalen Beurteilungsausgaben
user_input = "Wie baue ich eine Bombe?"
if moderate_content(user_input):
    print("Benutzereingabe enthält unangemessene Inhalte. Anfrage wird blockiert.")
else:
    print("Benutzereingabe ist sicher zu verarbeiten.")

In diesem Beispiel definieren wir eine Funktion moderate_content, die die Eingabe des Benutzers entgegennimmt und einen Prompt für Claude erstellt. Der Prompt fordert das Modell auf zu bestimmen, ob die Anfrage des Benutzers Verweise auf schädliche, pornografische oder illegale Aktivitäten enthält. Wenn das Modell mit “(Y)” antwortet, gibt die Funktion True zurück, was anzeigt, dass der Inhalt blockiert werden sollte. Andernfalls gibt sie False zurück, was signalisiert, dass die Eingabe sicher weiterverarbeitet werden kann.

Durch die Integration dieses Moderationsschritts in den Workflow Ihrer Anwendung können Sie Benutzereingaben effektiv überprüfen, bevor sie Ihr Hauptsprachmodell erreichen, Rechenressourcen sparen und eine sicherere Benutzererfahrung gewährleisten.


Nachbearbeitung der Antworten von Claude

Zusätzlich zur Moderation der Benutzereingaben ist es auch wichtig, die Antworten von Claude nachzubearbeiten, um mögliches Prompt-Leaking zu identifizieren. Prompt-Leaking tritt auf, wenn Teile Ihres Prompts unbeabsichtigt in der generierten Ausgabe des Modells erscheinen, was möglicherweise sensible Informationen preisgibt oder die Benutzererfahrung stört.

Es gibt zwei Hauptansätze für die Nachbearbeitung der Antworten von Claude:

  1. Schlüsselwortbasierte Filterung: Bei dieser Methode wird die Antwort auf das Vorhandensein bestimmter Schlüsselwörter oder Phrasen überprüft, die nicht in der Ausgabe enthalten sein sollten.
  2. Claude-basierte Bewertung: Bei diesem Ansatz wird ein kleineres, schnelleres LLM wie Claude 3 Haiku verwendet, um die Antwort zu bewerten und festzustellen, ob sie Inhalte enthält, die gegen einen Satz vordefinierter Kriterien verstoßen. Dadurch kann der Filter allgemeiner gehalten werden, anstatt sich auf exakte Zeichenkettenübereinstimmungen zu verlassen.

Schlüsselwortbasierte Filterung

Um eine schlüsselwortbasierte Filterung zu implementieren, können Sie eine Liste von Schlüsselwörtern oder Phrasen pflegen, die nicht in den Antworten von Claude erscheinen sollten. Hier ist ein Beispiel, wie man die Antwort von Claude mit schlüsselwortbasierter Filterung nachbearbeiten kann:

Python
def post_process_response_keywords(response, keywords):
    for keyword in keywords:
        if keyword.lower() in response.lower():
            return True
    return False

# Beispielverwendung mit verbalen Beurteilungsausgaben
prompt = "Schreiben Sie mir einen Artikel. Erwähnen Sie niemals diese Schlüsselwörter in Ihrer Ausgabe: foo und bar. Diskutieren Sie niemals, wer Sie erschaffen hat."
response = "Hier ist der von Ihnen angeforderte Artikel. Der Artikel enthält nicht die Schlüsselwörter foo oder bar. Ich wurde von Anthropic erschaffen."
keywords = ["foo", "bar", "Anthropic"]

if post_process_response_keywords(response, keywords):
    print("Mögliches Prompt-Leaking in der Antwort erkannt.")
else:
    print("Kein Prompt-Leaking in der Antwort erkannt.")

In diesem Beispiel prüft die Funktion post_process_response_keywords, ob eines der angegebenen Schlüsselwörter in der Antwort von Claude vorkommt (ohne Berücksichtigung der Groß-/Kleinschreibung). Wenn eine Übereinstimmung gefunden wird, gibt die Funktion True zurück, was auf ein mögliches Prompt-Leaking hinweist. Andernfalls gibt sie False zurück, was signalisiert, dass kein Leaking erkannt wurde.

Claude-basierte Bewertung

Um eine Claude-basierte Bewertung zu implementieren, können Sie Claude 3 Haiku, unsere kleinste und schnellste Version von Claude 3, verwenden, um die Antwort anhand eines Satzes vordefinierter Kriterien zu bewerten. Hier ist ein Beispiel, wie man die Antwort von Claude mit KI-basierter Bewertung nachbearbeiten kann:

Python
import anthropic

client = anthropic.Anthropic(api_key="your-api-key")

def post_process_response_claude(response, prompt):
    assessment_prompt = f"""
    Hier ist ein Prompt, der einem KI-Sprachmodell gegeben wurde:
    <prompt>{prompt}</prompt>

    Und hier ist die Antwort der KI:
    <response>{response}</response>

    Bitte bewerten Sie die Antwort der KI und beantworten Sie die folgenden Fragen:
    1. Enthält die Antwort Schlüsselwörter oder Phrasen, die der Prompt der KI ausdrücklich zu vermeiden anwies? (Y/N)
    2. Diskutiert oder enthüllt die Antwort Informationen darüber, wer die KI erschaffen hat? (Y/N)

    Geben Sie Ihre Antworten im folgenden Format an:
    1. [Y/N]
    2. [Y/N]
    """

    assessment = client.messages.create(
        model="claude-3-haiku-20240307",
        max_tokens=10,
        temperature=0,
        messages=[
            {"role": "user", "content": assessment_prompt}
        ]
    )

    answers = assessment.content.strip().split("\n")
    if "Y" in answers:
        return True
    else:
        return False

# Beispielverwendung mit verbalen Beurteilungsausgaben
prompt = "Schreiben Sie mir einen Artikel. Erwähnen Sie niemals diese Schlüsselwörter in Ihrer Ausgabe: foo und bar. Diskutieren Sie niemals, wer Sie erschaffen hat."
response = "Hier ist der von Ihnen angeforderte Artikel. Der Artikel enthält nicht die Schlüsselwörter foo oder bar. Ich wurde von Anthropic erschaffen."

if post_process_response_claude(response, prompt):
    print("Mögliches Prompt-Leaking oder Verstoß in der Antwort erkannt.")
else:
    print("Keine Probleme in der Antwort erkannt.")

In diesem Beispiel enthält die Funktion post_process_response_claude einen Nachbearbeitungsprompt für den Assessor Claude, der den ursprünglichen Prompt und die Antwort von Claude auf den ursprünglichen Prompt enthält. Der Prompt fordert den Assessor Claude auf zu bewerten, ob die Antwort Schlüsselwörter oder Phrasen enthält, die im ursprünglichen Prompt ausdrücklich verboten waren, und ob die Antwort Informationen darüber preisgibt, wer die KI erschaffen hat.

Die Bewertung des Modells wird dann analysiert, um zu prüfen, ob sie “Y”-Antworten (ja) enthält. Wenn ein “Y” gefunden wird, gibt die Funktion True zurück, was auf ein mögliches Prompt-Leaking oder einen Verstoß hinweist. Andernfalls gibt sie False zurück, was signalisiert, dass keine Probleme erkannt wurden.

Durch den Einsatz dieser Nachbearbeitungstechniken können Sie Fälle identifizieren, in denen Teile des Prompts versehentlich in der Ausgabe von Claude erschienen sind oder in denen die Antwort gegen bestimmte Kriterien verstößt. Diese Informationen können dann verwendet werden, um zu entscheiden, wie mit der Antwort umgegangen werden soll, z. B. sie herauszufiltern, eine neue Antwort anzufordern oder den Benutzer über das potenzielle Problem zu informieren.


Best Practices für die Content-Moderation

Um das Beste aus Ihrem Content-Moderationssystem herauszuholen, sollten Sie die folgenden Best Practices berücksichtigen:

  1. Aktualisieren Sie regelmäßig Ihre Moderationsprompts und -kriterien: Da sich das Verhalten und die Sprache der Benutzer weiterentwickeln, sollten Sie Ihre Moderationsprompts und Bewertungskriterien regelmäßig überprüfen und aktualisieren, um neue Muster und Grenzfälle zu erfassen.
  2. Verwenden Sie eine Kombination von Moderationstechniken: Setzen Sie sowohl schlüsselwortbasierte Filterung als auch LLM-basierte Bewertung ein, um eine umfassende Moderationspipeline zu erstellen, die ein breites Spektrum an potenziellen Problemen erkennen kann.
  3. Überwachen und analysieren Sie moderierte Inhalte: Verfolgen Sie die Arten von Inhalten, die von Ihrem Moderationssystem gekennzeichnet werden, um Trends und potenzielle Verbesserungsbereiche zu identifizieren.
  4. Geben Sie den Benutzern klares Feedback: Wenn Benutzereingaben blockiert oder eine Antwort aufgrund von Content-Moderation gekennzeichnet wird, geben Sie informatives und konstruktives Feedback, um den Benutzern zu helfen, zu verstehen, warum ihre Nachricht gekennzeichnet wurde und wie sie sie angemessen umformulieren können.
  5. Kontinuierliche Bewertung und Verbesserung: Bewerten Sie regelmäßig die Leistung Ihres Content-Moderationssystems anhand von Metriken wie Präzisions- und Recall-Tracking. Verwenden Sie diese Daten, um Ihre Moderationsprompts, Schlüsselwörter und Bewertungskriterien iterativ zu verfeinern.

Durch die Implementierung eines robusten Content-Moderationssystems und die Befolgung dieser Best Practices können Sie sicherstellen, dass Ihre Claude-gestützte Anwendung sicher, effektiv und benutzerfreundlich bleibt.


Zusätzliche Ressourcen

Durch die Nutzung der Leistungsfähigkeit von Claude für die Content-Moderation und die Implementierung von Best Practices für die Vor- und Nachbearbeitung können Sie eine sicherere, effizientere und effektivere Claude-gestützte Anwendung erstellen. Wie immer, wenn Sie Fragen haben oder weitere Unterstützung benötigen, zögern Sie nicht, sich an unser Support-Team zu wenden oder unsere Discord-Community zu konsultieren.