ChatGPT公式プラグイン「Code interpreter」を活用するためのTips

ChatGPT公式プラグイン「Code interpreter」がついに日本でも使えるようになったので、自ら検証したTipsをまとめます。

他にも追加できそうなTipsがあればコメントもらえると嬉しいです

# Code interpreterとは

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/f8a90d7c-63b8-ecba-fa35-ff6ecf209bf1.png)


「Code interpreter（コードインタープリター）」とは、ChatGPTが提供する公式プラグインの1つで、このプラグインを利用することで、ChatGPT上でPythonを使ったコードの実行や、ファイルのアップロード・ダウンロードができるようになります。

ファイルのアップロード機能を使うことで、チャット上にデータをアップロードし、そのデータに対してコードを実行することができるようになります。

また、作業の結果をcsvなどでダウンロードすることが可能です。

つまり、Code interpreterのプラグインを使うことで、ChatGPT上でPythonコードを実行したり、ファイルのやり取りを行うことができるようになり、今まで以上にChatGPTが便利になるということです。

https://twitter.com/OpenAI/status/1677015057316872192?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1677015057316872192%7Ctwgr%5E8b2afe650265c63e9fdf09e661f961c709af8dea%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fgenerativeinfo365.com%2F%3Fp%3D192

これまで一部のユーザーにのみα版として提供されていた「Code interpreter」はついに、ChatGPT Plusに加入している全ユーザーに順次解放されることが発表されました。

2023年7月8日現在、日本でもChatGPT Plusに加入しているユーザーは「Code interpreter」が順次使えるようになっています。（筆者は2023年7月8日に使えるようになりました。）


また、利用を開始するためには設定画面から、機能をONにする必要があります。

この設定が表示されない場合は、「Code interpreter」の利用はまだ利用できない状態なので、利用できるまで待つ必要があります。

# ファイルのアップロード上限と種類

![スクリーンショット 2023-07-08 13.34.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/08568bcc-be75-4d1b-a87c-1c809640d9ad.png)

ファイルのアップロード上限は512MBまでです。

アップロードできるファイルの種類は以下の通りです。

.pyや.ipynbもアップロードできるので、既存のコードに対して何かしらの処理を実行したりリファクタリングしたりしてもらえる可能性があります

```
- テキストファイル（.txt）
- Python スクリプト（.py）
- Jupyter ノートブック（.ipynb）
- CSV ファイル（.csv）
- Excel ファイル（.xls, .xlsx）
- 画像ファイル（.jpeg, .jpg, .png, .gif, .bmp など）
- PDF ファイル（.pdf）
- ZIP ファイル（.zip）
- 動画ファイル（.mp4, .avi, .movなど）
- GIFファイル（.gif）
```

# 実行環境について
![スクリーンショット 2023-07-09 22.38.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/42717877-3337-630e-f3da-90db2c19ae1b.png)

Pythonの実行にはOpenAIのサンドボックス環境が使用されています。具体的なバージョンは2023年7月現在でPythonのバージョン:3.8.10です。

# インターネット接続について
![スクリーンショット 2023-07-09 22.50.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/891b6c88-059c-0ef3-bce1-5e8659a8e675.png)

インターネットには接続されていないため、外部APIにリクエストを送信したり、Webスクレイピングを行ったりすることはできません


# 実行時間とタイムアウト

![スクリーンショット 2023-07-09 22.53.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/37c3dfbd-a099-f503-4570-cd8ac044b19b.png)

実行時間には制限があり、特定のコードセルの実行が120秒以上かかると、タイムアウトとなります

# メモリやCPU制限

![スクリーンショット 2023-07-09 22.49.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/350c5d04-04ca-dead-dc66-c98a3e55893e.png)

メモリは貧弱なので、すぐメモリ不足になります。

# ファイルやコードの自動削除

![スクリーンショット 2023-07-09 22.38.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/e0cd013a-e910-7df6-8cb7-dfa1e5189f46.png)

一定時間が経つと、チャット上に上記のようなメッセージが表示されてファイルやこれまで生成してもらったコードが削除されていることをお知らせしてくれます。

結構すぐ削除されるので、一回GPT-4の利用制限に入ったら、再開した時にはファイルやコードはほぼ確実に消えています。


# zipファイルで一括アップロード

![スクリーンショット 2023-07-09 22.56.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/7c3633e6-537a-4ad4-57ce-7a7178f08f63.png)

「Code interpreter」には一回のアップロードで、1つのファイルしかアップロードできませんが、複数のファイルをzipでまとめることで一回で複数のファイルをアップロードできるようになります。

# ライブラリのインポート
「Code interpreter」はインターネット接続が無いため、すでにインストールされているライブラリ以外のをpipなどを利用して行うことができません。

ですが、必要なライブラリをzip形式にしてアップロードし、解凍後にインポートを行うように指示することで必要なライブラリをインストールすることできます。

https://twitter.com/karaage0703/status/1679878343037194240

# セーブ＆ロード

![スクリーンショット 2023-07-10 7.25.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/4f06122d-cf60-998a-ceaf-e5c250a72803.png)

Code interpreterの仕様上、一定時間経過するとファイルやコードが全て削除されてしまうので、時間を空けると作業が最初からやり直しになってしまいます。

![スクリーンショット 2023-07-10 7.31.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/1ed959e3-58d3-2f7a-4228-6aacb19e7067.png)

この対策としては、これまでのやり取りやコード、データを随時ダウンロードしておくことです、

こうすることで、ChatGPT上からデータが削除されてしまったら、再度データやコード、これまでのやりとりのメモをアップロードすることで途中からやり直すことができます。

# 売上分析

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/a504287f-c468-795b-f74d-225014ef85d2.png)


売上データをアップロードして「売上を上げるためにどうしたら良いか分析して教えて」と言うだけで、データに基づいた具体的な戦略を立案してくれます。

実際に試してみたところ、一定の制約や課題はまだありますが、多くのビジネスマンが欲しかった「データを入れるだけで分析して示唆を出してくれるAI」にかなり近い動きをしてくれました。

https://generativeinfo365.com/?p=1031


# コードの実行

![スクリーンショット 2023-07-09 23.01.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/fb0f282a-079f-8e64-a147-142236bb4c27.png)

.py形式でコードをアップロードすることができますが、、そのまま実行をお願いすると断られることが多いです。

![スクリーンショット 2023-07-09 23.13.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/def70602-4a30-481e-8da3-1d0af660a1f7.png)

その対策として、テキストとして取得して同じコードを生成させてから実行するようにお願いすると実行してくれる確率が上がります

# コードの出力

![スクリーンショット 2023-07-10 7.24.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/af733429-5d3f-079e-a067-665658c3b945.png)

生成してもらったコードを出力することもできるので、Code interpreterで作業してもらった後に、ローカルで同じことを再現したり続きを行うことができます。

# ドキュメントの生成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/e29a6ce1-c9da-dbb8-8a6a-6bb31132c19c.png)

「Code interpreter」を利用すれば、ソースコードをアップロードして「ドキュメントにまとめておいて」と指示するだけでマークダウン形式のドキュメントを自動で作成して出力してくれます。

今回作成してもらったドキュメントは以下の通りです。コードの説明や各関数の説明、使用方法まで分かりやすく丁寧に書いてくれていますね！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/ae171c5f-955b-8dd7-1676-f4e15c1b48ad.png)


もちろん、出力形式を指定すれば、ドキュメント作成のルールがある場合にはそのルールを指定すればその形式に沿ったドキュメントを作成してくれます。

# スライド作成

![スクリーンショット 2023-07-10 7.47.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/d16a4d80-8492-e005-6656-feacc7cbc7ff.png)

スライド作成もお願いできます。

![スクリーンショット 2023-07-10 7.47.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/654e3b1f-472c-96c5-9f3d-0e985fdad68b.png)

テキストを入れてもらうだけでなく、コード上で出力してもらった画像も貼り付けてもらえるので、分析レポートとかもパワポでまとめてもらえます。

参考

https://acro-engineer.hatenablog.com/entry/2023/07/14/120000

# QRコードの生成

![スクリーンショット 2023-07-10 7.50.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/4edaf130-3ba2-fc7d-8c47-b8a99f865fd1.png)

QRコードもサクッと作れます。

# 音声データを使える

![スクリーンショット 2023-07-10 8.01.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/07e8fd8b-2e05-1eb9-4474-8a2e37d36c35.png)

音声データの解析もできます。

# 動画からGIFの作成

![スクリーンショット 2023-07-10 8.05.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/ef405c45-3f7f-0b73-abdc-943cf5e450c8.png)

動画からGIFの作成もサクッとやってくれます。

# 画像データから色の抽出

![スクリーンショット 2023-07-10 8.07.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/9b2c6358-2cfe-c5de-0b8f-4e15a4b0cbd0.png)

画像データから色の抽出も行えるので、Googleのロゴから青色だけ抽出してみました

# データ分析＆予測モデルの作成

![スクリーンショット 2023-07-08 14.59.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/2842f400-8ef5-128b-c5b2-fb3767b6e995.png)

予測モデルの作成やデータ分析も可能です。

データ分析コンペで平均以上の成果も出せるみたいです。

https://generativeinfo365.com/?p=968

# コードの生成＆テスト

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/71546a2a-196d-21e0-247a-d505ae76adf7.png)

「Code Interpreter」を利用すると、簡単な指示だけで意図通りのコードを簡単に生成できます。

これまでも指示をするだけでコードを生成することができましたが、生成したコードを手元で実行するとエラーが出ることもしばしばありました。

ですが、「Code Interpreter」を利用することで、事前にChatGPT自身が生成したコードが正確に動作するかを確認できます。

さらに、生成したコード.py形式のファイルとして直接ダウンロードすこともできます。

「Code Interpreter」を使ってプログラミングの生産性を上げる方法は以下の記事で紹介されています

https://generativeinfo365.com/?p=947

# 日本語フォントの使い方

![スクリーンショット 2023-07-15 9.45.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3356814/7f78ac21-4873-b337-5e0d-09883588afc6.png)

「Code Interpreter」を使用してグラフを作成する際、タイトル、凡例、軸の名前などに日本語を含めると文字化けを起こしてしまいます。

文字化けを起こしたままだと、このグラフをそのまま使用することができませんして、文字化けしないようにデータに含まれている日本語を全て英語に変換するのはなかなか難しいですよね

しかし、実はこの問題を回避する方法がいくつか存在します。

### ①日本語フォントを直接アップロード

一番単純な方法は日本語フォントを直接アップロードして、グラフを書くときにこのフォントを使うように指定する方法です。

ネットにあるフリーの日本語フォントをアップロードするだけなので、一番お手軽に行えます。

https://akiyoko.hatenablog.jp/entry/2017/04/11/080446

### ②japanize-matplotlibのインポート

2つ目の方法はjapanize-matplotlibを使ってグラフを書いてもらうことです。

ただし、japanize-matplotlibは「Code Interpreter」の実行環境にはインストールされていないので、上で紹介した方法で、直接ライブラリをアップロードする必要があります。

### ③しつこくお願いする

まさかの方法ですが、しつこくお願いすれば日本語フォントを使ってくれるようです

使えるなら最初から使ってくれというのはさておき、いちいちアップロードしなくて良いのは楽で良いですね

ただ、GPT-4の制限がある中で何回もお願いするのは勿体無い気もするので、確実でおすすめな方法は①か②ですね

https://twitter.com/keitowebai/status/1679047544809345024


# レーシングバーチャートの作成
Youtubeとかでよく見るような、「レーシングバーチャート」も作成可能です

時系列のデータを渡して、「見やすいレーシングバーチャートを作成して」という指示だけで一瞬で作成してくれます

https://twitter.com/GPT_news365/status/1679319125020270592

# インタラクティブなダッシュボードの作成

インタラクティブなグラフを作成するライブラリ「Plotly」を利用してダッシュボードを作成することを依頼すれば、インタラクティブなダッシュボードの作成が可能です

https://twitter.com/kajikent/status/1678997713810239488

# Webアプリの作成

https://note.com/bbz662bbz/n/n7c9b620cd8f0

Code interpreterを使えば1行もコードを書かずにWebアプリを作ることもできます。

最後に宣伝です！

データサイエンティストのために、CahtGPTをはじめとした生成AIを使ってデータ分析を効率化する情報をまとめたサイトを運営しています！

生成AI×データ分析に興味がある人はぜひこちらも覗いてもらえると嬉しいです！！

https://generativeinfo365.com/