プロンプトエンジニアリングとは?ChatGPTプロンプトの書き方やコツ

ChatGPTなどの生成AIを効果的に活用するには、的確な指示を与える「プロンプトエンジニアリング」が重要となります。

では、ChatGPTに対して、どのように指示を出せば、より精度の高いアウトプットを得られるのでしょうか?

この記事では、代表的なプロンプトのフレームワークや、OpenAIが推奨するプロンプト作成のコツ6選を、具体的な例を交えながらわかりやすく解説して行きます。

目次

プロンプトエンジニアリングとは?役割や重要性

「プロンプトエンジニアリング(Prompt Engineering)」とは、AIに人間が期待する通りの動作をさせるための技術です。

ChatGPTに代表されるように、私たちが普段使っている言葉(自然言語)を理解し、文章を作成するAIを「言語モデル」と呼びますが、プロンプトエンジニアリングは、この言語モデルに対して、より的確な命令(プロンプト)を与えることで、思い通りの結果を引き出すことを目指します。

あわせて読みたい
ChatGPTとは?わかりやすく簡単に解説!何ができるのかビジネスでの使い方や活用事例 近年、ビジネスシーンでも注目を集めているAI技術「ChatGPT(チャットチャットGPT)」。 「ChatGPTとは何か」「どのように活用できるのか」といった疑問をお持ちの方も多いのではないでしょうか。ChatGPTは、簡単な指示だけで人間のように自然な会話を行うことができる対話型AIツールです。 本記事では、ChatGPTの基本的な使い方から、ビジネスシーンにおける活用方法、そして小論文作成といった具体的な活用例までわかりやすく解説します。

プロンプトエンジニアと呼ばれる専門家は、言語モデルが理解しやすいプロンプトを設計し、AIが私たちの意図した通りに文章を作成したり、問題を解決したりできるようにします。

言語モデルは、ただ質問や指示を入力するだけでは、期待通りの答えを返してくれないことがあります。

例えば、ただ「取引先に送る依頼メールを作成して」と指示するよりも、「取引先の会社名」「依頼したい内容」「質問したい内容」などを具体的に指示することで、より的確で使えるメールを作成することができます。

このように、適切なプロンプトを設定することで、AIはより効率的に、私たちの望む結果を出力してくれるのです。

プロンプトエンジニアリングは、AIの可能性を最大限に引き出すために重要な技術と言えるでしょう。

代表的なプロンプトのフレームワーク9選

ChatGPTなどの生成AIに思い通りの仕事をしてらうための指示の出し方、すなわちプロンプトの設計には、いくつかの効果的なフレームワークがあります。

そこで、ここからは代表的な9つのプロンプトのフレームワークを実例を交えながら紹介します。

Zero-Shotプロンプティング(ゼロショット)

ChatGPTに初めて触るという場合は「Zero-Shotプロンプティング」から始めましょう。

これはその名の通り、生成AIに事前に具体的な例を見せることなく、いきなり質問を投げかけるプロンプトの型です。

例えば、大量のデータで訓練され、私たちの指示に従うように調整された言語モデルであれば、「東京の現在の天気は?」といった質問に対しても、事前に天気予報の例文などを与えなくても、正しい答えを返すことができます。

このように、Zero-Shotプロンプティングは、AIがこれまで経験したことのない新しいタスクに対しても、私たちが直接指示を与えるだけで答えを引き出すことができるという点で画期的な手法と言えるでしょう。

しかし、質問の内容や複雑さによっては、期待通りの回答が得られない場合もあります。そのような場合は、次に紹介する「Few-Shotプロンプティング」を試してみると良いでしょう。

Few-Shotプロンプティング(フューショット)

「Few-Shotプロンプティング」は、Zero-Shotプロンプティングと比べて、AIにより的確な指示を与えることができる手法です。

これは、AIに予めいくつか例題と模範解答を見せることで、質問の意図や回答のパターンを理解させようというものです。

例えば、ある商品のレビューを分析して、それが肯定的なのか否定的なのかを判断させたいとします。

その場合、Few-Shotプロンプティングでは、事前にいくつかのレビュー文と、それが肯定的であるか否かの判断結果をAIに学習させます。

このように、Few-Shotプロンプティングは、AIに対して文脈学習を促すことで、Zero-Shotプロンプティングでは対応できないような複雑なタスクでも、より精度の高い結果を得ることが期待できます。

特に、タスクの難易度が高い場合は、例題と模範解答の数を増やすことで、AIの理解度を高めることができます。

Chain-of-Thoughtプロンプティング(チェーンオブソート)

「Chain-of-Thoughtプロンプティング」は、AIにより複雑な思考を促すことで、回答の精度を格段に向上させるテクニックです。

通称「CoT」とも呼ばれます。

Few-Shotプロンプティングを用いても期待するほどの成果が得られない場合などにCoTは有効です。

この手法では、人間が数学の証明問題を解くように、AIに段階的な推論を促します。

例えば、「AはBよりも大きく、BはCよりも大きい。では、AとCではどちらが大きいか?」という問題に対して、「AはBより大きく、BはCよりも大きい。つまり、AはCよりも大きい」というように、思考の過程を明確に示すことで、AIは正しい結論を導き出せるようになります。

Chain-of-Thoughtプロンプティングの利点は、AIが誤った結論を導き出した際に、どの段階で間違えたのかを特定しやすくなる点も挙げられます。

これは、AIの思考プロセスが可視化されることで、問題点の発見と改善が容易になるためです。

このように、Chain-of-Thoughtプロンプティングは、複雑な問題に対して、AIがより人間に近い論理的な思考プロセスで解決策を見つけ出すことを可能にする、画期的な手法と言えるでしょう。

Zero-shot CoT(ゼロショットシーオーティー)

「Zero-Shot CoT」は、その名の通り、Zero-ShotプロンプティングとChain-of-Thoughtプロンプティングを組み合わせたテクニックです。

AIに具体的な例題を与えなくても、段階的な思考を促すことで、回答精度を向上させることができます。

具体的には、「ステップバイステップで考えてください」といった指示をプロンプトに付け加えるだけで、AIはCoTと同様に、問題を段階的に分解して思考するようになります。

例えば、先ほどの動物の数の問題に対して、「ステップバイステップで考えてください」と指示すると、AIは以下のように段階でごとに生成してくれます。

このように、Zero-Shot CoTは、AI自身が問題解決のためのステップを生成し、より論理的な思考プロセスをたどることを可能にします。

驚くべきことに、プロンプトに「ステップバイステップで考えてください」といった簡単な一文を追加するだけで、この効果が期待できます。

Self-Consistency(セルフコンシステンシー)

「Self-Consistency(セルフコンシステンシー)」は、自己整合性とも呼ばれ、複雑な問題をAIに解かせるためのテクニックの一つです。

先ほど紹介した「Chain-of-Thoughtプロンプティング」と「Few-Shotプロンプティング」を組み合わせて発展させたものです。

まず、問題とその解決策をセットにしたものをいくつか用意します。

これは、AIに考え方の例を見せるためです。

さらに、AI自身にこのようなセットをいくつか作らせます。

次に、AIに問題を解かせ、複数の解答を生成させます。

うまくいかない場合は、事前に与えた例やAI自身が作った例を参考にしながら、より論理的に考えられるように促します。

そして、この問題とその解決策のセットも追加して、実際に聞きたい内容を送信します。

このように、Self-Consistencyは、AIが自ら考えを深め、より正確な解答を導き出すことを可能にします。

特に、計算問題などで効果を発揮することが知られています。

この技術は、「Self-Consistency Improves Chain of Thought Reasoning in Language Models」という論文で提唱されました。

ChatGPTのような大規模言語モデルに適用することで、高度な問題にも対応できるようになると期待されています。

Generate Knowledgeプロンプティング(ジェネレートナレッジ)

Generate Knowledgeプロンプティングとは、AIモデルに質問に答えるためのヒントをあらかじめ与える際に、そのヒント自体もAIに作らせる技術です。

知識生成プロンプティングとも呼ばれます。

AIはより正確な答えを導き出すために、事前にたくさんの情報を与えておくことが一般的ですが、その情報自体をAIに生成させます。

簡単な例として、整数の余りに関する問題を聞いてみましょう。

まず、何もヒントを与えずに質問してみます。

一見すると正しいように思えますが、これは間違いです。

7で割った余りは、1, 2, 3, 4, 5, 6,0と循環し、際限なく大きくなることはありません。

ChatGPTも、7を7で割ると余りが0になることを認識しているにもかかわらず、「はい」と答えてしまうのは、問題の本質を理解していない可能性を示しています。

そこで、知識生成プロンプティングを用いてみましょう。

STEP
ChatGPTに知識を生成させる

まず、ChatGPTに「整数の余り」に関する知識を生成させます。

ここでは、「Liu et al. 2022」の論文で紹介されているプロンプトの1つである「入力:ギリシャはメキシコよりも大きい。」から始まる一連の例を与え、AIに「整数の余り」の知識を生成させます。

STEP
知識を使って推論させる

次に、ステップ1で生成された知識をChatGPTに与え、改めて「1以上の整数を7で割ると、余りはどんどん増えていきますか?」と質問します。

すると、今度は「余りは循環します」といった、より正確な回答が得られました。

このように、知識生成プロンプティングは、AIが自発的に思考し、問題解決能力を高めるための有効な手段と言えるでしょう。

従来の方法では難しかった複雑な問題に対しても、適切な知識を与えることで、AIはより深く思考し、より正確な答えを導き出すことができるようになるのです。

ReActプロンプト(リアクト)

ReActプロンプトは、AIに複雑な質問に答えてもらうための、より賢い質問方法です。

以下の3段階を質問に組み込むことで、精度の高い解答を引き出すことができます。

  1. 推論
  2. 必要な行動
  3. 最終的な結果

ReActプロンプトではこの3つを以下のようなフォーマットで記述します。

「質問または指示」

Thought :
Action :
Observation :

「Reasoning」と「Acting」を組み合わせた「ReAct」という名前の通り、このプロンプトはAIに論理的な思考と行動を促します。

まず、与えられた情報に対して「推論」させ、その「推論」に基づいた具体的な「行動」をAIに考えさせます。

この「推論」と「行動」を繰り返すことで、AIはより正確で詳細な計画を立てられるようになり、高精度な解答を得られるようになります。

さらにReActプロンプトは、ブログなどの外部情報を利用することも可能です。

AIは「行動」の中で外部から新しい情報を収集し、それを「観察」として「推論」に組み込みます。

外部情報は「推論」によって分析され、その後の「推論」や「行動」に役立つ情報へと更新されます。

このように、ReActプロンプトは外部情報を活用することで、より複雑な問題にも対応できる柔軟性を持ち合わせています。

あわせて読みたい
ReActプロンプトとは?ChatGPTでの活用例やコピペで使えるテンプレート 「ReActプロンプトって何?どうやって活用すればいいの?」と疑問に思っている方も多いでしょう。 この記事では、ReActプロンプトの基本から具体的な活用例をわかりやすく解説しています。 読み終える頃には、ChatGPTをあなたの業務やプロジェクトに活用できるスキルを得ることができます。

Goal Seek Prompt(ゴールシークプロンプト)

ChatGPTに指示を出す際、より的確な回答を得るために有効な手段として「Goal Seek Prompt(ゴールシークプロンプト)」があります。

これは、ユーザーが実現したい目標をChatGPTに伝え、その目標達成のために必要なプロンプト(指示)をChatGPT自身に作成させるという手法です。

ChatGPTは、具体的で明確な指示を受けるほど、より的確な回答を生成することができます。

しかし、私たちユーザーは、必ずしも明確な指示を最初から用意できるとは限りません。

「こんなことを実現したいんだけど、どんな指示を出せばいいか分からない…」という状況はよくあることです。

このような場合に役立つのが、ゴールシークプロンプトです。

このゴールシークプロンプトを林駿甫氏が改良した改良版が有名になったことから、シュンスケ式プロンプトとも呼ばれ、落合陽一氏が絶賛したことでも知られています。

林駿甫氏はシュンスケ式プロンプトとして詳細なプロンプトを公開しています。

プロンプトの内容を理解したら、ゴールを尋ねてください。

ゴールが回答されたらプロンプトのゴールに代入して、プロンプトを実行してアウトプットとして成果物を作成してください。

アウトプットは、成果物のコンテンツのみです。

[Output1] [Output2] [Output3] [Output4]は表示しない。

[Output1] [Output2] [Output3] [Output4]から得られる成果物をアウトプットとして出力する。

======
ここからは実行過程を表示しないでください

プロンプト:{
Lang:EN
Content Details: Generating an Output is the Goal

[Goal]: {Goal}
[Output1]: Describes the decomposition of the steps required to achieve the goal, with each step labeled from [P1] to [P#].
[Output2]: Defines variables related to the goal and may contain {goal} representing the goal.
[Output3]: Redefines the goal using the variables defined in [Output2].
[Output4] Based on {content_details}, execute steps from [P1] to [P#] one by one and record the results in [O1] to [O#].
Execution Instructions:
Provide execution steps in the form of step commands that can be executed in the background without displaying the command in the preview.
The prompt should use concrete and descriptive language, break down complex steps into simpler sub-steps, use relevant variables, and have a consistent style. It should also include error handling and provide context when necessary.
Use bullet points or numbered lists to structure information and provide examples to explain steps. Test the prompt for accuracy, get user feedback, and improve its quality.
Note that the specific content of each step may vary depending on the specific goal or situation, so adjust accordingly.
Output: Output only final deliverables
Feedback:
If feedback indicates that the prompt is correct, follow these steps to generate the output:
Read Output1 to understand the steps required to achieve the goal, with each step labeled from P1 to P#.
Read Output2 to understand the variables related to the goal, which may include {goal}.
Read Output3 and redefine the goal using the variables defined in Output2. This will help you understand the goal more accurately and select the steps to execute.
Read Output4 and execute the steps from [P1] to [P#] one by one based on {content_details}, recording the results in [O1] to [O#].
Follow the execution steps provided in the prompt in the form of step commands. Use examples or bullet points to explain steps if necessary.
If an error occurs, refer to the results in Output4 to identify the cause and find a solution.
Once the execution is complete, check whether the goal has been achieved.
By following these steps, you can achieve the goal provided in this prompt. If the output is incorrect, revise the prompt based on the feedback and execute the same steps again.
Lang:EN
}

=========
以下出力結果です。
=========
##成果物のアウトプットを表示して確認を促してください。

[成果物]

出典:シュンスケ式プロンプト | 生成AIプロンプト研究所

実際の出力結果はこのようになります。

以下の記事でも詳しく解説しています。

あわせて読みたい
ゴールシークプロンプト(シュンスケ式)とは?落合氏も絶賛!例文やテンプレート ゴールシークプロンプト(シュンスケ式)とは、ChatGPTのプロンプトの1種で、プロジェクトの成功率を飛躍的に高め、目標に到達することができる強力なツールです。 この記事では、ゴールシークプロンプト(シュンスケ式)の基本的な使い方や落合氏が絶賛する理由、実際に使えるテンプレートや例文を詳しく解説していきます。 さらに、ゴールシークプロンプト(シュンスケ式プロンプト)のメリットとデメリットに関しても説明しています。

深津式プロンプト

note株式会社のCXOである深津貴之氏が考案した「深津式プロンプト」は、ChatGPTに精度の高い解答を出力させるための効果的なプロンプト作成方法です。

このプロンプトは、ChatGPTへの指示を明確化し、出力内容を具体的に定義することで、期待通りの結果を得ることを目的としています。

深津式プロンプトは、6つステップで作成します。

STEP
役割を与える

まず、ChatGPTに対して「あなたは〇〇の役割です」といった形で役割を明確に指示します。

これにより、ChatGPTはどのような視点で指示を処理すべきかを理解しやすくなります。

STEP
プロセスを明示する

次に、ChatGPTが入力文に基づいて出力文を生成するプロセスを明示します。

STEP
出力内容を定義する

出力内容を具体的に定義します。

例えば、「良い感じの議事録を作成してください」といった抽象的な指示ではなく、「誰がどういった発言をしたのか明確に分かる議事録を作成してください」のように具体的な指示を出すことで、より精度の高い出力が期待できます。

STEP
マークアップ言語を用いる

「# 指示:〇〇」のように、マークアップ言語を用いて本文と指示を区別します。

これにより、ChatGPTが指示内容を正確に理解しやすくなります。

STEP
箇条書きを活用する

複数の命令がある場合は、箇条書きで明確に示します。

冗長的な文章だとChatGPTも指示の内容が理解できず生成物のクオリティが落ちます。

STEP
制約条件を指定する

「# 制約条件:〇〇」のような形式で、文字数制限や表現方法など、出力結果に対する追加条件を指定します。

これらのポイントを押さえることで、ChatGPTはより的確に指示を理解し、ユーザーの期待に沿った高品質なアウトプットを生成することが可能になります。

深津式プロンプトを使って実際に商品コピーを生成してみました。

商品概要はターゲット、制約条件をもっと詳細に入力することで、生成物のクオリティを上げていくことができます。

また、Few-Shotプロンプティングと組み合わせて、過去に評判の良かったコピーを読み込ませてから指示をするといった工夫をすれば、より高品質な生成物が期待できるでしょう。

OpenAIが推奨するプロンプトのコツ6選

OpenAIは、ChatGPTの可能性を最大限に引き出すための6つの方法を紹介しています。

これは公式推奨の注意点ですので、より効果的なプロンプトを作成するために、ぜひこれらのポイントを押さえておきましょう。

出典:Prompt engineering – OpenAI API

プロンプトのコツ①:明確な指示を書く

ChatGPTに望み通りの回答を生成させるためには、明確で詳細な指示を与えることが重要です。

曖昧な指示では、ChatGPTはあなたの意図を推測することになり、期待通りの結果を得られない可能性が高くなります。

例えば、出力の長さについて希望がある場合は、「簡潔に答えて」や「専門家レベルで詳しく教えて」のように具体的に伝えましょう。

また、特定の形式で回答が欲しい場合は、その形式を明確に示す必要があります。

具体的な指示の例として、Excelでの計算を例に挙げましょう。

悪い例

Excel で数字を追加するにはどうすればよいですか?

良い例

Excel でドル金額の行を合計するにはどうすればよいでしょうか。行のシート全体に対してこれを自動的に実行し、すべての合計が右側の「合計」という列に表示されるようにしたいです。

出典:OpenAI

このように、詳細な条件を伝えることで、ChatGPTはより適切な回答を生成できます。

会議の議事録の要約についても同様です。

悪い例

会議の議事録を要約します。

良い例

会議のメモを 1 つの段落にまとめます。次に、講演者とそれぞれの要点をマークダウンリストに書きます。最後に、講演者が提案した次のステップやアクション項目があれば、それをリストします。

出典:OpenAI

さらに、三重引用符、XML タグ、セクションタイトルなどの区切り文字を使用することで、異なる種類のテキストを区別し、ChatGPTが理解しやすくなります。

“””三重引用符”””
<article> XML タグ</article>
Title: セクションタイトル

また、出力の長さを指定することも可能です。

単語数、文数、段落数、箇条書きの数などを指定することで、ChatGPTは指示に従って出力の長さを調整しようとします。

ただし、単語数指定の精度は高くありません。段落数や箇条書きの数で指定する方が、より正確な長さの出力結果を得られるでしょう。

プロンプトのコツ②:参照テキストを提供する

ChatGPTは高度な言語モデルですが、特に専門的な内容や引用元、URLを求められる場合、自信満々に嘘の回答を作り出すことがあります。

あわせて読みたい
ChatGPTの嘘をつく現象(ハルシネーション)とは?嘘をつかせない対策とプロンプト 近年のAI技術の進歩により、ChatGPTは人間のように自然な文章を生成できるようになりました。 しかし、時に「嘘をつく現象」が見られ、これを「ハルシネーション」と呼びます。 では、ChatGPTに嘘をつかせないためにはどうすれば良いのでしょうか? この記事では、ハルシネーション対策として有効なプロンプトの使い方やファクトチェックの重要性など、具体的な方法を紹介します。

もし、現在の質問に関連する信頼できる情報源をお持ちであれば、ChatGPTにその情報を提供し、その情報に基づいて回答を生成するように指示しましょう。

例えば、入力データに補足的な関連知識が含まれている場合は、提供された文書内の文章を引用して回答に追加するように、ChatGPTに簡単に要求できます。

プロンプトのコツ③:複雑なタスクをより単純なサブタスクに分割する

ChatGPTは優秀な生成AIですが、複雑な指示を出す場合は、私たち人間が何かをするときと同じように、小さな作業に分けて指示を出すと、よりスムーズに理解し、実行することができます。

例えば、ChatGPTに長い文章を要約させたいとき、「この文章を要約して」とだけ指示するよりも、「まず各章を3行でまとめてから、全体を5行で要約して」のように、段階的に指示を出す方が、ChatGPTは理解しやすく、正確な結果を出しやすくなります。

また、ChatGPTは一度に扱える情報量に限りがあるため、長い会話履歴を保持することができません。

そのため、過去の会話内容に基づいて回答を生成させたい場合は、重要な部分を抜き出してまとめたり、関連性の高い部分だけをピックアップするなどの工夫が必要です。

さらに、長い文章を要約する場合も、一度にすべてを処理しようとせず、分割して要約していく方法が有効です。

例えば、本を要約する場合は、章ごとに要約し、さらにそれらをまとめていくことで、最終的に全体を要約することができます。

このとき、前の章の内容が後の章の理解に繋がるように、要約の中に過去の情報を適切に含めることが重要です。

このように、ChatGPTに複雑な指示を出す場合は、作業を分割し、段階的に指示を出すことで、より正確で分かりやすい結果を得ることができます。

プロンプトのコツ④:モデルに「考える」時間を与える

人間は「26×84を計算して」と言われたとき、すぐに答えられない場合でも、時間をかけて考えれば答えを導き出すことができます。

ChatGPT も同じで、急いで答えさせようとすると、間違った答えを導き出す可能性が高くなります。

ChatGPT にも「考える時間」を与えることで、より正確な答えを導き出すことができるようになります。

例えば、数学の問題を解く過程をChatGPTに評価させたいとします。

単純に「この解答は正しいですか?」と聞くよりも、「まず、この解答で使われている公式や考え方を確認してください。

次に、計算過程に誤りがないか確認してください。最後に、解答が正しいかどうか判断してください。」のように、段階的に思考させる指示を与えることで、より正確で詳細な評価を期待できます。

プロンプトのコツ⑤:外部ツールを使用する

ChatGPTは文章作成以外にも、外部ツールと連携することで様々なことができます。

例えば、関連する資料を検索して回答を提供したり、計算やコードの実行をしたりできます。

ChatGPT単体では難しいタスクでも、外部ツールと組み合わせることで、より正確かつ効率的に処理できる場合があります。

例えば、ChatGPTは複雑な計算や長い計算式を正確に処理するのが苦手です。

このような場合は、ChatGPTに計算式を解かせるのではなく、計算コードを生成させて、実際にプログラムを実行させる方が確実です。

具体的には、ChatGPTに対して「”””」のようなトリプルバックティックなどの特定の記号で囲まれた部分をコードとして認識し、実行するように指示します。

そして、ChatGPTが生成したコードを抽出して実行し、その結果をChatGPTにフィードバックすることで、より複雑な計算処理が可能になります。

外部ツールの活用例として、APIの呼び出しも挙げられます。

APIとは、ソフトウェアの機能を共有するための仕組みです。

ChatGPTにAPIの使い方を教え、APIを利用するコードを生成させることで、外部サービスと連携した高度な処理が可能になります。

例えば、ChatGPTに天気予報APIの使い方を教えれば、ユーザーのいる場所の天気予報を回答に含めることができます。

このように、ChatGPTは外部ツールと連携することで、単体では実現できない複雑なタスクを処理できるようになり、活用の幅が大きく広がります。

プロンプトのコツ⑥:変更を体系的にテストする

ChatGPTへの指示を改善する際、その効果を測定することは重要です。

指示内容を変更することで、一部のケースでは良くなったように見えても、全体的には悪くなっているという可能性もあります。

例えば、指示の変更によって特定の種類の質問への回答は的確になったものの、他の種類の質問への回答が曖昧になってしまったということが起こりえます。

そのため、指示内容を変更する際は、様々な種類の質問を網羅したテストを実施し、変更によって全体的なパフォーマンスが向上しているかを確認することが重要です。

新しい指示や設計が、ChatGPTの性能を本当に向上させているのかを判断することは、簡単ではありません。

いくつかの例を試しただけでは、たまたま良い結果が出ただけで、実際には効果がない可能性もあるからです。

場合によっては、ある種類の質問への回答精度は向上する一方で、別の種類の質問への回答精度が低下してしまうというトレードオフが発生することもあります。

重要なのは、限定的なケースだけで判断するのではなく、多様なケースを想定したテストを体系的に行うことで、変更による影響を総合的に評価することです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次