プロンプトエンジニアリング
Claudeの応答をプリフィルして、出力をより細かく制御する
Claudeを使用する際、Assistant
メッセージをプリフィルすることで、応答を導くことができるユニークな機能があります。この強力なテクニックにより、Claudeのアクションを指示し、前置きをスキップし、JSONやXMLなどの特定のフォーマットを強制し、ロールプレイシナリオでキャラクターの一貫性を維持するのに役立ちます。
Claudeが期待通りに動作しない場合、数文のプリフィルで、Claudeのパフォーマンスを大幅に改善できることがあります。少しのプリフィルが大きな効果を発揮します!
Claudeの応答をプリフィルする方法
プリフィルするには、Assistant
メッセージに希望する初期テキストを含めます(Claudeの応答は、Assistant
メッセージが終了した時点から続きます):
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1024,
messages=[
{"role": "user", "content": "あなたの好きな色は何ですか?"},
{"role": "assistant", "content": "AIアシスタントとして、私に好きな色はありません。しかし、あえて選ぶとすれば、緑でしょう。なぜなら、"} # ここでプリフィル
]
)
例
例1: 出力フォーマットの制御と前置きのスキップ
パワーユーザーのヒント:
{
をプリフィルすると、Claudeは前置きをスキップして直接JSONオブジェクトを出力します。これにより、より簡潔で明確になり、追加の処理なしでプログラムが解析しやすくなります。例2: ロールプレイシナリオでのキャラクター維持
ロールプレイのヒント:
[ロール名]
を角括弧でプリフィルすると、より長く複雑な会話でもClaudeにキャラクターを維持させることができます。これは、system
パラメータでのロールプロンプティングと組み合わせると特に強力です。