ChatGPT Plusはすごい

# 結論：GPT-4はすごい

こんにちは。
最近、ChatGPT Plusに加入しました。

もともとgpt-3.5-turboのAPIをお遊び程度に触っていて、「月額20ドル～？　いいよ、サブスクは（笑）　gpt-4が先行で使えるのは楽しそうだけど、GPT-3.5でいいよ。だってpluginとか使わないも～ん」と思っていましたが、**GPT-4が予想以上にできるやつだったので、手のひらを反すことになりました。**

## こういうの作れた
ChatGPTに課金したので「元をとらなくては……」と思って、
個人向けのツールとか、ブラウザゲームとか作ってました。

![soft.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663038/661b7968-0d22-5e42-2d34-314f5598f3f2.png)
[同人イベントスペース仮決めβ Space Inviter](http://subara3.gonna.jp/tool/spaceinviter/spaceinviter.html)

同人イベント主催向けの、ジャンル配置仮決めソフトです。
（JavaScriptとHTMLの簡素な奴です。きっともうちょっとフィードバックを受けて頑張らなくてはならないでしょう……）

あと、C＃のデスクトップアプリとかをせっせと作っていました。

![soft2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663038/31047111-7540-e492-e329-932675d31e75.png)
これは、Wolf RPG Editorの変数値をとってくるソフトの試作中です。
*自分用のツールで、決して公式のものではありません。身内向けです。

なんか、転職用のポートフォリオとか「サービスをリリースしました！」っていうよりはひたすらに自分用の工作をさせてます。

作業時間は前者が３日（平日の空き時間＋休日１日）くらいで、後者が２日（平日の空き時間）くらいです。
こっからいろいろブラッシュアップしてかなきゃいけないとは思うので目安ではありますが、ものすごい早い。

私はロクにJavaScriptを触ったことがなくて、特に書きたくもなかったんですが、ChatGPTとやるのであれば全く苦ではありませんでした。

## ChatGPTの料金体系
（この辺はかなり流動的なので、細かいところはあんまり真に受けずに確認してほしいんですが……）

ややこしいことに、ChatGPT、というかGPTの課金先は、ChatGPTのサブスクであるChatGPT Plusと別にChat APIがあります。

サブスクのChatGPT Plusは月20ドル。
APIのほうは従量課金。

gpt-3.5-turboという最安のモデルなら、1,000トークンあたり0.002ドルという破格のお値段でしたが[なんか、もっと安くなった](https://openai.com/pricing#language-models)。
というわけで、inputは$0.0015 / 1K tokensになりました。

これがどのくらいかというと、一人で普通に使っている分にはぜんぜんよゆーです（体感）。私は試用枠の5ドルを使いきれてません。もっとまじめに触ってる人なら課金されてるとは思いますが……。
（あれ？　前は試用枠15ドルじゃなかったか？）

なお、この試用枠は使い始めるとこの分もまとめて請求されるはずなので無料枠ではないです。

あ、でも、**このAPIを組み込んだゲームとか作って公開すると、遊んでるユーザーが使うたびにお金がかかるので、とたんにキビシーことになります。**

（なので、GPTを組み込んだサービスはだいたい月何回までとか、日何回までとか、課金するのがベースになってきますね。余談でした。）

GPT-4は、現状のChatGPTのGPT3.5よりもすごいやつで、APIは、waitlistに並んで待ってなくちゃならなあくって、今、いち早くGPT-4を触りたいならChatGPT Plusが選択肢となってきます。

追記：GPT-4のAPIも使用可能になりました（2024/4/9）。ちょっとお高めです。

## API使いたいときっていつ？

現状、通常使用に関しては無料のWebのChatGPT。
「ではないほう」をあえて使うとき、っていうか、個人、サービスを作りたいわけでもない個人、つまり私だとどういうことにAPIに用があるかというと、アプリに組み込みたいときなんかです。

えーっと、例えば「お帰りなさい♪お兄ちゃん♪」だとかいう妹とおしゃべりしたいな、とか……。

すみません、なんていうか、エルフのお兄さんに「ここから立ち去れ、人の子よ！」みたいなことを言ってもらうためのおしゃべりアプリとかを作りたくなったらコッチに頼ることになります。

真面目な用途だと、たくさん出力を重ねてもらって、賢くPDF要約してもらったりとかしちゃおうとしてるときとかね。細かく制御するときもコッチが便利です。

だから私、ほんとはChatGPTのplusに用はなかったんです……ほんとは……。

###  すげぇよ、ChatGPT

例えば例えば、Wolf RPG Editor（ゲーム製作ツール）の補助ツールをC#で作ろうと思ったら、
こちらのリンク先の仕様を見ながらクラスに落っことしてくわけですが……。

[Wolf RPG Editor 変数呼び出し値　一覧](https://www.silversecond.com/WolfRPGEditor/Help/06valueget.html)


```
これに対応したクラスを作りたい。C#です。
ーーーーーーーーーーー
（※サイトから仕様をコピペ）
1000000+10*Y+X
　→ マップイベントYのセルフ変数X

1100000+X
　→ このマップイベントのセルフ変数X（コモンセルフ変数と間違えやすいので注意！）

15000000+100*Y+X
　→ コモンEv Y のコモンセルフ変数X (X：0-4,10-99通常変数, 5-9文字列)

1600000+X
　→ このコモンEvのコモンセルフ変数X（マップセルフ変数と間違えやすいので注意！）

略……
```

って言うと、もう**だいぶ完成されたクラスを返してくれる**んです。


```
       public abstract class Entity
        {
            public EntityType Type { get; set; }
            public abstract int CalculateValue();
        }

        public class MapEvent : Entity
        {
            public int Y { get; set; }
            public int X { get; set; }

            public override int CalculateValue()
            {
                return 1000000 + 10 * Y + X;
            }
        }
```

ちゃんと抽象クラスを切って、計算関数をオーバーライドしてくれる。
しかも、計算部も結構正しい。

（もとの仕様書が明瞭で素晴らしいから、というのもあります。）

そのまんまのコピペだとやっぱり規則的じゃない部分で飛ばされた仕様とか、あと作ってたら「あ～、データベースは概念が別だからきっと別クラスのほうがいいな……」とかあったんですが、ひな形は十分作ってくれる。

私がちまちまやるべき作業が魔法の杖一振り……。
とはいかないけどまあまあ、三振りくらいでやってくれる。
もう決まりきった定型処理ならほぼ一発です。

ちょっと違ってても「そここうなんですよ～」っていうと急に「理解しました」って理解してくれる。こともある。

誤字脱字チェックをしてほしくて自分の原稿をコピペしてぶっこんだら「文章はいいですけど、この参照記号おかしくないですか？」と言ってくれて涙が出そうになりました（実際、別の章からコピペした参照が残っていて、参照するべきところは別でした）。

この「参照、おかしくないですか？図の番号と表の名前一致してないみたいなんですけど……」みたいなこと言ってくれる奴は絶対欲しいです。

## GPT-4、よい

### 大きなトークン数
GPT-4は扱える**トークン数がデケェ**です。
（最近、GPT-3もでっけぇモデル出たんだけど、やっぱりGPT-4の方が大きい）。

「え。大きいんだ。へー、よかったね」くらいにしか思っていなかったのですが、
ChatGPT Plusをやってみたらものすごい恩恵を感じます。

トークン数が大きいということはどういうことかというと、おしゃべりできる数がでけぇということです。
短いコード丸ごと渡して「で、ど？」って聞けるってことです。さらに返ってくる返答もトークン数に含まれるので、返答で関数全部書いてもらっちゃってもいける。短い奴ならCSS全部渡してもいける。
これはすごい。助かる。

現状、埋め込みとか、GPTのトークンの限界を前提にして「必要な情報を一緒に渡してやる」とかそういう技術はあるけど、Wordとかで校正してもらおうと思ったら、通しで渡せた方がぜったいいいですよ。だって参照番号がさ、間違ってるとかさ。知りたいもの。絶対知りたい。

トークン＝パワー。
これは確かなるパワーです。つよかった。

トークンがなくなると前の話忘れてしまうので（忘れているのは、トークンがなくなったからなので）、**大切な命令は冒頭につけて２回目にお願いするときも繰り返すとわかってくれることが多いです。**

なんか関数作ってって言ったのに要約してくるんだけど、とか、今してほしいのは英語の翻訳じゃない、みたいなときはトークン足りなくて、おそらく前言ったことを忘れてます。

###  賢い

体感ですが、プログラミングにおいては**バツグンにGPT-3.5よりも賢い**です。

同人イベントスペース仮決めアプリを作っていた時は、「空きスペースを見つけてサークルを配置していく」みたいな処理を書かなくてはなりませんでしたが、そこのところは私は一切やっていません。
情報処理のプログラミング問題みたいなことは全部ChatGPTにさせました。
つまり、私は、[i]から[k]までとか全然書いてなくって、ひたすら「この状況で、この変数があって、このような条件である」と唱え、デバッグしていただけでした。
私の指示がブレブレで難航したんですが、何度か繰り返していて、まあまあ満足できるところに落ち着きました。

自分で「空きスペースを探索して、大きいほうからキューに入れて」と言い出して「じゃあその通りにやってください」と言って解決させました。

（ただ、私の理解が浅いため、バグが起きたときにはピンとこないでしょうし、また、今のよりも効率の良い探索の方法などは思いつけないので、ダメではありますね。）

GPT-4は、なんとなく、ユーザーにおもねるところがかなり少なくなっていて、「動かないんですけどっ」ってクレームを入れた結果「それはないですよ」「デバッグしてください」「エラーメッセージをよこせ」「確認しろ」「パスは正しいのか？」というようになりました（実際はこんな言い方はしません）。

まあまあ「うわっ、ほんとだ、ごめん、コードには問題なかった」ってなることも結構ありました。

GPT-4の方が人を信じてない気がする。賢いね。


## 結論: GPT-4はすごいやつだった

GPT-4、使ってみたらすごかった。もういやだ。**１回高速のインターネット回線の味を知るとそれ以外は無理になるように、１回メモリ4GBを脱するともう戻りたくなくなるように、GPT-4じゃないといやだ。**

なんかモッタイナイきがしてずーっとコードを書いている……。もとい、書いてもらっております。
１時間に何回ねって制限があるんで、なんか、使い切らなきゃもったいない気がして、これってソシャゲのスタミナみたいな思想なんじゃないだろうか。

まあ、そのうち落ち着くと思います。

このあとChatGPTがどういう料金体系でどういう感じになってくのか分からないので、「やろうぜ、月20ドル！」っていうわけでもないんですが、コード書くなら入れておいてかなりアドだと思います。

### （補足）ただ、ちょっとライブラリの使い方までは知らないですね……。

JavaScriptしてたら1発で（または、変数名・関数名を整えれば）動くコードばかりくれるもんで、これは「すごいじゃん、なんでもできるじゃん！」ってほとんどコード書かずにうきうきでゲームとかプログラムとかを書いてもらっていたんですが、外部ライブラリに言及したとたんに「マニュアルを読んで適切に実装しましょう」というようになりました。

そんなこと言わないでよ、できるんでしょ？

というわけでもなかった。

C＃で、GlobalHotKeyというライブラリを使ったときのことです。

```python
this.hotKey = hotKeyManager.Register(Key.A, ModifierKeys.Shift);
```

コンパイラが、「ModifierKeys.Shift」がないとエラーを出しました。
ChatGPTに聞いたらそれはGlobalHotKeyに定義された型だと言い張ります。
ないけど～？

しかし、以下のように修正すれば問題ありませんでした。

```python
this.hotKey = hotKeyManager.Register(System.Windows.Input.Key.A,System.Windows.Input.ModifierKeys.Shift);
```

違う違う、System.Windows.Inputの型ですよっと。

いかんせんそれまで触ってたのが素のライブラリなしのHTMLとJavaScriptだったから、何でも知ってるのかと思っていたぜ。

たぶん、「System.Windows.Inputの型ですよ」って指示すれば理解してくれるでしょうし、そこまで学習データに含まれてしまえば解決する気がします。また、外部の情報を参照することもできるようになりつつあるので、「これ、マニュアル……」「理解しました」「じゃあよろしく」みたいな未来はありそうです。

だってコピペして渡してやっても、それなりに理解して動くんだから、そこを外部から持ってこれるとなると、もう、ねぇ？

ただ、上の例は、軽くプラグインでブラウジングさせてもあんまり改善しませんでした（Pythonのコードを参考にしたのか、イマイチでした）。聞き方が悪いのかもしれないけど、まあ、でも、ライブラリとかまではちょっと知らないかもね。

しかし、「どういうライブラリあるの？」って聞いたら王道を教えてくれるので（確かめないといけないんですが）何も知らないところから候補をもらうのにはベンリですし、それを差し引いても全くできるやつです。