以下は雑然としたプロンプトです:
レベル1: プロンプトを分解して再構築する4要素フレームワーク(ロール、タスク、フォーマット、制約)を使ってこれを整理し直し、より明確にしてください。
学習目標:
- プロンプトの4つの核心要素を習得する
- 曖昧なリクエストを構造化された指示に変換する方法を学ぶ
- 各要素がAIの出力にどう影響するかを理解する
前提: << レッスン1: プロンプトとは何か、なぜ重要なのか | 次: レッスン3 >>
AIに「プロジェクトの要約を書いて」と頼んだら、プロジェクトの実際の詳細が一切含まれない汎用的なテンプレートを返してきた。どこで間違えたのでしょうか?AIに能力が欠けているわけではありません。あなたの指示に重要な要素が欠けていたのです。どのプロジェクトなのか、誰のためのものか、何を含めるべきか、どんな形式にすべきか、といった情報です。
効果的なプロンプトは、壁越しに投げる一行ではありません。4つの要素から構築された完全な指示です。このレッスンでは、その4つの要素が何か、それぞれが何をするのか、そしてどう組み合わせるのかを説明します。
明確なプロンプトは通常4つの部分を含んでいます1:
毎回4つすべてが必要なわけではありませんが、タスクが複雑であればあるほど、より多くの要素が必要になります。それぞれを見ていきましょう。
ロールは、AIにどの視点と専門知識のレベルで答えるべきかを伝えます2。同じ質問でも、技術専門家と小学校の教師では全く異なる答えになります。
次の2つのプロンプトを比較してください:
ロールなし:
AIが返すかもしれない答え:
ロールあり:
今度はAIは:
一般的なロールのパターン:
タスクはプロンプトの核心です。「何をしてほしいのか」という質問に答えます1。曖昧なタスク記述は、最も一般的な問題です。
比較してみましょう:
曖昧なタスク:
AIはどの角度から取り組むべきかわかりません: パフォーマンス?セキュリティ?可読性?バグ?
明確なタスク:
今度はAIは以下を理解します:
タスクには3つの層があります:
フォーマットは、AIに答えをどう整理すべきかを伝えます1。フォーマット制約がない場合、AIは自分が適切だと思うものを選びます: テキストの壁かもしれないし、リストかもしれないし、テーブルかもしれません。
比較してみましょう:
フォーマット要件なし:
AIが返すかもしれない答え:
フォーマット指定あり:
AIはこの構造に正確に従い、結果をそのまま自分のドキュメントに貼り付けることができます。
一般的なフォーマット制約:
制約は、AIが軌道を外れないようにする「〜しないで...」と「〜のみ...」のルールです1。
比較してみましょう:
制約なし:
AIが返すかもしれない答え:
制約あり:
今度はAIは:
一般的な制約タイプ:
完全なプロンプトは、4つの要素すべてを組み合わせます。実際のシナリオを見てみましょう。
シナリオ: AIにミーティングノートを作成させる
タスクのみ、他の要素が欠けている:
4つの要素すべて:
このプロンプトは明確で、完全で、再利用可能です。議事録部分をプレースホルダーに変えれば、何度でも実行できるテンプレートになります。次のミーティングでは、新しい議事録を入れ替えるだけです。
それでは、曖昧なプロンプトを構造化されたものに変換する練習をしましょう。
ステップ1: タスクを明確にする
ステップ2: ロールを追加する
ステップ3: フォーマットを指定する
ステップ4: 制約を追加する
元のプロンプトと比較すると、書き直し版はAIに明確に伝えています: どのロールを取るべきか、何をすべきか、どう出力すべきか、そしてどんな制限の下で。
4つの要素は教条ではなく、チェックリストです:
テストはシンプルです: あなたのプロンプトを読んだ後、AIは正確に何をすべきか、どんな結果を生み出すべきかを知ることができますか? あなた自身がそれに明確に答えられないなら、AIにはさらにチャンスがありません。
効果的なプロンプトは4つの要素を含んでいます: ロール(どのアイデンティティ)、タスク(何をするか)、フォーマット(どう整理するか)、そして制約(境界は何か)。毎回4つすべてを使うわけではありませんが、タスクが複雑であればあるほど、より完全な要素のセットが必要になります。
書き直しプロセス: 最初に核心的なタスクを明確にし、次にどんなロール、どんな出力フォーマット、どんな制約が必要かを決めます。曖昧な一行を構造化された指示に拡張すれば、AIの出力品質は急激に向上します。
次のレッスンでは、few-shot学習について説明します: 言葉で説明する代わりに、2〜5個の例を使ってAIに望むパターンを理解させる方法です。
次のレッスン Few-Shot学習: 例でAIを導く >>
OpenAI Prompt Engineering Best Practices — https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api ↩ ↩2 ↩3 ↩4
Anthropic Prompt Engineering Overview — https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview ↩
4要素フレームワーク(ロール、タスク、フォーマット、制約)を使ってこれを整理し直し、より明確にしてください。
4つの要素すべてを含む完全なプロンプトを設計してください。
Dockerとは何かを説明してください。あなたは日常的な例え話で技術概念を説明するのが得意な教師です。プログラミングのバックグラウンドがないプロダクトマネージャーに、Dockerとは何かを説明してください。このコードを分析してください。このPythonコードをパフォーマンスのボトルネックがないか分析してください。大規模なデータセットで遅くなる可能性のある操作を指摘し、それらを修正する方法を提案してください。この記事の重要なポイントを要約してください。この記事を次のフォーマットで要約してください:
核心的な主張: [一文]
裏付けとなる証拠(3ポイント):1. [ポイント1、一文]2. [ポイント2、一文]3. [ポイント3、一文]
結論: [一文]Pythonを学ぶためのリソースをいくつか推薦してください。Pythonを学ぶためのリソースを3つ推薦してください。要件:- 完全に無料- 英語- 完全な初心者に適している- 実践的なプロジェクトが含まれている
各リソースを2文で説明してください: 最初の文は何であるかを述べ、2文目はなぜ初心者に適しているかを述べます。このミーティングの議事録から議事録を書いてください。[ロール] あなたは経験豊富なプロジェクトアシスタントです。
[タスク] 以下の議事録からミーティングノートを書いてください。
[フォーマット] 次のように整理してください:- ミーティングの基本情報(時刻、参加者)- 議論された問題(優先度順)- 各問題について到達した決定- アクションアイテム(担当者 + 期限)
[制約]- 明確な結論に達した議論のみを記録; 雑談はスキップ- すべてのアクションアイテムは実行可能でなければならない(動詞 + チェック可能な成果物)- 全体を500語以内に収める
議事録:[ここに議事録を貼り付ける]このコードを最適化してください。あなたはシニアパフォーマンスエンジニアです。
以下のPythonコードをパフォーマンス問題について分析し、修正案を提案してください。
次のフォーマットで出力してください:1. 現在のボトルネック(影響順、最大のものから) - ボトルネックの説明 - どのデータ量で問題になるか2. 最適化計画 - 行うべき具体的な変更 - 最適化されたコードスニペット - 期待されるパフォーマンス向上
制約:- 関数の入出力インターフェースを変更しない- 新しい外部依存関係を導入しない- 少なくとも2倍の高速化をもたらす変更を優先する
コード:[ここにコードを貼り付ける]関数を書いてください、入力は文字列のリスト、出力は重複除去された結果、高速にしてください、Pythonを使用、コメントを追加してください。