ChatGPTでは、データのアップロードなどに対応したコード生成機能「Code Interpreter(Code Execution)」をテストしているようです。そしていよいよ一般公開(有料ユーザ向け)されることになりました。
Code Interpreterでできることとは?
Code Interpreterは、ChatGPTのプラグインとして提供されるもので、ChatGPTのコード作成をさらにワンランクアップさせた機能です。
「画像のリサイズ」の場合について考えてみましょう。
従来のChatGPTは、やり方を教えてくれるところ、プログラムのコードの書き方までは教えてくれました。ただし実行するのはユーザの方でした。
Code Interpreterになると、実際に画像をアップしてリサイズさせることができます。
ChatGPTは作り方を教えてくれるだけでしたが、Code Interpreterはプログラムを実行までするもの...と考えると、わかりやすいでしょう。
2023年7月、いよいよ有料ユーザ向けにオープンになります。
利用設定
設定を開き、「Beta features>Code interepreter」のトグルがあればオンにします。
ChatGPT4のプルダウンから選択しておきます。
メリットは?
Code Interpreterで最もパワフルな点は、データのアップロード、ダウンロードに対応していることです。
従来のChatGPTでは入力文字数に制限がありましたが、これならデータ処理がもっと楽になります。
ダウンロードでは、PDFを作成してダウンロード用リンクを表示。リンク先から実際にダウンロードできるようになります。
自然言語によるプログラム処理がここだけで完結すると、いちいちグーグルで「xxの作り方」....とか探さなくてもよくなるかもしれません。
また、そもそもプログラミング言語を覚えなくても自分の求める機能が実現できるわけですから、仕様書を作ってプログラマへ発注する手間が大幅に軽減される世界がやってくるかもしれません。
デメリットは?
データのアップロードで、個人名や住所の入ったファイルをついついアップなどの流出の懸念もあります。
おそらく会社によってはChatGPTでの利用は禁止するところもでてくるでしょう。(ただし、社内用はAzureベースの法人向けAPIの方の利用で対処するといった使い方になるかもしれません。)
(注:使った感じでは、アップしたファイルなどは一定時間ですぐ削除されているようです。)
精度は現時点ではまだわかりませんが、Code Interpreterがあまりに出来がいいと多くのプログラマは路頭に迷う世界がやってくるかもしれません。
Code Interpreterのいるほうには足を向けて寝れなくなり、転職先は慢性人手不足の介護職とか葬儀屋にむかうのでしょう(震)。
Code Interpreterの利用例
プログラムを作成して問題を解く
ではOpenAIで紹介されているサンプルを使って動作を確認してみましょう。
質問は
「レンガ1個の重さは、レンガ1個の30%にGPU5個を加えた重さだ。1トンには100個のレンガと200個のGPUがあるが、レンガ1個の重さは?」というもの。
実行例は以下。
ChatGPTでは答えを「7.8125 kg.」と算出していますが、特筆すべきはそのプロセスです。
「Show Work」を実行すると、内部的にPythonというプログラミング言語のソースを実行。プログラミングの実行結果をもとに返答を作っていることがわかります。
プログラムコードはボタンで隠れています。それを開けばコードの検証をユーザは行えるのです。
このようにCode Interpreterでは、ユーザはコードの生成を意識せずにいろんな処理をさせることができるようになりました。
https://openai.com/blog/chatgpt-plugins#code-interpreter
グラフ作成
Code Interpreterでは、画像生成をさせるのはまだのようですが、グラフの画像は生成できるようになりました。
「plot function 1/sin(x)」と質問してみましょう。plotとは作図のことです。
回答は以下。グラフの画像が作られていることに注目ください。
続けての質問「zoom in to range x values between 0 and 1」。
これは0から1の間の範囲だけ拡大して表示させるものです。
ファイル操作
CSVファイルなどをアップロードさせることができます。
プラグインを使えばできるようになってはいますが、直接操作できるこちらの利便性の方がいいように思います。
やり方は簡単で、ファイルを質問欄にドラッグアンドドロップするだけです。
初回は「ファイルを読み込んで」と書いて実行させるだけでも大丈夫です。
あとはデータからグラフを書かせたりすることができます。
株価などの時系列のデータファイルであれば「線グラフを書いて」などとChatGPTさんにお願いしてみましょう。
以下はアメリカの雇用統計のデータをアップしてグラフにしてもらったものです。
その他利用例
内部的にPythonで処理が行われるため、PythonでできるかなりのことがCode Interpreterではできてしまいます。
実はPandas,OpenCV,BeautifulSoupなども使えるようです。
対応ライブラリについては以下参照ください。
すでに利用したの利用例は以下のようなものがあります。
CSVをアップして、それをCode Interpreterさんにグラフ化させます。
CSVファイルとは、数値をシンプルなテキストで羅列したフォーマットで、グラフ用データの受け渡しなどでよく使われます。
The code interpreter feature on ChatGPT is the most mind blowing thing I've seen yet.
— John Backus (@backus) 2023年4月29日
All I did was upload a CSV of SF crime data and ask it to visualize trends(!!) pic.twitter.com/pkFdPqgAzb
ビジネスデータのスプレッドシートをアップし、Code Interpreterさんにビジネス戦略の作成を依頼してしまいます。
ChatGPT’s ‘code interpreter’ is kinda wild. Watch it segment music markets based on a spreadsheet and come up with business strategies for each segment! pic.twitter.com/fpGzfvz2SL
— David Boyle (@beglen) 2023年4月30日
GIFファイルをアップし、それをCode Interpreterさんにズーム付きのMP4に変換してもらいます。
Basic video editing in ChatGPT, converting uploaded GIF to longer MP4 with slow zoom: pic.twitter.com/fmCPUBkedD
— Riley Goodside (@goodside) 2023年4月30日
画像をアップすると、そのカレーパレットを生成してくださいます。
ChatGPT Code Interpreter is incredible! 🌟
— Pietro Schirano (@skirano) 2023年5月1日
Its file uploading & downloading capabilities make it a super flexible tool for various tasks. 💼
Here it extracts colors from an image to create a palette.png 🎨
And automatically compresses large images when running out of memory. pic.twitter.com/i25yPujtBV
位置データを渡すと地図上でビジュアル化してくださいます。
This was kind of delightful: I uploaded a CSV file of every lighthouse location in the US.
— Ethan Mollick (@emollick) 2023年5月2日
"ChatGPT Code Interpreter: Create a gif of a map of the lighthouse locations, where the map is very dark but each lighthouse twinkles." A couple seconds later... pic.twitter.com/f14JLWQCyB
エラーの場合は?
Too many request?
現在は公開したてか、エラーが起きやすいです。
ただ「Regenerate(再度生成)」で生成される場合もあります。
The file you've uploaded can't be read as a CSV file
ファイルフォーマットが特定できないエラー。
CSVファイルの場合、自機で読み書きできるか、一度確認してみるとよいでしょう。
ひょっとすると文字コードが影響する場合があるかもしれません。
The file you've uploaded can't be read as a CSV file, which suggests it might be in a different format. Let's try to determine the file type. This will help us figure out how to correctly read the content.
Timeout?
アップしたファイルや生成されたリンクは一定時間でタイムアウトとなります。
チャット履歴からはチャットを継続できても、以前作ったファイルなどは正常に動作しない場合があります。