Claudeの応答を事前入力する
Claudeを使用する際、Assistant
メッセージを事前入力することで、Claudeの応答を独自に導くことができます。この強力なテクニックにより、Claudeのアクションを指示し、出力フォーマットを制御し、ロールプレイシナリオでClaudeのキャラクターを維持することができます。Claudeが期待通りに動作しない場合、事前に入力された数文でClaudeのパフォーマンスを大幅に改善できることがあります。
Claude 2.1の高度に効果的な事前入力の例については、ブログ記事Long context prompting for Claude 2.1をご覧ください。
なぜClaudeの応答を事前入力するのか?
Claudeの応答を事前入力することには、いくつかの重要な利点があります。
- 操作性の向上: Claudeが続けるための初期テキストを提供することで、Claudeの応答を望ましい方向に導くことができます。これは、Claudeに特定のトピックに集中させたり、特定のタイプのコンテンツを生成させたり、特定の方法で行動させたりしたい場合に特に便利です。
- 出力フォーマットの制御: 事前入力により、Claudeに使用してほしい出力の正確なフォーマットを指定できます。これは、JSONやXMLなどの構造化データフォーマットを扱う際に特に便利です。詳細については、出力フォーマットの制御に関するガイドをご覧ください。
- キャラクターの一貫性維持: ロールプレイシナリオでは、Claudeの応答を事前入力することで、長い会話を通してClaudeのキャラクターを維持するのに役立ちます。
Assistant
メッセージでClaudeの役割を一貫して思い出させることで、Claudeが望ましいペルソナを維持することをより確実にできます。詳細は、Claudeのキャラクターを維持するをご覧ください。
Claudeの応答を事前入力する方法
Claudeの応答を事前入力するには、APIリクエストを行う際に、Assistant
メッセージに希望する初期テキストを含めるだけです。以下は、プロンプトの例です。
Role | Good Prompt |
---|---|
User | 次の製品説明から、名前、サイズ、価格、色を抽出し、JSONオブジェクト内に出力してください。 <description>SmartHome Miniは、ブラックまたはホワイトで49.99ドルという手頃な価格のコンパクトなスマートホームアシスタントです。幅わずか5インチで、家のどこに置いても、音声やアプリを介して照明、サーモスタット、その他の接続されたデバイスを制御できます。この手頃な価格の小さなハブにより、スマートデバイスを便利にハンズフリーで制御できます。</description> |
Assistant (prefill) | { |
この例では、Assistant
メッセージを{
で始めることで、Claudeの出力を要求されたJSONスキーマの残りの部分に制約しています。
Role | Response |
---|---|
Assistant (Claude’s response) | “name”: “SmartHome Mini”, “size”: “幅5インチ”, “price”: “$49.99”, “colors”: [ “ブラック”, “ホワイト” ] } |
上記のプロンプトをMessages APIフォーマットでコードで書くと以下のようになります。
Python
import anthropic
client = anthropic.Anthropic(
# デフォルトはos.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-2.1",
max_tokens=1000,
temperature=0,
messages=[
{
"role": "user",
"content": "次の製品説明から、名前、サイズ、価格、色を抽出し、JSONオブジェクト内に出力してください。\n\n<description>SmartHome Miniは、ブラックまたはホワイトで49.99ドルという手頃な価格のコンパクトなスマートホームアシスタントです。幅わずか5インチで、家のどこに置いても、音声やアプリを介して照明、サーモスタット、その他の接続されたデバイスを制御できます。この手頃な価格の小さなハブにより、スマートデバイスを便利にハンズフリーで制御できます。\n</description>"
}
{
"role": "assistant",
"content": "{"
}
]
)
print(message.content)
追加リソース
- プロンプトエンジニアリングのテクニック: プロンプトを最適化し、Claudeのパフォーマンスを向上させるための他の戦略を探ります。
- Anthropic Cookbook: Claudeを使用した高度に効果的で高度なテクニック、統合、実装を示すコピー可能なコードスニペットを含むJupyterノートブックのコレクションを閲覧します。
- プロンプトライブラリ: さまざまなタスクとユースケースのために厳選されたプロンプトからインスピレーションを得てください。