ChatGPT API(gpt-3.5-turbo)のメッセージオブジェクトのroleパラメータを徹底解説

ChatGPTは、OpenAIが開発した言語モデルであり、APIとして提供されています。APIの主な入力は、メッセージオブジェクトであり、各メッセージオブジェクトにはroleとcontentの2つのパラメータがあります。その中でもroleは、メッセージオブジェクトがどのような目的で送信されたのかを設定するために使用されます。今回は、このroleの設定値がどのような役割を持っているかについて解説していきます。
systemメッセージ
ChatGPTは、投げかける質問に応じてに役割を与えることで、精度の高い回答を得ることができます。system メッセージでは、ChatGPTに与える役を設定するために使用します。
assistantメッセージ
以前の応答を保存するのに役立ちます。文章要約や翻訳を行う際の対象となるテキストをここのメッセージに設定します。また、望ましい動作の例や回答の選択肢を示す使い方も可能です。
usrメッセージ
ユーザーがChatGPTに提供したいテキストを含めるために使用されます。これにより、ChatGPTはユーザーの要求に応じた回答を提供することができます。
プログラム解説
今回のプログラムは下記の文章を変数target_sentenceに格納し、50字以内で要約するプログラムです。
「スマートフォンは、ポケットサイズの携帯端末であり、携帯電話と同様に通話やメッセージの送受信ができますが、多くの場合、インターネットに接続して、電子メール、ソーシャルメディア、ウェブサイトの閲覧、音楽やビデオの再生などもできます。スマートフォンには、さまざまな種類のアプリケーションがあり、これらは利用者のライフスタイルや趣味に合わせて選択することができます。スマートフォンは、毎日の生活で欠かせないものとなり、ビジネスや教育、エンターテインメントなど多岐にわたる分野で活用されています。スマートフォンは、高機能で使いやすく、持ち運びにも便利なため、今後ますます普及が進むことが予想されています。」
下記の例では、systemメッセージに「あなたは優秀な新聞記者です」と渡し、ChatGPTに役を設定しています。そして、assistantメッセージに要約したい文章を渡します。そして、usrメッセージにて要約して欲しい旨を渡すことでChatGPTが条件に沿った回答を返してくれます。

さいごに
今回はroleパラメータに関して説明しました。これらのpromptを最適化することでAPIの価値を最大化することができます。是非、色々試して最適なprompt生成に活用して下さい。実際のAPI使用例に関しては下記リンクを参考にして下さい。
PythonでchatGPTのAPI(gpt-3.5-turbo)を使って文章要約を実装してみた | Data Driven Knowledgebase