💻 プロンプティングTips

フォーマットを自在に変換できる

Template Prompt

Template Prompt(テンプレート・プロンプト)は、大規模言語モデルの出力を正確に希望の形式にコントロールするための強力なプロンプトです。

このプロンプトでは、モデルにテンプレートを提供し、そのテンプレートに沿って出力するよう指示します。テンプレートにはプレースホルダーを設け、モデルにそれを埋めるよう指示します。

例えば、次のようなプロンプトです。

プロンプト例

テンプレート:

論文タイトル: TITLE_PLACEHOLDER

著者: AUTHOR_PLACEHOLDER

概要:

SUMMARY_PLACEHOLDER

ーーー

論文情報:

A Neural Probabilistic Language Model

Yoshua Bengio, Réjean Ducharme, Pascal Vincent

This paper presents a neural network architecture for statistical language modeling. A learning algorithm is developed for sequentially organizing neurons into a layered hierarchical structure. This provides a significant improvement in generalization performance over the maximum entropy model and the standard back-propagation algorithm on a difficult task of predicting the next word in natural language text.

以上の情報を用いて、論文のタイトル、著者、概要を記入してください。

このプロンプトでは、最初に「テンプレート」として、3つの項目(論文タイトル、著者、概要)を設定しています。

その後に、整形されていない情報を与えて、各プレースホルダー(上のプロンプト例では、*******_PLACEHOLDER)を埋めるように指示します。

するとGPTは、与えられた情報を分析して、それぞれのプレースホルダーに該当する情報を抽出し、指定したテンプレートに沿って情報を出力します。

回答例(GPT-4)

論文タイトル: A Neural Probabilistic Language Model

著者: Yoshua Bengio, Réjean Ducharme, Pascal Vincent

概要:

This paper presents a neural network architecture for statistical language modeling. A learning algorithm is developed for sequentially organizing neurons into a layered hierarchical structure. This provides a significant improvement in generalization performance over the maximum entropy model and the standard back-propagation algorithm on a difficult task of predicting the next word in natural language text.

つまり、テンプレート・プロンプトは、整形されていない生の情報・データを、意図するフォーマットに自在に変換するためのプロンプトパターン、と言えます。

もう少し実務的な例をテストしてみますね。

プロンプト例

テンプレート:

顧客ID: CUSTOMER_ID_PLACEHOLDER

氏名: NAME_PLACEHOLDER

住所: ADDRESS_PLACEHOLDER

電話番号: PHONE_NUMBER_PLACEHOLDER


不整形式顧客データ:

ID:1234, 氏名: 田中太郎, 住所: 東京都千代田区○丁目1-2 電話:03-1234-5678

ID:2345,氏名:山田花子 住所:大阪府大阪市△区□丁目5-6, 電話:06-8765-4321


以上のデータを使用し、整形式の顧客データを生成してください。

よく見ていただくと、不整形式顧客データの二人分のデータはフォーマットがバラバラです。

田中さんの方は、ID番号の後にカンマ+スペースですが、山田さんはカンマのみでスペースはありません。

また名前の後のカンマも、田中さんにはありますが、山田さんにはありません。

このような不整形式情報を、こちらが意図するフォーマット(テンプレート)に変換する時に非常に役に立ちます。

では、実際の出力を見てみましょう。

回答例(GPT-4)

顧客ID: 1234

氏名: 田中太郎

住所: 東京都千代田区○丁目1-2

電話番号: 03-1234-5678


顧客ID: 2345

氏名: 山田花子

住所: 大阪府大阪市△区□丁目5-6

電話番号: 06-8765-4321

いかがですか?

GPTが不整形式データから、顧客ID、氏名、住所、電話番号を正しく抽出し、それを、与えられたテンプレートに沿って出力しました。

これを、Advanced Data Analysis(旧Code interpreter)のファイル読み込み・出力機能と連動させると、不整形式データの入力されたテキストファイルやCSVファイルを読み込ませて、テンプレートに沿って整形されたデータをCSVファイルとして出力する、というファイル変換も可能になります。

実際に、上の例を使ってファイルを変換した結果を、ChatGPTスレッドで共有します。以下のリンクからご覧ください。

👉ChatGPTの共有リンク:テンプレートプロンプトによるフォーマット変換(ファイル読み込み&出力)

テストで用いた読み込みTXTファイルはコチラ👉

テストで出力されたCSVファイルはコチラ👉

Quick Tip: テストプロンプトを見ていただくと分かるように、Advanced Data Analysisでテキスト(CSV)ファイルを出力する時に、”(UTF-8 with BOMエンコード)”と指定すると、出力された日本語が文字化けしにくくなります


テンプレートプロンプト、いかがでしたか?

テンプレートは情報を整理するだけでなく、太字にしたり、表形式を指定することもできます。

最後に紹介したファイル操作は、日々の実務を高効率化してくれると思います。

ぜひ試してみてくださいね。