ChatGPT頼みのプログラムど素人が一日半でPython経由でOpenAI API使えるようになった

承前。

goldhead.hatenablog.com

おれは761,000文字ある英文の小説を、AIに翻訳させたいと思った。思って、やり方をChatGPT3.5に聞いて、Pythonがいいという。はて、Python、なんだかわからんが、そのインストールから始めたのが昨日の朝。

 

とにかく、テキストファイルにある英文をChatGPTにハードボイルド風の日本語に翻訳させたい。ただ、一度に送信できるテキストの量(トークン)は限られているので、自動的に限度内の送信を繰り返して、その返信を受取る。受取ったテキストを結合させて一つの日本語テキストファイルにする。それでおれはクヌート・ハムスンの『土の恵み』を読める。これである。

Growth of the Soil by Knut Hamsun | Project Gutenberg

 

で、上の記事にあるように、行き詰まったのが「AttributeError: module 'openai' has no attribute 'ChatCompletion'」というエラー。これを調べたら下のページが出てきた。

community.openai.com

おれはその日の朝にPythonをインストールしたばかりで、英語も読めないのだが(読めるのであれば英語の小説を直接読んでる)、まあ翻訳エンジン使いつつ読んだら、なんかのバージョンのガチャみたいに見えた。なんか解決法がズバッと書いてあるわけでもないようだ。むろん、違うかもしれない。それでフォーラムの書き込みを参考にいくらかガチャを試したが、一向にエラーは収まらない。ちなみに、上のフォーラムに掲載されていたテストコードで試していたので、こちらが作ったChatGPTのコードの問題ではない。なんかバージョンを最新にしてみたり、戻してみたり、わけがわからない。

 

まあ、お手上げか。というか、そもそもChatGPTにそそのかされたが、Pythonというものでこれをやるのが正解なのかすらわからん。AIに化かされて変な山道を歩いているかもしれない。もう終わりだ、これは。

 

……と、思ったが、なんとなく諦めきれずに、今日も上司が横にいるのにPythonをいじった。Pythonとopenaiのライブラリのバージョンガチャだ。……したら、初めて「Hello! How can I assist you today?」ってテストコードの結果が返ってきた。交信できた! やばい! 理由はわかんない!

 

じゃあ、今度は自前のコードだ、と突っ込んでみると、

openai.error.InvalidRequestError: This model's maximum context length is 4097 tokens. However, you requested 4638 tokens (542 in the messages, 4096 in the completion). Please reduce the length of the messages or completion.

って、出てくる。突っ込むテキストファイルの英文削っていく。トークンの数は下のページで数えられる。

https://platform.openai.com/tokenizer

一段落で127トークンとかだぜ。

さらに削って二行ぐらいにしてもこのエラーが出る。ChatGPTに聞いても、なんかはっきりしないので、とりあえず「テキストの分割部分を削除して」と頼んで、新しいコードを書いてもらう。そしたら直接、Macのターミナルに、

 

「長く長い道、荒野を越え、森林へと通じる道。最初にそれを踏みしめたのは誰だ?人間、男だ。この地に初めて立ち入った男さ。」

 

と、日本語が出てきた。おお、これは、Python経由(という言い方が正しいかわからない)で、ChatGPTに仕事をさせたということだ。悪くない。

 

で、これをテキストファイルに書き出すようにさせたら、これも成功。これで目的の芯になる部分は成功したことになる。英文テキストファイル→翻訳後日本語テキストファイル。いいぞ。

 

というか、すごいな。Pythonインストールから一日半だぞ。いや、おれもすごいかもしれないが(そうだろうか?)、やはりChatGPTがすごい。もちろん、Pythonの環境設定など検索から解説ページを見つけたこともあるが、検索ではおれの望む機能そのままを見つけられないに違いない。すごく簡単な動作ではあるが、動作できるプログラム(と、呼んでいいのだろうか)を作れた。おれはほんとうにプログラムは知らないんだ。いやはや。

 

 

というわけで、今日はここまで。

 

あ、ちなみにガチャの結果は以下の通り。

Python 3.9.6

OpenAIライブラリVersion: 0.28.1

あ、あと、以下のエラーも出た。動作はするけど、なんかいちいち出る。

urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020

ChatGPTに聞いてみてもよくわからない。検索して、こちらのページで解決した。

 

【Python】requestsライブラリが入っているのにimportエラーが出たときの対処法 | えだはの部屋

 

ChatGPT頼みで、とりあえず手を動かすことと、とりあえず検索の精神。これでなんとか目標を達成したいと思う。いや、できるかどうかわからないが、とりあえずPythonを使ってOpenAI APIでなにかする、というのは間違っていなかったようだ。それがわかっただけでもよかったし、自分が作った(わけでもないが)プログラム(と呼べるのかな)が動いたのは喜びであった。

 

今日のところは、以上。

 

追記:まあ、これなんだけど。

 

GPT-4 Turboでいちばん嬉しいのは、300ページ相当の長文をまるっと読み込めること

76万文字の英語の小説は一般的に150〜250ページらしいので(Bard調べ)、まあ今おれがPythonでやろうとしていることは、金払ってGPT-4 Turbo使えば一発、もしくは二発で終わることではある。

2023/11/09 17:25