「ChatGPTのチャットログを保存したい」
「PyChatGPTが使えなくなった・・・」
このような場合には、この記事の内容が参考になります。
この記事では、ChatGPTのチャットログを保存する方法を解説しています。
本記事の内容
- ChatGPTはプログラムによるアクセス対策が厳しい
- JavaScriptによる抜け道
- 具体的な方法は・・・
それでは、上記に沿って解説していきます。
ChatGPTはプログラムによるアクセス対策が厳しい
ChatGPTは、利用すればするほどその凄さに驚かされます。
だから、そのChatGPTとのやり取りを保存したくなります。
一応、ChatGPTはチャットログの保存機能を開発予定のようです。
チャットログの保存機能なんて、絶対に必要となる機能ですからね。
個人的には、先行して次のようなことをしていました。
しかし、ChatGPTに対策されてPyChatGPT自体は動かなくなりました。
PyChatGPTは、今後はAPI化する方向のようです。
今は、その利用者を募集しています。
![](https://self-development.info/wp-content/uploads/2022/12/21884270290ce7764139629a6bf13bdb.jpg)
こうなってくると、個人的にはもうPyChatGPTを使いたくありません。
今後もChatGPTとのいたちごっこは続くでしょう。
それに、このようにサービス化してしまうとオープンソースとは言えません。
いつ有償になってもおかしくありません。
PyChatGPTは、いいライブラリだと思ったんですけどね・・・
いや、実際にいいライブラリだったのです。
![](https://self-development.info/wp-content/uploads/2022/12/image-32.png)
たった、10日ほどで2kのスターをGitHubで集めています。
![](https://self-development.info/wp-content/uploads/2022/12/image-33.png)
ChatGPT関連のライブラリでは、最高峰と言えます。
でも、個人的にはもう使いません。
おそらく、他のライブラリも一緒でしょう。
ということで、自分で作るしかありません。
JavaScriptによる抜け道
サーバーサイド(Pythonは決してクライアントサイドではない)の処理では、普通にやっても無理です。
Google reCAPTCHAが登場した時点で、無理ゲーになっています。
![](https://self-development.info/wp-content/uploads/2022/12/51341fd2b2266bee5166a615e2f13f3d.jpg)
ただし、Google reCAPTCHAを回避する手段はあります。
次のような有料サービスを利用するのです。
しかし、正直そこまでする必要性は感じません。
そもそも、ChatGPT自体が対話型の処理です。
そうであれば、無理やりサーバサイドで片づける必要もありません。
ということで、JavaScriptで対応することにします。
簡単に言うと、ChatGPTの画面でJavaScriptを動かします。
これは、Chromeの拡張機能をイメージすればよいでしょう。
Chromeの拡張機能は、基本的にはJavaScriptの塊です。
それと同じようなことをします。
なお、Chromeの拡張機能で望む機能を持つモノはまだ存在していません。
今後、そのような拡張機能が出てくる可能性もあるでしょう。
良いのが見つかれば、それを使いたいとは思います。
具体的な方法は・・・
具体的には、次の方法が考えられます。
- Tampermonkeyの利用
- pywebviewの利用
Tampermonkeyについては、次の記事で解説しています。
pywebviewは、Pythonのライブラリです。
iOS/AndroidにおけるWebViewのようなモノとイメージしてください。
どちらを採用しても、やりたいことはできるはずです。
今回は、pywebviewを採用しました。
Pythonが触れるなら、pywebview利用の方がやりやすいと思います。
そして、次のようなアプリを作りました。
アプリと言うのは、少し大袈裟かもしれませんが。
![](https://self-development.info/wp-content/uploads/2022/12/809f3fec969bcea3d275387c1185d39c.jpg)
「ダウンロード」ボタンを表示するようにしています。
そして、このボタンを押すとjsonファイルをダウンロード可能です。
![](https://self-development.info/wp-content/uploads/2022/12/2b90914bd1d747e3354d3139b5152294.png)
jsonファイルは、次のような内容になります。
![](https://self-development.info/wp-content/uploads/2022/12/fa831afda758fc2416413416e9d31ef3.png)
テキストを配列に格納して、それをjson文字列にしているだけです。
jsonで保存していれば、あとはPythonで何とでも利用できます。
DBに格納するのもありですね。
さて、仕様・設計に関してはここまで説明してきました。
コードに関してですが、今回は公開しません。
当ブログでは、基本的にはコードを公開しています。
しかし、今回に関しては非公開としておきます。
(ChatGPTに対策されるリスクを極限にまで減らしたいので)
と言っても、pywebviewを利用することで何とかなることはすでに検証済みです。
よって、試行錯誤を行う必要はありません。
あとは、JavaScriptをガリガリと書くだけです。
ただ、Vanilla JSを使うのに抵抗があるとキツイかもしれません。
最悪、jsでフレームワークを事前に読み込むことも可能です。
そうすれば、慣れた書き方でjsをコーディングできます。
なお、jsによるファイルダウンロードは次の記事が参考になります。
コード(関数)をそのままコピペでOKです。
今後は、非同期でチャットログを自動保存することも考えています。
チャットの追加は、MutationObserverあたりを使えば認知できそうです。