ここでは全10回に渡って、生成AI「Claude」を使いこなすためのプロンプトエンジニアリングのコツを紹介しています。前回の第7回目は、「応答をプリフィルで制御する」について解説してきました。
第8回目は「出力フォーマットを制御する」というテクニックを中心に解説していきます。
出力フォーマットを制御する重要性
Claudeは様々なフォーマットで出力を生成する能力を持っています。しかし、そのままだと、Claudeが勝手に思うがままのフォーマットで応答してしまうかもしれません。そこで重要になるのが、出力フォーマットの制御です。
明確な指示、例、プリフィルされた応答を提供することで、私たちが目的とする構造とスタイルに沿った応答をClaudeに生成させることができるんです。つまり、Claudeの出力をコントロールすることで、より使いやすく、目的に合ったものにできるというわけですね。
フォーマットを明示する方法
Claudeの出力をコントロールする最も簡単な方法の1つは、必要なフォーマットをズバリ指定することです。Claudeは賢いので、フォーマットに関連する指示を理解し、それに従うことができるんです。
例えば、JSON、XML、HTML、Markdown、CSVなどのフォーマットをリクエストしてみましょう。
猫についての詩をJSONフォーマットで生成してほしい場合は、こんなプロンプトを使います。
猫についての詩を作成してください。JSONフォーマットで、以下のキーを使用してください。
- "title": 詩のタイトル
- "verse1": 第1連
- "verse2": 第2連
- "verse3": 第3連
{
"title": "猫の優雅さ",
"verse1": "しなやかな体で歩く\n優雅な姿、猫の魅力\n毛並みに光が踊る",
"verse2": "陽だまりでまどろむ\nお腹を上にして伸びをする\n幸せそうな寝息",
"verse3": "飼い主に愛される存在\n時に神秘的な雰囲気を醸す\n人の心を癒やす、猫"
}
プリフィルを使ったフォーマット制御
Claudeの出力フォーマットを制御するもう1つの効果的な方法は、プロンプトに目的のフォーマットの始まりを事前に入力しておくこと、つまりプリフィルです。この手法は、JSONやHTMLなどの構造化されたフォーマットを扱う際に特に有効ですよ。
例えば、JSONフォーマットでチョコチップクッキーのレシピを生成する場合、こんな感じにプリフィルします。
JSONフォーマットでチョコチップクッキーのレシピを生成してください。
{
"title": "チョコチップクッキー",
"ingredients": [
応答の冒頭に開始のJSONカーリーブレースを置くことで、Claudeに目的のフォーマットでレシピを生成するための明確な開始点を与えることができます。これは、Claudeに冒頭の挨拶文をスキップさせるためのテクニックとしても使えますね。
例を提供してフォーマットを強化する
明示的な指示に加えて、目的の出力フォーマットの例を提供することで、Claudeに要件をより理解させることができます。例を含める際は、Claudeが提供された例のフォーマットに従うべきであることを明確にしましょう。さもないと、Claudeは例から内容や文体などの他の詳細を拾ってしまうかもしれません。
以下は、この手法を示すプロンプトの例です。
あなたの課題は詩を書くことです。理想的な詩のフォーマットの例をいくつか示します。
<poem> タイトル: 「秋の紅葉」 第1連: 舞い散る紅葉 心地よい秋風に 色とりどりに 第2連: 赤、オレンジ、黄 冬が来る前の美 自然の芸術 </poem>
<poem> タイトル: 「月夜」 第1連: 月明かりが 静かな庭に影を 落とし、安らぐ 第2連: 星空の下 虫の音が奏でる 自然の子守唄 </poem>
では、上記の例のフォーマットに従って、日没についての詩を書いてください。
<poem>
タイトル: 「夕焼けシンフォニー」
第1連: 沈む夕日が 空を絵画のように 彩り、輝く
第2連: ピンク、紫、赤 調和の中に溶けて 昼が夜に変わる
</poem>
このように、例を提供することでClaudeにフォーマットの要件を伝え、目的の出力形式に沿った応答を生成させることができるのです。
より良い出力制御のためのヒント
最後に、より良い出力制御のためのヒントをいくつか紹介しましょう。
- 指示をできるだけ具体的に提供する
- プロンプトでフォーマットを明確かつ一貫して使用する
- 能な限り複数の例を提供して、目的のフォーマットを強化する
- ユースケースに最適な手法の組み合わせを見つけるために実験する
以上、Claudeの出力フォーマットを制御する方法について解説しました。明確な指示、例、プリフィルを駆使することで、Claudeとのコミュニケーションをより効果的なものにできることがお分かりいただけたでしょうか。
ぜひ、皆さんもこれらのテクニックを試してみてください。Claudeの出力が思い通りになることを実感できるはずです。
次回は、「リライトを頼む」というテクニックについて解説します。お楽しみに!