![見出し画像](https://assets.st-note.com/production/uploads/images/111024213/rectangle_large_type_2_0827a754d9b6512fe9b3d4b6172fe81c.png?width=1200)
Code Interpreterを使いこなす!実践15パターン
ChatGPTの「Code Interpreter」プラグイン、大人気ですね。私も使い始めてから、その便利さと面白さを実感しております。
Code Interpreterで何ができるかについては、SNS等でたくさん情報が上がっていますが、実際どうやってやるの?簡単にできるの?という疑問をお持ちの方もいるかもしれません。私もそうでした。ということで、実際にCode Interpreterでできそうなことをまとめて片っ端から試してみました。今回はその実験結果のレポートです。使用したプロンプトも添えます。
本当は30パターンくらいあったのですが、ちょっと多すぎるので半分の15パターンに絞りました。省いた15パターンを含め、これから他にも色々な使い方が出てくると思うので、第2弾でご紹介できたらいいなあと。
Code Interpreterの使い方
1. ChatGPT Plusに加入する
Code Interpreterは現在、ChatGPT Plusユーザー限定の機能なので、Code Interpreterを使用するにはChatGPT Plusに加入する必要があります。ChatGPT Plusは月20ドルですが、私個人的にはその金額以上の価値を感じています。いつでも解約できるので、是非一度試してみてください。
2. Code Interpreterを有効にする
ChatGPTの設定画面(メールアドレスをクリック -> Settings)で、Code Interpreterを有効にします。これで準備完了。
![Settingsで、Code Interpreterを有効にする。](https://assets.st-note.com/img/1689581230250-1awR6haiYw.png?width=1200)
3. Code Interpreterを選択する
ChatGPTのチャット画面で、「GPT-4」にカーソルを合わせると、以下のようにドロップダウンリストが表示されるので、「Code Interpreter」を選択します。
![「GPT-4」にカーソルを合わせて、「Code Interpreter」を選択する。](https://assets.st-note.com/img/1689581303003-0fnY1zyNDf.png)
4. アップロードするファイルを選択する(オプション)
Code Interpreterを選択すると、以下のように「+」ボタンが表示されます。そこから必要に応じてデータファイルをアップロードできます。
![「+」ボタンから必要に応じてデータファイルをアップロードする。](https://assets.st-note.com/img/1689581356517-dVt8JGllH9.png?width=1200)
使い方の基本は以上です。ではここから実践15パターンをご紹介します。
1. データ分析&グラフの作成
「+」ポケモンのデータセット(CSVファイル)をアップロード。(Kaggleにあるデータセットを使用)
プロンプト: このCSVファイルに含まれるデータを分析して、HPが高いモンスターのトップ10の棒グラフを作成してください。
![CSVファイルを分析して作成された、HPが高いモンスターのトップ10の棒グラフ](https://assets.st-note.com/img/1689581407675-zMUjkn3hw0.png?width=1200)
このようにファイルの内容を分析して、指示通りのグラフを作成してくれました。データセットでは、ポケモンの名前やタイプといった各項目は英語で書かれていましたが、日本語に翻訳して出力してくれてます。
グラフの上にある「Show work」のタブをクリックすると、グラフの生成に使用されたPythonコードを確認することができます。
![「Show work」タブで、グラフの生成に使用されたPythonコードを確認可能](https://assets.st-note.com/img/1689581710503-MfsTetjahG.png?width=1200)
因みにですが、ポケモンには日本語名と英語名で呼び名が違うキャラクターが結構います。上記のグラフもそうですが、パッと見どのポケモンかわからないので、変換をお願いしてみました。
![グラフのポケモンの名前を日本語に変換できますか?とお願いしてみた。](https://assets.st-note.com/img/1689581774032-KsPkEYeaLk.png?width=1200)
ここではダメでしたが、追加のデータセットを渡せば可能であることがわかりました。そしていずれインターネット接続が有効になれば、それすら不要になるということですね。すげ。
2. インタラクティブなグラフの作成
「+」先ほどと同じポケモンのデータセット(CSVファイル)をアップロード。
プロンプト: このCSVファイルに含まれるデータを分析して、HPが高いモンスターのトップ10の円グラフを作成してください。Plotlyを使用してインタラクティブでダウンロード可能なグラフを作成してください。
Code Interpreterを使用したインタラクティブなグラフの作成 pic.twitter.com/vtLnfHWK8k
— komz (@komzweb) July 17, 2023
このように、クリックしたり、ドラッグしたり、グラフのデータを操作できるインタラクティブなグラフを簡単に作成できました。棒グラフだけでなく、もちろん円グラフだって作成できます。インタラクティブグラフはHTMLファイルで生成されます。
3. グラフで日本語を表示
グラフでは日本語が正しく表示されないので、フォントファイルをCSVファイルと一緒に渡して試してみます。
「+」成績表のサンプルCSV + Noto Sans JPフォントをアップロード。
プロンプト: このzipファイル内のCSVファイルを分析して、科目ごとの平均スコアの棒グラフを色分けして作成してください。日本語に文字化けが見られる場合は、同梱されているフォントを使用してください。
![CSVファイルを分析して作成された、科目ごとの平均スコアの色分けされた棒グラフ。Noto Sans JPフォントを使用。](https://assets.st-note.com/img/1689582807826-aHkfx4ZeEA.png?width=1200)
指示通りに作成されました。ただ分析に誤りがあるので、全てを鵜呑みにしない方がいいですね。
CSVファイルが文字化けしている場合でも、自動でエンコーディングを行ってくれるので非常に便利です。
4. ソースコードのファイル分析
「+」Simple Tweet Editor の page.tsx ファイルをアップロード。
プロンプト: このファイルで何が行われているかを分析し、各ポイントを説明してください。
![ソースコードのファイル分析](https://assets.st-note.com/img/1689582941472-tVmSyZsFDw.png?width=1200)
説明はほぼ完璧です。このコードは何を意味するのか、この関数では何が行われているのかを言語化してくれるのは嬉しいですね。これなら技術ブログの記事も爆速で書けそうです。いや、もはや技術ブログを書く必要もなくなるか…。
5. 複数のソースコードのファイル分析
「+」Simple Tweet Editor のファイルを丸ごとアップロード。
プロンプト: このzipファイルに含まれるファイルを分析して、各ファイルの用途を説明してください。
![複数のソースコードのファイル分析](https://assets.st-note.com/img/1689583008495-vKiFy9zB6I.png?width=1200)
プログラミング初心者の方にとっては、一つ一つ調べずともこのように解説してもらえると助かりますね。最高のプログラミング学習メンターです。
「3. tweet-editor-example.png: プロジェクトに関する画像ファイルです。おそらくREADMEなどで使用されていると思われます。」<- この推測も当たってます。
6. プロンプトのみでグラフを作成
プロンプト: 基本的な指数関数のグラフを作成してください。
![プロンプトのみで作成した基本的な指数関数のグラフ](https://assets.st-note.com/img/1689583053472-i9aWNIeArG.png?width=1200)
データセットをアップロードしなくても、プロンプトのみでグラフを作成できるので、使い方の幅が広がります。
7. 画像(JPG)ファイルの作成
簡単なイラストを作成できるようですが、イラストなら画像生成AIを使用した方が間違いなく良いので、文字の画像ファイルを英語と日本語それぞれ作成してみます。
英語テキスト
「+」Robotoフォントをアップロード。
プロンプト:
```記号で囲まれたスティーブ・ジョブズの名言を、ダウンロード可能な画像ファイルで出力してください。
``` If today were the last day of my life, would I want to do what I am about to do today? ```
- Image size: 800x400
- Background color: Black
- Text color: White
- Font style: Roboto
- Font size: 24px
- Format: JPG
![If today were the last day of my life, would I want to do what I am about to do today?](https://assets.st-note.com/img/1689583188815-zaoZt3eq72.jpg?width=1200)
日本語テキスト
「+」Noto Sans JPフォントをアップロード。
プロンプト:
```記号で囲まれたスティーブ・ジョブズの名言を、ダウンロード可能な画像ファイルで出力してください。
``` もし今日が人生最後の日だとしたら、 今日やろうとしていることは本当に私のやりたいことだろうか? ```
- Image size: 800x400
- Background color: Black
- Text color: White
- Font style: Noto Sans JP
- Font size: 24px
- Format: JPG
![もし今日が人生最後の日だとしたら、 今日やろうとしていることは本当に私のやりたいことだろうか?](https://assets.st-note.com/img/1689583268264-31pt4d2cKo.jpg?width=1200)
テキストは自動で折り返されないので、プロンプトで改行して提示すると良いです。「読点(、)の後に改行して」のように指示することも可能ですが、行が重なってしまうので、追加で行間の幅を指示する必要があります。
詳細の指示を英語で書いている理由は、日本語だと指定したフォントサイズが適用されなかったりなど、うまくいかないことが多かったためです。GPT-4で日本語の精度が上がったとはいえ、やはり英語を使った方が安定します。
8. 画像ファイルの修正
先ほど作成したジョブズの名言画像(英語の方)を修正してみます。(7の続きを実行)
プロンプト:
生成した画像を以下のように修正してください:
- 行間を少し空ける。
- 文字色をライトブルーに変更する。
- テキストを中央揃えにする。
!["If today were the last day of my life, would I want to do what I am about to do today?" - Modified](https://assets.st-note.com/img/1689583317247-6wXEeXeCrK.jpg?width=1200)
作成した画像を続けて編集する場合は、このように簡単にできます。しかし画像ファイルをアップロードして編集する場合は、画像の詳細情報を提供する必要があるので、少し面倒な作業になります。その場合は、最初から作り直して編集した方が早そうです。
9. 画像の文字の読み取り
今度は画像中のテキストを文字データに変換する実験です。またまたジョブズの名言画像を使って試してみます。
「+」画像ファイルをアップロード。
プロンプト: この画像に書かれた文字を書き起こしてください。
英語テキスト
![画像の文字の読み取り - "If today were the last day of my life, would I want to do what I am about to do today?"](https://assets.st-note.com/img/1689583408550-032aM3CjYl.png?width=1200)
日本語テキスト
![画像の文字の読み取り - 日本語のOCRには対応していない](https://assets.st-note.com/img/1689583464195-PVr4swNufo.png?width=1200)
上記の通り、日本語のOCRにはまだ対応していないようです。英語テキストの画像ではしっかり機能しています。
最近のGoogle Bardのアップデートで日本語のOCRが可能になったようなので、しばらくはそちらで代用できそうです。
10. 簡単なGIF画像の作成
私のプロフィール画像を使用して、回転するだけの簡単なGIF画像を作成してみます。
「+」プロフィール画像をアップロード。
プロンプト: この画像ファイルを使用して、回転するGIF画像を作成してください。
![回転するGIF画像](https://assets.st-note.com/production/uploads/images/111021325/picture_pc_863bee1952a521370535da6a819f4a6b.gif)
フレーム数やフレームの間隔を指定することもできますが、そうでない場合は提案してくれます。非常に有能です。
「時計回り」「右回り」と指示してもなぜか左回転の画像になってしまうのですが、「生成されたGIF画像を逆回転にして」と追加の指示を出したら成功しました。検証していませんが、これも言語の問題かもしれません。
11. ちょっと複雑なGIF画像の作成
同じプロフィール画像を使用して、パズルのようなGIF画像を作成してみます。
「+」プロフィール画像をアップロード。
プロンプト:
まずこの画像を9分割して、各ピースに以下のように番号を与えてください:
- 上段左のピース:1
- 上段中央のピース:2
- 上段右のピース:3
- 中段左のピース:4
- 中段中央のピース:5
- 中段右のピース:6
- 下段左のピース:7
- 下段中央のピース:8
- 下段右のピース:9
次に、以下のようなGIF画像を作成してください:
1. 最初は白背景の状態から開始
2. そこに分割された画像のピースが1番から順に、元の場所に配置される
3. 最終的に分割される前の画像が復元される
![パズルのようなGIF画像](https://assets.st-note.com/production/uploads/images/111021458/picture_pc_a8ba1e8088dddf21ab22e5d405d061a3.gif)
細かく指示を与えれば、このように割と複雑なGIF画像も作れてしまいます。1番のピースが置かれた状態から始まってしまっていますが、追加の指示で簡単に修正できそうです。
12. パノラマ画像を動画に変換
「+」パノラマ画像をアップロード。
プロンプト:
これはパノラマ画像です。アスペクト比16:9で10秒程度の動画に変換してください。
次のように、動画をスムーズにパンします:
1. 画像の左端から開始して右に移動
2. 右端にぶつかったら、折り返して右から左に移動
3. 左端にぶつかったら終了
可能な限り容量が小さくなるようにしてください。
Code Interpreterを使用してパノラマ画像を動画に変換 pic.twitter.com/UNcFokzCNB
— komz (@komzweb) July 17, 2023
使用するライブラリやフレームレートなどを指定することもできますが、特になければおまかせで作ってくれます。
もう少し複雑な動きにしたい場合は、英語プロンプトの方がいいかもしれません。やっぱり日本語だとうまくいかないことが多いです。
13. 動画をGIFファイルに変換
「+」動画ファイルをアップロード。(Pixabayの動画を使用)
プロンプト: この動画ファイルをGIFファイルに変換してください。可能な限り容量を小さくしてください。
![動画ファイルから変換されたGIFファイル](https://assets.st-note.com/production/uploads/images/111021706/picture_pc_281a42877663f3432cb1a4f83fda76ac.gif?width=1200)
「可能な限り容量を小さく」と雑に指示したところ、動画から5枚のフレームが抽出され、GIFファイルが作成されました。もちろんフレーム数を指定することも可能です。フレーム数を増やせばもっとスムーズなGIFアニメーションになります。
14. GIFファイルを動画に変換
「+」GIFファイルをアップロード。
プロンプト例: このGIFファイルを動画ファイル(MP4)に変換してください。フレームレートは、24fpsを使用してください。
GIF -> 動画も可能です。ページ容量削減のため、ここはファイルの掲載を省きます。
15. URLからQRコードを作成
私のnoteのURLを使ってQRコードを作成してみます。
プロンプト: https://note.com/komzweb/ のQRコードを作成してください。
![URLから作成されたQRコード](https://assets.st-note.com/img/1689583796291-mCcR77jmJF.png?width=1200)
Google レンズで読み取ってみると、ちゃんと機能しました。めちゃくちゃ簡単ですね。
Code Interpreterはまだベータ版なので、すぐに仕様が変わったり、できないことができるようになったりする場合があります。今回ご紹介した情報は、2023年7月15日時点の情報であること、また例と同じプロンプトを使用しても必ず同じ結果になるとは限らないことをご承知ください。
最後までお読みいただき、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?