Chargement

Lorsque vous créez des chatbots IA pour des cas d'usage spécifiques, vous avez besoin d'un moyen de contrôler la façon dont l'IA répond. Les invites système sont la clé pour transformer une IA à usage général en un assistant spécialisé qui suit des directives spécifiques et reste sur le sujet.

Le problème des instructions au niveau utilisateur

Vous pourriez penser que la solution consiste à inclure toutes vos exigences dans le message utilisateur lui-même. Par exemple, en indiquant à l'IA dans chaque conversation de « mentionner les services AWS » et de « ne pas mentionner les concurrents ». Cette approche présente de sérieuses limitations :

  • Vous devriez anticiper chaque question possible et chaque cas particulier
  • La liste d'instructions devient lourde et répétitive
  • Les utilisateurs voient toutes les instructions internes, ce qui rend les conversations encombrées
  • Les exigences changent en fonction de la question spécifique posée

Les invites système : une meilleure approche

Les invites système résolvent ce problème en donnant à Claude un rôle à jouer. Au lieu de lister des choses à faire et à ne pas faire spécifiques, vous demandez à Claude d'agir comme un type particulier de professionnel. L'IA répond alors comme cette personne répondrait naturellement.

Les invites système offrent plusieurs avantages clés :

  • Claude bénéficie de conseils sur la façon de répondre de manière cohérente
  • L'IA adopte l'état d'esprit et les contraintes du rôle spécifié
  • Les réponses restent ciblées et conformes à la marque automatiquement
  • Vous n'avez pas besoin d'anticiper chaque scénario possible

Mise en œuvre des invites système

Pour ajouter une invite système à votre conversation Claude, vous la transmettez comme paramètre à la fonction 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}]
)

L'invite système est transmise sous forme de liste contenant un dictionnaire avec une clé « text ». Cela indique à Claude quel rôle adopter avant même qu'il ne voie les messages de l'utilisateur.

Construction d'une fonction de chat flexible

Voici une fonction de chat réutilisable qui gère les invites système de manière élégante :

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"]

Cette approche vous permet d'inclure facultativement une invite système. Lorsqu'aucune invite système n'est fournie, Claude répond en tant que lui-même par défaut. Lorsque vous en incluez une, Claude adopte ce rôle spécifique.

Les invites système en action

La différence est immédiatement apparente lorsque vous testez la même question avec et sans invite système. Demandez « Comment héberger une base de données Postgres ? » sans invite système, et vous obtiendrez une réponse complète couvrant plusieurs fournisseurs cloud et options d'auto-hébergement.

Avec une invite système de spécialiste du support AWS, la réponse se concentre exclusivement sur les solutions AWS comme RDS, Aurora et les déploiements basés sur EC2. Aucun concurrent n'est mentionné, et la réponse inclut des étapes de configuration spécifiques à AWS.

Encore plus impressionnant est la façon dont les invites système gèrent les questions hors sujet. Demandez une recette de pain avec l'invite de spécialiste AWS active, et Claude refuse poliment tout en restant dans son rôle :

Détails techniques importants

Lorsque vous travaillez avec des invites système, gardez ces exigences à l'esprit :

  • Les invites système ne peuvent pas être des chaînes vides - elles doivent contenir au moins un caractère
  • Le paramètre system attend une liste de dictionnaires avec des clés « text »
  • Les invites système sont traitées avant tout message utilisateur dans la conversation
  • Vous pouvez modifier la valeur de premier niveau system entre les requêtes, mais pas en cours de route dans une même liste messages

Si vous avez déjà travaillé directement avec l'API Claude d'Anthropic, vous savez peut-être que certains modèles Claude prennent en charge les messages système en milieu de conversation — en ajoutant un message avec le rôle system au tableau messages au lieu de modifier le champ de premier niveau. Cette fonctionnalité n'est pas disponible sur Amazon Bedrock. Dans ce cours, vous définirez toujours les instructions système via le paramètre de premier niveau system à chaque appel converse.

Les invites système vous donnent un contrôle puissant sur le comportement de l'IA sans systèmes de règles complexes. En attribuant à Claude un rôle professionnel spécifique, vous obtenez des réponses cohérentes et appropriées qui suivent naturellement les contraintes et l'expertise de ce rôle.