Claudeを使用してLLMベースのアプリケーションをデプロイする際、APIコールは通常2種類のコンテンツで構成されます:
  • 固定コンテンツ: 複数のインタラクション間で一定のままの静的な指示やコンテキスト
  • 可変コンテンツ: 各リクエストや会話で変化する動的要素、例えば:
    • ユーザー入力
    • Retrieval-Augmented Generation(RAG)用の取得されたコンテンツ
    • ユーザーアカウント履歴などの会話コンテキスト
    • Claudeへの他の独立したコールから供給されるツール使用結果などのシステム生成データ
プロンプトテンプレートは、これらの固定部分と可変部分を組み合わせ、動的コンテンツにプレースホルダーを使用します。Claude Consoleでは、これらのプレースホルダーは**{{二重括弧}}**で表記され、簡単に識別でき、異なる値の迅速なテストが可能です。

プロンプトテンプレートと変数を使用するタイミング

プロンプトの一部がClaudeへの別のコールで繰り返されることが予想される場合は、常にプロンプトテンプレートと変数を使用すべきです(APIまたはClaude Console経由のみ。claude.aiは現在プロンプトテンプレートや変数をサポートしていません)。 プロンプトテンプレートには以下の利点があります:
  • 一貫性: 複数のインタラクション間でプロンプトの一貫した構造を確保
  • 効率性: プロンプト全体を書き直すことなく、可変コンテンツを簡単に入れ替え
  • テスト可能性: 可変部分のみを変更することで、異なる入力やエッジケースを迅速にテスト
  • スケーラビリティ: アプリケーションの複雑さが増すにつれて、プロンプト管理を簡素化
  • バージョン管理: 動的入力とは別に、プロンプトのコア部分のみを追跡することで、プロンプト構造の変更を簡単に追跡
Claude Consoleは、上記すべてのための機能とツールをサポートするために、プロンプトテンプレートと変数を大いに活用しています:
  • プロンプトジェネレーター プロンプトに必要な変数を決定し、出力するテンプレートにそれらを含める
  • プロンプト改善ツール すべての変数を含む既存のテンプレートを取り、出力する改善されたテンプレートでそれらを維持
  • 評価ツール プロンプトテンプレートの可変部分と固定部分を分離することで、プロンプトのテスト、スケール、バージョン追跡を簡単に実行

プロンプトテンプレートの例

英語のテキストをスペイン語に翻訳するシンプルなアプリケーションを考えてみましょう。翻訳されるテキストは、ユーザーやClaudeへのコール間でこのテキストが変化することが予想されるため、可変となります。この翻訳されるテキストは、データベースやユーザーの入力から動的に取得される可能性があります。 したがって、翻訳アプリでは、このシンプルなプロンプトテンプレートを使用するかもしれません:
このテキストを英語からスペイン語に翻訳してください:{{text}}

次のステップ