【保存版】生成AIにおける指示記号のひみつ
明確に構造化されたプロンプトのほうが、AIに意図が伝わりやすく、一貫した出力が得やすくなります。そこで、生成AI、特にchatGPTが理解しやすい指定記号とその使い方をまとめました。
日本語でのプロンプトでも、** や - はそのまま使えます(Markdown互換性があるため)。ただしChatGPTでは強調よりも指示の明確さと文脈の一貫性が最重要です。
一般的なプロンプト指定ルール
強調表現
**テキスト**
:強調表示(太字として認識されることもあり、意味的な強調)
*箇条書きの項目* → リストの一部として扱われることがあります。
リストや階層構造
-:箇条書き、要素の列挙
*:箇条書き、要素の列挙 その2
・:日本語での箇条書きに多用
# :タイトル(大見出し)
## :小見出し
### :小小見出し
→ 数が多くなるほど見出しのレベルが下がります。
重みづけ指定(画像生成系)
(word:1.2):特定の単語に重み(優先度)をつける(通常1が基準)
除外指定
--no:Midjourney系のプロンプトで除外
例:--no text は「テキストを含まない」
構成記述(画像構成)
left, right, center, background, foreground:位置関係
in the style of:作風の指定
例:in the style of Studio Ghibli
言語構造ルール(ChatGPT向け)
Q: や A::質問回答形式の明示
[命令内容]:命令文や出力形式の指定 例 [Instruction] や [Output Format]
##:セクション見出しとして使われる(Markdown的記法)
`コード`:コードのインライン表示
"""コメント(改行可)""":Pythonコード上での文字列リテラル コメント
※補足
#から始まる行はコメントとして無視される。
"""三重クオート(三重引用符、triple-quoted string)で囲まれた文字列は無視される(ただし代入しないかぎり)
# 今日のおやつリスト
- りんご
- ばなな
- *チョコレート*
# 注意点
- たべすぎないこと!
- *アレルギーがある人は注意!*
"""
バナナはおやつに入らないかという
ありふれた論争に
ここではお弁当箱に入っていれば
おやつに入らないのとする
"""ChatGPTやマークダウン対応のツールでは「見出し」「リスト」「強調」がそれぞれ意味を持ち、AIも構造を読み取って出力の精度が上がります。
変数やプレースホルダー(仮入力値)
{}:変数や後で変える所の指定
使用例:
Please replace {name} with your own.
→ {name} はあとで名前に置き換える想定の部分。
質問: {ユーザーの質問}
→ ユーザーが何かを入力する場所の目印。
ChatGPTプロンプトでの使われ方:
ユーザーにテンプレートを提供する場合:
以下の形式で入力してください:
{ジャンル}の{テーマ}について、{文体}で書いてください。オプション(任意)やリスト・配列、または説明・注釈
[] :オプション(任意)やリスト・配列、または説明・注釈を表す
使用例:
[Optional] Enter your nickname.
→ 入力してもしなくてもいい。
[Instruction] Use casual tone.
→ 命令や注釈的な意味。
[1, 2, 3]
→ リスト(配列)構文として。
ChatGPTプロンプトでの使われ方:
明示的に指示ブロックを作るために使う:
[命令] 以下の文章をですます調に変えてください出力形式の指定:
[Output format] Q&A形式で答えてください条件付き表現:
[女性向けの場合のみ] やわらかい言葉づかいにしてくださいタグ風の表現やシステム的なマークアップ記号
<>:タグ風の表現やシステム的なマークアップ記号として使われる。
使用例:
<name> や <topic>:HTML的なタグやプレースホルダ。
<system>:プロンプト内でAIに向けたメタ指示を表すこともある。
ChatGPTプロンプトでの使われ方:
特定のセクションやメタ構造の明示(特にAdvanced Promptingでよく見られる):
<system>
あなたは厳格な編集者です。以下の文を校正してください。
</system>人物・セクション・構造の区切りとして:
<user>: こんにちは
<assistant>: こんにちは。今日は何をお手伝いしましょうか?入力フォーマットの枠組み:
Please fill in: <Title>, <Theme>, <Style>実はChatGPTはこれらの記号を「意味として理解しているわけではなく」、文脈や繰り返しの使用パターンからその意図を推論しています。
たとえば:
{} がテンプレート構文として使われることが多ければ、それに従って解釈します。
[] が注釈や命令を示す文脈で多く使われていれば、命令とみなします。
<...> が構造や役割のマークとして登場すれば、AIはそれを区切り記号として扱います。
つまり、使い方次第で意味を持たせられる記号だと認識してください。
そのうえで、一般的に使われている使い方をするとAIも人もわかりやすいという事です。
