ブログの長文要約システムをChatGPTに置き換えてみた。
さて、今日は病院受診で会社は有給を取っていた。今日は役所に行ったりとか図書館に本を返しに行ったりとかプライベートな雑務をこなすための日だったね。
久々の3連休でまとまった時間が取れそうだったので、うちのブログについている要約システムのカスタマイズを行なった。記事の先頭の方についてるボタンのやつである。こちらの方は僕が自分でレンタルサーバにブログのデータを取り込むシステムを構築して、そこで得られたブログ本文のデータを朝日新聞社の長文要約APIにて要約文を取得して表示させている。
こちらの方の長文要約APIをちょっとChatGPTを使うことができるOpenAIのAPIに差し替えてしまおうかなと企んでいたのね。朝日新聞社のAPIが無料で使うことができるのに対して、OpenAIのAPIは有料のサービスであるけども実験的に試してみるとすごい精度が高い要約文を生成することがわかった。
ChatGPTのAPIを仕込むのは簡単だったので、ちょこちょこっと今まで使ってたシステムのAPI通信部だけをいじることで実装することができた。試しに昨日の記事を要約してみるとこのような結果を得ることができた。
いいねいいねーって感じ。やっぱChatGPT君はすごいよ。ここまで高性能のAIシステムを比較的簡単に実装できるAPIを提供しているというあたりで、これからの時代というのは一気にAI時代に突入しようとしてるのだなーと強く実感する。僕もG検定などのディープラーニング系の資格も取ったことだし、データサイエンティストに関する勉強も引き続き続けて参ろうかなと思う。
ちょっと今日のブログはこのChatGPTでの長文要約エンジンについて軽く説明する技術記事にしてしまおうかなと思う。簡単に使うことができるAPIだからプログラミング知識のある人には役立たないと思うけど、PHPでのChatGPTのAPI実装サンプルとかは役に立つ人もいるかもしれないので、とりあえず情報共有だけはしておく。
ひとまず、今回、OpenAIと通信を行ってるクラスをこちらで公開しておくよ。できればGitHubなんかでシステム全部をみえるようにしておきたいけど、ちょっとプライベートの色んなアクセストークンとかも乱雑に散らばったままのリポジトリなので、あとで整理してpublicのリポジトリに上げ直して追記でリンクを貼っておく。
ChatGPTと通信する部分のコードはこんなふうになっている。
やってることとしては、ただOpenAIのAPIと通信してるだけである。ちょっと長文要約用のAPIとして使うには工夫が必要で、ChatGPTを使うためのプロンプトを工夫してみた。こちらのプロンプトの文法はnoteのCXOの深津貴之さんの深津式プロンプトを流用しただけである。
あと、つまづいた点があるとすると、プログラムの方は正しくてちゃんと通信しているのに「429 Too Meny Requests」がずっと返ってきてAPIが機能してくれないことがあった。これは、OpenAIのAPI keyというのは、クレジットカードを登録したあとじゃないと有効化されないというのが原因だったみたいだね。クレジットカードを登録してAPI keyを再発行すると10分程度経つと使えるようになった。
とりあえず、このプログラムを仕込むことで要約システムの精度が上がったので、しばらくはこれで運用してみようと思う。他にもChatGPTのAPIを使ってプログラムを組んで遊びたいのだけど、このAPIは有料だからなぁ。ちょっとちまちまと無料分を様子を見ながら使ってみて、問題がなさそうだったらいろんなものを作ってみようと思う。
追記 2023/04/11
GitHubにファイルをプッシュしときました。処理はこちらから確認できます。