見出し画像

#ChatGPT APIの各種設定値を #Slack のチャンネル毎に設定できるようにしました

Open AI の Completion APIには各種パラメータを設定できるようになっています。

中でも重要なのはtemperature(もしくはtop_p)と、ペナルティでしょうか。
前者は、生成する文字列のランダム性の制御をするパラメーターで、高くするといろんなことを吐き出しますが、低くすると同じ質問なら同じように答えようとします。

文章生成のランダム性を設定する

例えば、チャンネルとしてブログのテキストのドラフトを書くために利用するという場合は、温度高めにしておくことで予想もしなかった表現に出会うことができる可能性が高まります。
一方で、Q&Aのように使う場合、返信がランダムだと困るという場合があるのではないでしょうか。そのような場合は0に設定しておくことでクオリティを一定に保つという効果がでます。
そのため、温度設定もしくはtop_pのどちらかの値を設定してみてください。両方を変更することは非推奨となっているため、両方に設定値が入った場合はどちらかを空欄にするように設計してあります。
0にすると、たしかに割と同じ答えにたどり着きます。一方でtemperatureを2に設定すると、文章として成り立たなくなってぶっ壊れますので気をつけて下さい。最大でも1.6くらいが現実的なようです。

temperature2にしたら壊れた

同じキーワードを使わないように設定する

ペナルティ設定

これは、一度使ったキーワードに対してマイナスのペナルティをつけるという仕組みです。これが高いと同じ単語が文章に入る確率が下がるというものです。
presence_penaltyの方は、現れたか否かのみで判定するのにたいして、frequency_penaltyは生成された頻度(回数)を考慮してペナルティをつけるようになっています。(複数回登場したものが出なくなる仕組み)
長文を生成する時や、文末が全部似た形になってAIっぽいなと思う場合はペナルティを高めにしてあげるとより多様な表現で文章を作ってくれるかもしれません。

どうやって使うの?

ここまでに書いたとおり、この設定では、ChatGPTの文章生成スタイルを決定するためのオプションとなっています。
恐らく用途は多岐に渡ると思いますので、用途に応じた設定をすることでより便利なアプリとして動いてくれるようになるでしょう。
先程書いたとおり、Q&Aであったり、専門的な話に返事をしてもらうような設定をしたい場合は、返答にブレが出ないような設定が好ましいでしょう。一方で、ブログの文章であったり、プロモーション用メッセージであったりと、単調なテキストが合わない場合はtemperatureを高めたり、ペナルティを高くすることで多様な表現を得ることができるかもしれません。
是非使ってみて下さい。APIキーさえ入れてくれれば動きます。
GPT Party
DeepL Translator
TimeLine

使い方

アプリの詳細な使い方はこちらをご参照ください


noteにはこれまでの経験を綴っていこうかと思います。サポートによって思い出すモチベーションが上がるかもしれない。いや、上がるはずです。