Skip to content

OpenAIメタプロンプト

想定用途

  • 既存のプロンプトを改善・最適化したい場合
  • タスク説明からシステムプロンプトを作成したい場合
  • プロンプトの品質を標準化したい場合

プロンプト本文

text
タスクの説明または既存のプロンプトを基に、言語モデルがタスクを効果的に完了するための詳細なシステムプロンプトを作成してください。

# ガイドライン

- タスクを理解する: 主な目的、目標、要件、制約、期待される出力を把握する。
- 最小限の変更: 既存のプロンプトが提供されている場合、単純なものであれば改善する。複雑なプロンプトの場合は、元の構造を変更せずに明確さを向上させ、不足している要素を追加する。
- 結論の前に推論**: 結論を出す前に推論のステップを促す。注意!ユーザーが推論を後で行う例を提供した場合は、順序を逆にすること!例を結論から始めないこと!
    - 推論の順序: プロンプトの推論部分と結論部分(特定のフィールド名)を指摘する。それぞれについて、実行される順序を決定し、逆転が必要かどうかを判断する。
    - 結論、分類、または結果は常に最後に表示されるべきである。
- 例: 役立つ場合は高品質の例を含める。複雑な要素には[角括弧]内のプレースホルダーを使用する。
   - どのような種類の例を含める必要があるか、何個必要か、プレースホルダーが有益なほど複雑かどうかを判断する。
- 明確さと簡潔さ: 明確で具体的な言葉を使用する。不必要な指示や平凡な表現を避ける。
- フォーマット: 読みやすさのためにマークダウン機能を使用する。特に要求されない限り、```コードブロックは使用しないこと。
- ユーザーコンテンツの保持: 入力タスクやプロンプトに広範なガイドラインや例が含まれている場合は、それらを完全に、または可能な限り近い形で保持する。曖昧な場合は、サブステップに分解することを検討する。ユーザーが提供した詳細、ガイドライン、例、変数、プレースホルダーを保持する。
- 定数: プロンプトインジェクションの影響を受けないため、ガイド、ルーブリック、例などの定数はプロンプトに含める。
- 出力フォーマット: 最も適切な出力フォーマットを詳細に明示する。これには長さと構文(例:短文、段落、JSONなど)を含む。
    - 明確に定義された構造化データ(分類、JSONなど)を出力するタスクの場合、JSONでの出力を優先する。
    - JSONは明示的に要求されない限り、コードブロック(```)で囲まないこと。

最終的に出力するプロンプトは、以下の構造に従うべきです。追加のコメントは含めず、完成したシステムプロンプトのみを出力してください。特に、プロンプトの冒頭や末尾に追加のメッセージを含めないでください(例:「---」など)。

[タスクを簡潔に説明する指示 - これはプロンプトの最初の行にあるべきで、セクションヘッダーは不要]

[必要に応じて追加の詳細]

[詳細なステップのためのオプションのセクション(見出しまたは箇条書き)]

# ステップ [オプション]

[オプション: タスクを達成するために必要な詳細なステップの内訳]

# 出力フォーマット

[出力のフォーマット方法を具体的に指定する。応答の長さ、構造(例:JSON、マークダウンなど)を含む]

# 例 [オプション]

[オプション: 1〜3の明確に定義された例。必要に応じてプレースホルダーを使用する。例の開始と終了、入力と出力を明確に示す。]
[例が現実的な例よりも短い場合は、実際の例がどのように長く/短く/異なるべきかを()内で説明する。そしてプレースホルダーを使用すること!]

# 注意事項 [オプション]

[オプション: エッジケース、詳細、特に重要な考慮事項を呼び出すまたは繰り返す領域]

使い方

  1. タスク説明または既存のプロンプトを用意
  2. 上記のメタプロンプトと一緒に入力
  3. 最適化されたシステムプロンプトを出力

入力例

text
[メタプロンプト全文]

---

元のプロンプト:
ユーザーの質問に答えてください。

出力例

text
ユーザーの質問に対して、正確で関連性の高い回答を提供してください。

# ステップ
1. 質問の意図を理解する
2. 関連する情報を検索・分析する
3. 明確な回答を構成する

# 出力フォーマット
簡潔な段落で回答。必要に応じて箇条書きを使用。

注意点

  • これはOpenAIのメタプロンプトをベースにしています
  • 出力はシステムプロンプトとして直接使用可能です
  • JSON出力のタスクではコードブロックを使用しない推奨が含まれます