見出し画像

プロンプトの書き方に迷ったら、マークダウン記法で整理する

ChatGPTなどで使うプロンプトが少しでも長くなると、文章の構造が曖昧になりがちです。

長いプロンプトは、どこからどこまでが一つの要素なのかがわかりにくくなり、それぞれの要素の関連性や順序が曖昧になってしまいます。この問題は、ユーザーだけでなく、ChatGPTなどのAI自身も混乱させる可能性があります。

この問題を解決する方法の一つが、「マークダウン記法」を使うことです。この記法はとても簡単に使えます。

マークダウンの見出し(`#`)の使い方

マークダウンで書ける内容は多いですが、今回は「`#`記号による見出し」を使うことで、どのようにプロンプトの構造が明確になるのかを見てみましょう。以下に、見出しを使用したプロンプトの例を示します。

プロンプト例:

# 日本の小説家

## 太宰治
太宰治は明治42年生まれの、日本の小説家です。

### 代表作
- 人間失格
- 走れメロス

## 夏目漱石
夏目漱石は慶応3年生まれの、日本の教師・小説家・評論家・英文学者・俳人です。

### 代表作
- 吾輩は猫である
- 坊っちゃん

## 指示
マークダウンでの区切りを確認するテストです、次の処理を行ってください。各出力は日本語で行ってください。
1. 「夏目漱石」の内容を、見出し抜きで出力してください
2. 「太宰治」の内容を、見出し抜きで出力してください
3. 「夏目漱石」の「代表作」の内容を、見出し抜きで出力してください

見出しの階層に合わせて`#`を増やしていきます。テキストとの間には半角スペースを入れてください。

このように「見出し」を使うと、プロンプトの各部分が明確に区切られ、全体の構造が一目でわかるようになります。(`-`や`1.`もマークダウン記法です)

どこからどこまでが、その条件・情報なのか、そしてどこからがChatGPTへの指示なのか、それぞれがはっきりしています。

そして、上のプロンプトを実行すると、次のような結果が得られます。

出力結果:

期待された出力結果が得られました。これにより、ChatGPTはこの記号の意味を理解していることがわかります。

そして、これらの使い方は、見出しとなる箇所の先頭に`#`を付けるだけです。簡単ですね。

noteエディタとの対応関係

それぞれの見出し(heading)は、noteエディタの機能と比較すると、次のように対応しています。

  • 見出し1(`#`):記事のタイトル(h1)

  • 見出し2(`##`):記事内の見出し(h2)

  • 見出し3(`###`):記事内の小見出し(h3)

実際にnoteのエディタのガイドで「見出し(h2)」「小見出し(h3)」と表示されています。

noteのエディタのガイドより(mac版)

h1は記事タイトルに相当するので、記事内では使えません。見出しがh2から始まるのはこれが理由です。

マークダウンとは何か

マークダウンの特性として、シンプルで読みやすく、書きやすいことが挙げられます。

マークダウンは単純な記法で、見出し、リスト、引用など、さまざまな要素の情報を整理し、視覚的にわかりやすくできます。これにより、読者は文章の構造を理解しやすくなります。

これらの共通の書き方として定めた記法の一つが「マークダウン」です。

この共通であるという点が重要です。■や●などを使って見出しを表現することもでき、AIも柔軟に解釈してくれますが、それらのルールは共通ではないため、曖昧さが残ります。

その他の記号を使ってはいけないということではありませんが、生成AIの仕組みを考えると、より共通で一般的な記法の方が、より確実な解釈が見込めます。(実際のマークダウン記法に完全な統一仕様はなく、各サービスで細かい部分が違ったりしますが、ほとんどは同じです)

ChatGPTの表示はマークダウンを解釈している

ChatGPTは、このマークダウン記法を解釈して表示を整えています。

次のようなプロンプトを入力して、結果を出力してください。

ChatGPTがマークダウンを解釈して表示を整えていることを確認したい。
マークダウン記法による見出しや箇条書きを含む例文を出力してください。

出力されたチャットの右側にあるクリップボードのアイコンを押すと、出力内容がそのまま取得できます。(テキストを選択してのコピーではダメです)

出力結果:

もちろんです。以下はマークダウン形式で見出しや箇条書きを含む例文です。

# 見出し1
これは見出し1のテキストです。

## 見出し2
これは見出し2のテキストです。

### 見出し3
これは見出し3のテキストです。

- 箇条書き1
- 箇条書き2
- 箇条書き3

1. 番号付きリスト1
2. 番号付きリスト2
3. 番号付きリスト3

> 引用文
> これは引用文の例です。

**太字**
*斜体*
***太字かつ斜体***

- [ ] チェックボックス1
- [x] チェックボックス2 (チェック済み)

表示が整えられた文章の内容は、確かにマークダウン記法で書かれています。(出力途中に、マークダウン用の記号が一瞬表示される)

このような表示ができるため、出力条件を特に指定しない場合、ChatGPTはマークダウンで出力をします。(上のプロンプトの場合は、マークダウンで出力と明示しています)

出力内容を編集することもあるでしょうから、ChatGPTを扱う上でマークダウンを知っておくと何かと便利です。

noteもマークダウンに一部対応している

noteはマークダウン記法そのものを採用していませんが、マークダウン記法で書かれた文章をエディタに貼り付けると、見出しやその他の対応している要素に自動で変換してくれます。

ここにある記述例・出力結果をnoteのエディタに貼り付けて確認してみてください。

記事の下書きを別エディタで書いている方は、それをマークダウンで書いておくと、ちょっとした手間が省けるでしょう。

他にはSlackやDiscordなどのエディタでも、マークダウンに近い記法が使えたりします。全く同じではないですが、マークダウンの基本を知っていればすぐに理解できます。

人間にとってもわかりやすい

マークダウン記法は、それ自体を知らなくても、少し慣れれば、文字情報だけでもとても見やすくなります。

上のプロンプトや出力結果は、それだけでも見やすいと思いますが、いかがでしょうか?

そして記法自体を知っていると、`#`とあるだけで、「ここは見出しなんだな」と一瞬で理解できます。

マークダウンは人間とAIどちらも理解しやすい

ここまで見てきたように、マークダウンは人間とAIの両方にとって理解しやすい記法です。

エンジニア界隈では有名な記法なのですが、思ったよりも一般には普及していませんね。

ある意味では、ChatGPTの公式記法みたいなものなので、これを機に覚えてみるのはいかがでしょうか。

この記事が気に入ったらサポートをしてみませんか?