Cosa sono i system prompt?

Un system prompt è un modo per fornire contesto, istruzioni e linee guida a Claude prima di presentargli una domanda o un compito. Utilizzando un system prompt, puoi impostare le basi per la conversazione, specificando il ruolo, la personalità, il tono di Claude o qualsiasi altra informazione rilevante che lo aiuterà a comprendere meglio e rispondere all’input dell’utente.

I system prompt possono includere:

  • Istruzioni e obiettivi del compito
  • Tratti della personalità, ruoli e linee guida sul tono
  • Informazioni contestuali per l’input dell’utente
  • Vincoli di creatività e guida allo stile
  • Conoscenze esterne, dati o materiale di riferimento
  • Regole, linee guida e guardrail
  • Standard e requisiti di verifica dell’output

Vantaggi dell’utilizzo dei system prompt

L’incorporazione di system prompt ben realizzati può migliorare significativamente le prestazioni di Claude e la qualità dell’output. Alcuni dei principali vantaggi includono:

  1. Miglioramento del role-playing e della coerenza del personaggio: Quando si assegna a Claude un ruolo o una personalità specifica attraverso un system prompt, può mantenere quel personaggio in modo più efficace durante la conversazione, mostrando risposte più naturali e creative pur rimanendo nel personaggio.
  2. Maggiore adesione a regole e istruzioni: I system prompt possono aiutare Claude a comprendere e seguire meglio le linee guida, rendendolo meno probabile che esegua compiti proibiti, produca contenuti limitati o si discosti dalle istruzioni fornite.
  3. Miglioramento della comprensione del contesto: Fornendo informazioni di base rilevanti o materiale di riferimento nel system prompt, puoi migliorare la comprensione dell’input dell’utente da parte di Claude e consentirgli di generare risposte più accurate e consapevoli del contesto.
  4. Formattazione dell’output personalizzata: I system prompt possono essere utilizzati per specificare i formati di output desiderati, come intestazioni, elenchi, tabelle o blocchi di codice, garantendo che le risposte di Claude siano strutturate e presentate in un modo che meglio si adatta alle tue esigenze.

È importante notare che, sebbene i system prompt possano aumentare la robustezza e la resilienza di Claude contro comportamenti indesiderati, non garantiscono una protezione completa contro jailbreak o leak. Tuttavia, forniscono un ulteriore livello di guida e controllo sull’output di Claude.


Come utilizzare i system prompt

Per utilizzare i system prompt con l’API Messages, imposta il parametro system sul testo del system prompt desiderato. Ecco un esempio di chiamata API:

Python
import anthropic

client = anthropic.Client(api_key="YOUR_API_KEY")

response = client.messages.create(
    model="claude-2.1",
    system="Rispondi solo in spagnolo.", # <-- system prompt
    messages=[
        {"role": "user", "content": "Ciao, Claude!"} # <-- user prompt
    ]
)

print(response.message)

Per ulteriori informazioni, consulta la nostra documentazione dell’API Messages.

Nota: Puoi anche utilizzare i system prompt nella Console, ma non su claude.ai.


Tecniche di prompting

Puoi applicare le stesse tecniche di prompting che utilizzeresti in un user prompt anche a un system prompt. Ad esempio, puoi:

  1. Specificare la formattazione dell’output: Fornisci esempi di risposte o istruzioni per i modelli di output desiderati all’interno del system prompt per guidare il comportamento di Claude.
  2. Fornire documenti, guide e materiale di riferimento: Includi informazioni rilevanti o contenuti RAG nel system prompt per aiutare Claude a generare risposte più informate e accurate.
  3. Utilizzare i tag XML, specialmente per strutturare documenti lunghi: Utilizza i tag XML per organizzare il tuo system prompt in sezioni per migliorare la chiarezza. Quando incorpori più documenti o documenti lunghi nel system prompt, puoi utilizzare il formato XML multi-documento per aiutare Claude a comprendere e utilizzare meglio le informazioni fornite.

Domande frequenti

Come faccio a sapere quando utilizzare un system prompt rispetto a un user prompt?

Il prompting è tutto sperimentazione, quindi ti consigliamo di provare entrambi i modi! Ma in generale, puoi pensare ai system prompt come uno spazio per fornire indicazioni sull’interazione complessiva con Claude, e al turno user come parte dell’interazione stessa, o quando hai solo un compito una tantum che vuoi realizzare.

Come posso convertire i miei prompt esistenti solo per l’utente in system prompt?

Per convertire i tuoi prompt solo user in system prompt, sposta semplicemente qualsiasi contenuto che non fa parte dell’input dell’utente nel parametro system nell’API Messages. Questo può includere istruzioni per il compito, linee guida sulla personalità, materiale di riferimento o qualsiasi altra informazione contestuale che aiuti a impostare le basi per la conversazione. Ti incoraggiamo a sperimentare per vedere cosa funziona meglio in quale campo.

Dove posso utilizzare i system prompt?

I system prompt sono attualmente disponibili per l’uso con i modelli Claude 3 e Claude 2.1 tramite la nostra API, Console, l’API di Amazon Bedrock e l’API di Google Cloud Vertex AI. Non sono supportati su claude.ai al momento.

I system prompt rendono i miei prompt a prova di jailbreak o di leak?

Sebbene Claude sia già altamente resiliente ai jailbreak e ai comportamenti indesiderati grazie ai suoi metodi di addestramento (ad esempio, RLHF e Constitutional AI), i system prompt possono migliorare ulteriormente la capacità di Claude di aderire a istruzioni e linee guida. Tuttavia, non garantiscono una protezione completa contro jailbreak o leak.