24.2K Views
November 03, 23
スライド概要
本プレゼンテーションでは、GPT言語モデルの「Role」機能について解説し、活用方法を示しています。GPTには、System Role、User Role、Assistant Roleがあり、それぞれの役割が異なります。User RoleとAssistant Roleを利用することで、プロンプトの出力を制御することができ、精度が高くなるため、役立ちます。具体的な使い方については、デモンストレーションも行っています。
おすすめタグ:GPT,Role,プロンプト,出力制御,言語モデル
みんなの知らない “Role”の使い方 篠田 敬廣 @yukkie1114 1
プロンプトハッカソンの 1部門で2位入賞 2
もくじ • GPTのRole • みんなの知らないRoleの使い方 • デモ 3
私が活用しているRoleの制御方法なの で、ご参考にしていただけたら幸いです 4
GPTのRole • 3つのRoleがある • System • User • Assistant https://platform.openai.com/docs /guides / 5
それぞれの役割 GPTへの 依頼/質問 System キャラ付け 役付け 全体敵な指示 User GPTへの依頼や 質問 ユーザーへの 返答 Assistant ユーザーに対する 返答 6
みんなの知らない Roleの使い方 (公式Docにも載ってないはず) 7
User 入力するプロンプト User Role: こんにちは こんにちは、XXXXXX はじめの対話を「こんにち は」からはじめられる ▶プロンプトが流れない GPTの挙動を 「こんにちは」で止められる ので対話がしやすい 8
Assistant 入力するプロンプト Assistant Role: 〇〇を作成するので、以下の情報を教えてく ださい こんにちは、〇〇を作成するので、以下 の情報を教えてください #1.XXXXX #2.XXXXX • GPTに出力させたい内 容を制御できる • 完全に同じ文章ではない がおおよその方向性で制 御可能 ▶Assistantでできちゃう 9
こう思ったかもしれません • プロンプトの中でそのように指示すればいいのでは? • User、Assistant Roleで制御したほうが 制御しやすい、精度が高い=楽 10
デモ 11
シナリオ ① User Assistant あり ② User Assistant なし ③ User のみ ④ Assistant のみ 思い通りにプロンプ 出力が流れる 「こんにちは」の 出力が流れる トが動くパターン 思い通りの出力に 後の出力を制御 思い通りの出力に ならない できない ならない デモで使うプロンプトはnoteにあります https://note.com/yukkie1114/n/n95279072324a 12
デモの結果 ChatGPTのシェアリンクも掲載しています 13
① User、Assistant あり プロンプト 出力結果 ### 概 要 と 説明 Googleカ レ ン ダ ーのURLリンクを生成します。 スケジュールの共有に役立てることができます。 ### {Gole} 会 議 用 のGoogleカ レンダーのURLリンクを作成する ### パ ラ メ ーター情報 パ ラ メ ーター|必須 / オプション|説明 action|必 須 |action=TEMPLATE 「 TEMPLATE」 は 固 定。 text|必 須 |予定の件名(Subject)Example: text=Garden%20Waste%20Collection Format: text=text dates|オ プ シ ョン|予定の日時。 開始と終了を指定できる。なお、日付のみで、時間を省略した場合は終日扱いになる。 時 間 指 定の場合は、時間の最後には大文字の「Z」を付ける。 Example: dates=20090621T063000Z/20090621T080000Z (= 2015/6/21 6:30か ら 、 2015/6/21 8:00ま で ) Format: dates=YYYYMMDDToHHMMSSZ/YYYYMMDDToHHMMSSZ Ex: URL https://calendar.google.com/calendar/u/0/r/eventedit?text=MTG&dates=20230927T220000/ 20230927T230000&details=Test&trp=undefined&trp=true&sprop ### **Assistant Role:** Googleカ レ ン ダ ーの予定を作成するので、以下を教えてください。 ### **手 順 ** Step.1 は じ め に{ヒヤリング} #1~#3をヒヤリングしてください Step2.会 議 用 のリンクを作成する ### {ヒ ヤ リング} #1 予 定 の 件名を教えてください #2 開 始 時 間と終了時間を教えてください #3 オ プ シ ョン情報を教えてください(会議のためのメモやURLなど) #4 オ プ シ ョンを聞き終わったら会議用のURLリンクを作成して出力します ### 成 果 物 会 議 用 のカレンダーのURLリンク ### User: こんにちは ○ 出力が思い通り https://chat.openai.com/share/d0cb9303-d2ee-4dd2-9f60-3a081edb51f5 14
② User、Assistant なし プロンプト 出力結果 ### 概 要 と 説明 Googleカ レ ン ダ ーのURLリンクを生成します。 スケジュールの共有に役立てることができます。 ### {Gole} 会 議 用 のGoogleカ レンダーのURLリンクを作成する ### パ ラ メ ーター情報 パ ラ メ ーター|必須 / オプション|説明 action|必 須 |action=TEMPLATE 「 TEMPLATE」 は 固 定。 text|必 須 |予定の件名(Subject)Example: text=Garden%20Waste%20Collection Format: text=text dates|オ プ シ ョン|予定の日時。 開始と終了を指定できる。なお、日付のみで、時間を省略した場合は終日扱いになる。 時 間 指 定の場合は、時間の最後には大文字の「Z」を付ける。 Example: dates=20090621T063000Z/20090621T080000Z (= 2015/6/21 6:30か ら 、 2015/6/21 8:00ま で ) Format: dates=YYYYMMDDToHHMMSSZ/YYYYMMDDToHHMMSSZ Ex: URL https://calendar.google.com/calendar/u/0/r/eventedit?text=MTG&dates=20230927T220000/ 20230927T230000&details=Test&trp=undefined&trp=true&sprop ### 手 順 Step.1 は じ め に{ヒヤリング} #1~#3をヒヤリングしてください Step2.会 議 用 のリンクを作成する ### {ヒ ヤ リング} #1 予 定 の 件名を教えてください #2 開 始 時 間と終了時間を教えてください #3 オ プ シ ョン情報を教えてください(会議のためのメモやURLなど) #4 オ プ シ ョンを聞き終わったら会議用のURLリンクを作成して出力します ### 成 果 物 会 議 用 のカレンダーのURLリンクこんにちは ❌ 思い通り出力にならならない https://chat.openai.com/share/3b82ac31-e8f1-4469-9a35-c7ae04b0b4ca 15
② User、Assistant なし プロンプト 出力結果 ### 概 要 と 説明 Googleカ レ ン ダ ーのURLリンクを生成します。 スケジュールの共有に役立てることができます。 ### {Gole} 会 議 用 のGoogleカ レンダーのURLリンクを作成する ### パ ラ メ ーター情報 パ ラ メ ーター|必須 / オプション|説明 action|必 須 |action=TEMPLATE 「 TEMPLATE」 は 固 定。 text|必 須 |予定の件名(Subject)Example: text=Garden%20Waste%20Collection Format: text=text dates|オ プ シ ョン|予定の日時。 開始と終了を指定できる。なお、日付のみで、時間を省略した場合は終日扱いになる。 時 間 指 定の場合は、時間の最後には大文字の「Z」を付ける。 Example: dates=20090621T063000Z/20090621T080000Z (= 2015/6/21 6:30か ら 、 2015/6/21 8:00ま で ) Format: dates=YYYYMMDDToHHMMSSZ/YYYYMMDDToHHMMSSZ ❌ 思い通り出力にならならない Ex: URL https://calendar.google.com/calendar/u/0/r/eventedit?text=MTG&dates=20230927T220000/ 20230927T230000&details=Test&trp=undefined&trp=true&sprop ### 手 順 Step.1 は じ め に{ヒヤリング} #1~#3をヒヤリングしてください Step2.会 議 用 のリンクを作成する ### {ヒ ヤ リング} #1 予 定 の 件名を教えてください #2 開 始 時 間と終了時間を教えてください #3 オ プ シ ョン情報を教えてください(会議のためのメモやURLなど) #4 オ プ シ ョンを聞き終わったら会議用のURLリンクを作成して出力します ### 成 果 物 会 議 用 のカレンダーのURLリンク ### User: こんにちは https://chat.openai.com/share/9bab5b58-5b7f-4792-b346-5eb9df8407b7 16
③ User のみ プロンプト 出力結果 ### 概 要 と 説明 Googleカ レ ン ダ ーのURLリンクを生成します。 スケジュールの共有に役立てることができます。 ### {Gole} 会 議 用 のGoogleカ レンダーのURLリンクを作成する ### パ ラ メ ーター情報 パ ラ メ ーター|必須 / オプション|説明 action|必 須 |action=TEMPLATE 「 TEMPLATE」 は 固 定。 text|必 須 |予定の件名(Subject)Example: text=Garden%20Waste%20Collection Format: text=text dates|オ プ シ ョン|予定の日時。 開始と終了を指定できる。なお、日付のみで、時間を省略した場合は終日扱いになる。 時 間 指 定の場合は、時間の最後には大文字の「Z」を付ける。 Example: dates=20090621T063000Z/20090621T080000Z (= 2015/6/21 6:30か ら 、 2015/6/21 8:00ま で ) Format: dates=YYYYMMDDToHHMMSSZ/YYYYMMDDToHHMMSSZ ❌ 思い通り出力にならならない Ex: URL https://calendar.google.com/calendar/u/0/r/eventedit?text=MTG&dates=20230927T220000/ 20230927T230000&details=Test&trp=undefined&trp=true&sprop ### 手 順 Step.1 は じ め に{ヒヤリング} #1~#3をヒヤリングしてください Step2.会 議 用 のリンクを作成する ### {ヒ ヤ リング} #1 予 定 の 件名を教えてください #2 開 始 時 間と終了時間を教えてください #3 オ プ シ ョン情報を教えてください(会議のためのメモやURLなど) #4 オ プ シ ョンを聞き終わったら会議用のURLリンクを作成して出力します ### 成 果 物 会 議 用 のカレンダーのURLリンク ### User: こんにちは https://chat.openai.com/share/9bab5b58-5b7f-4792-b346-5eb9df8407b7 17
④ Assistant のみ プロンプト 出力結果 ### 概 要 と 説明 Googleカ レ ン ダ ーのURLリンクを生成します。 スケジュールの共有に役立てることができます。 ### {Gole} 会 議 用 のGoogleカ レンダーのURLリンクを作成する ### パ ラ メ ーター情報 パ ラ メ ーター|必須 / オプション|説明 action|必 須 |action=TEMPLATE 「 TEMPLATE」 は 固 定。 text|必 須 |予定の件名(Subject)Example: text=Garden%20Waste%20Collection Format: text=text dates|オ プ シ ョン|予定の日時。 開始と終了を指定できる。なお、日付のみで、時間を省略した場合は終日扱いになる。 時 間 指 定の場合は、時間の最後には大文字の「Z」を付ける。 Example: dates=20090621T063000Z/20090621T080000Z (= 2015/6/21 6:30か ら 、 2015/6/21 8:00ま で ) Format: dates=YYYYMMDDToHHMMSSZ/YYYYMMDDToHHMMSSZ Ex: URL https://calendar.google.com/calendar/u/0/r/eventedit?text=MTG&dates=20230927T220000/ 20230927T230000&details=Test&trp=undefined&trp=true&sprop ### Assistant Role: Googleカ レ ン ダ ーの予定を作成するので、以下を教えてください。 ### 手 順 Step.1 は じ め に{ヒヤリング} #1~#3をヒヤリングしてください Step2.会 議 用 のリンクを作成する ### {ヒ ヤ リング} #1 予 定 の 件名を教えてください #2 開 始 時 間と終了時間を教えてください #3 オ プ シ ョン情報を教えてください(会議のためのメモやURLなど) #4 オ プ シ ョンを聞き終わったら会議用のURLリンクを作成して出力します ❌ 思い通り出力にならならない ### 成 果 物 会 議 用 のカレンダーのURLリンク https://chat.openai.com/share/38bb4ef3-5bb7-4ad6-9a9b-e069477c442a 18
FAQ Q APIでもAssistant Roleで制御できますか? A はい。APIでもAssistantで出力結果の方向性を制御でき ます。個人的にAPIのほうが効果的に使えると思っています。 Q プロンプトにUserやAssistantを書いて、GPTはそれを 「Role」として認識しているんですよね? A はい。GPTはプロンプトに書いた“UserやAssistant”を 「Role」として解釈しています 19