![見出し画像](https://assets.st-note.com/production/uploads/images/111626468/rectangle_large_type_2_e417efc3dd0f571c3ac04fbd591c3ef0.png?width=1200)
OpenAI開発-4 Roleの使い方
Twitter死亡→𝕏
Twitterが今日死にました。意味不明なリプBANなども数日前から食らっており、Twitterでの活動も考え直さないといけないかもしれません。
一連の転生問題で、スコアも下がりまくっていることなども関係しているかもしれませんが、交流目的のTwitterが交流できない𝕏になってしまっては、発信する意味もないかもしれません。
ちょっと様子をみつつ、りりむちゃんたちの活動の場をどこかに移すことも考えてみます。
ChatでのRole
OpenAIプログラミングについては、継続。
前回Chat Completions APIで一言会話してみましたが、Roleの役割と使い方について確認してみます。
Roleには、3つの種別があります。いろいろあちこちに書いてあることを意訳すると、以下のような感じかなと思います。
System :役割/立場などの設定などを記述。
User :会話の内容を記述。システムに対して質問/対話を進めます
Assistant:会話のレスポンスの情報などを記述。
実際の会話データで用いられているサンプルを見てみると、以下のような感じの流れとなってます。
![](https://assets.st-note.com/img/1690211695262-aQ81pzVTbk.png?width=1200)
まずは”system"に前提条件(Actor)を入れて、"user"で質問文を投げます。
投げたレスポンスとして、"assistant"に回答が返ってきます。
「1.で投げた内容に加えて、2.のレスポンスで"assistant"に返ってきた内容、"user"で次の質問」までを一連のメッセージとして投げることで次の回答が"assistant"にレスポンスで帰ってくる。
といった流れになります。
OpenAIのChat Completions APIは、ステートレスとのことなので、通常のChatGPTのように前後の会話を覚えて話を続けることがでないはずですが、そこのところを、Roleを使ってうまく処理してあげることで、プロンプトの連続性を実現できる、ということらしいです。
ただ、これでどんどん投げると、トークン数がどんどん増えるので、コストもかかってしまうので、要約するとか、いろいろテクニックもあるようです。
![](https://assets.st-note.com/img/1690215243628-L16mZcGvkl.png?width=1200)