Wird geladen

Wenn du KI-Chatbots für bestimmte Anwendungsfälle entwickelst, brauchst du eine Möglichkeit, zu steuern, wie die KI antwortet. System-Prompts sind der Schlüssel, um eine allgemeine KI in einen spezialisierten Assistenten zu verwandeln, der bestimmten Richtlinien folgt und beim Thema bleibt.

Das Problem mit Anweisungen auf Benutzerebene

Du könntest denken, die Lösung sei, alle deine Anforderungen direkt in die Benutzernachricht aufzunehmen. Zum Beispiel, der KI in jedem Gespräch zu sagen, „AWS-Dienste zu erwähnen" und „keine Wettbewerber zu erwähnen". Dieser Ansatz hat ernsthafte Einschränkungen:

  • Du müsstest jede mögliche Frage und jeden Grenzfall vorhersehen
  • Die Liste der Anweisungen wird unhandlich und repetitiv
  • Benutzer sehen alle internen Anweisungen, was Gespräche unübersichtlich macht
  • Anforderungen ändern sich je nach der konkret gestellten Frage

System-Prompts: Ein besserer Ansatz

System-Prompts lösen dieses Problem, indem sie Claude eine Rolle zum Spielen geben. Anstatt konkrete Gebote und Verbote aufzulisten, sagst du Claude, sich wie eine bestimmte Art von Fachperson zu verhalten. Die KI antwortet dann so, wie diese Person natürlich antworten würde.

System-Prompts bieten mehrere wichtige Vorteile:

  • Claude erhält Orientierung, wie es konsistent antworten soll
  • Die KI übernimmt die Denkweise und Einschränkungen der angegebenen Rolle
  • Antworten bleiben automatisch fokussiert und markenkonform
  • Du musst nicht jedes mögliche Szenario vorhersehen

System-Prompts implementieren

Um einen System-Prompt zu deinem Claude-Gespräch hinzuzufügen, übergibst du ihn als Parameter an die Funktion converse:

python
system_prompt = """
You are an AWS cloud support specialist. Your job is to answer user queries related 
to cloud hosting services on AWS.
"""

response = client.converse(
    modelId=model_id, 
    messages=messages, 
    system=[{"text": system_prompt}]
)

Der System-Prompt wird als Liste übergeben, die ein Dictionary mit einem „text"-Schlüssel enthält. Dies teilt Claude mit, welche Rolle es einnehmen soll, bevor es irgendwelche Benutzernachrichten sieht.

Eine flexible Chat-Funktion erstellen

Hier ist eine wiederverwendbare Chat-Funktion, die System-Prompts elegant handhabt:

python
def chat(messages, system=None):
    params = {"modelId": model_id, "messages": messages}
    
    if system:
        params["system"] = [{"text": system}]
    
    response = client.converse(**params)
    
    return response["output"]["message"]["content"][0]["text"]

Dieser Ansatz erlaubt es dir, optional einen System-Prompt einzubeziehen. Wenn kein System-Prompt angegeben wird, antwortet Claude als sein Standard-Selbst. Wenn du einen einbeziehst, übernimmt Claude diese bestimmte Rolle.

System-Prompts in Aktion

Der Unterschied wird sofort deutlich, wenn du dieselbe Frage mit und ohne System-Prompt testest. Frage „Wie hoste ich eine Postgres-Datenbank?" ohne System-Prompt, und du erhältst eine umfassende Antwort, die mehrere Cloud-Anbieter und Self-Hosting-Optionen abdeckt.

Mit einem System-Prompt für einen AWS-Support-Spezialisten konzentriert sich die Antwort ausschließlich auf AWS-Lösungen wie RDS, Aurora und EC2-basierte Deployments. Keine Wettbewerber werden erwähnt, und die Antwort enthält AWS-spezifische Einrichtungsschritte.

Noch beeindruckender ist, wie System-Prompts mit themenfremden Fragen umgehen. Frage nach einem Brotrezept mit aktivem AWS-Spezialisten-Prompt, und Claude lehnt höflich ab, während es in der Rolle bleibt:

Wichtige technische Details

Beachte bei der Arbeit mit System-Prompts folgende Anforderungen:

  • System-Prompts dürfen keine leeren Zeichenketten sein – sie müssen mindestens ein Zeichen enthalten
  • Der system-Parameter erwartet eine Liste von Dictionaries mit „text"-Schlüsseln
  • System-Prompts werden vor allen Benutzernachrichten im Gespräch verarbeitet
  • Du kannst den übergeordneten system-Wert zwischen Anfragen ändern, aber nicht mitten in einer einzelnen messages-Liste

Wenn du direkt mit Anthropics Claude API gearbeitet hast, weißt du vielleicht, dass einige Claude-Modelle System-Nachrichten mitten im Gespräch unterstützen – das Hinzufügen einer Nachricht mit der Rolle system zum messages-Array, anstatt das übergeordnete Feld zu ändern. Diese Funktion ist auf Amazon Bedrock nicht verfügbar. In diesem Kurs legst du System-Anweisungen immer über den übergeordneten system-Parameter bei jedem converse-Aufruf fest.

System-Prompts geben dir mächtige Kontrolle über das Verhalten der KI, ohne komplexe Regelsysteme. Indem du Claude eine bestimmte Fachrolle zuweist, erhältst du konsistente, angemessene Antworten, die natürlich den Einschränkungen und der Expertise dieser Rolle folgen.