はじめに
私の知らない侑ちゃんがいる... nikkieです1。
本日DevDayがあった関係で今更感が強いですが、Code interpreterに震撼しました。
目次
それは突然やってきた
スキマ時間にGPTさんとお話ししようと思ったnikkie氏(スマホ使用)
PythonでプログラミングしてQRコードを作りたいです。 一緒に考えましょう
GPT-4さん
PythonでQRコードを生成するには、qrcodeライブラリを使用することが一般的です。(略) Python環境をセットアップして、このプロセスを始めましょうか?
nikkie (お、なんか聞かれたぞ。まさか本当にセットアップするわけじゃないだろうし、ここは一つノッてみようかな)
はい、お願いします
???
!pip install qrcode[pil]
なんかコード実行され始めた!!
ってか、コイツなんなの? GPT-4さんとめっちゃ親しげに会話してるんですけど!
私とGPT-4さんのお話を邪魔しないで😡
Code interpreter
これがCode interpreterとの出会いでした。
https://openai.com/blog/chatgpt-plugins#code-interpreter
We provide our models with a working Python interpreter in a sandboxed, firewalled execution environment, along with some ephemeral disk space.
GPT-4がCode interpreterという道具を使っているという理解です。
登場時に騒がれていたのは知っていたのですが、今回身をもってすごさを体験しました。
PythonでQRコード作成
やりたかったのは以下です。
このチャットで以下を知りました。
- PythonでURLをQRコードにしたい
- ライブラリqrcodeを使う
qrcode[pil]
とPillowも一緒にインストール
- QRコードは色を付けたい
qr.make_image(fill="#990000")
でできるらしい
- QRコードに文字を書き込む方法も知りたい
- PillowのImageDrawを使えばできるらしい
ImageFont.load_default()
でデフォルトのフォントが取得できるみたい
動作しそうなサンプルコードと合わせて見られたのがとてもよかったです
GPT-4とCode interpreterで試行錯誤が続いていくんですが!
「foobarとQRコードの真ん中に配置したい」と伝えたところ、Code interpreterとGPT-4の間でやり取りが進みます。
NameError: name 'ImageDraw' is not defined
ImageDraw モジュールをインポートし忘れたため、エラーが発生しました。
OSError: cannot open resource
フォントファイル arial.ttf が見つからないため、エラーが発生しています。
デバッグしてるじゃないですか!!
これにはびっくり
これもう私がチャットするターン回ってこないんじゃないかと思っていたら、エラーを解消したと思しきコードが提示されました。Wow!
GPT-4さん、Code interpreterという道具を使いこなして「情報収集・モデル化・検証」のサイクル、回せてるよ〜(失職が近そうガクブル)
手直しした
ライブラリのバージョンによるのか、生成されたコードはそのままでは動かず、最終形は以下です。
- Python 3.11.4
pip install 'qrcode[pil]'
して以下が入りました
Pillow==10.1.0 pypng==0.20220715.0 qrcode==7.4.2 typing_extensions==4.8.0
- チャットで生成されたコードは動くんですが、色がついていないんですよ!
qr.make_image
の(fill
でなく)fill_color
引数でした2- RGBAを表すタプルを指定しています
- draw.textsizeメソッドが見つからなかったので(バージョン違い?)、textlengthメソッドを使った実装をしています
- textlengthがwidthで、フォントサイズがheightになるという理解です
終わりに
偶然体験したCode interpreterでしたが、GPT-4がこの道具を使いこなして動作するコードを生成していくさまがヤバかったです。
使ったことのないPythonライブラリのサンプルコード生成はユースケースとしてよさそうでした。
今回の画像生成のような、外部との通信が発生せず、手元のデータを計算・変換するようなシーンで特に役立ちそうな印象です。
各位が精力的に検証されていると思うので、どんなことができるか遅ればせながらですが情報収集したいなー
P.S. DevDay関連積ん読リスト
OpenAI DevDay で発表された新モデルと新開発ツール まとめ|npaka @npaka123 https://t.co/Gqte8vQfCr #note
— 布留川英一 / Hidekazu Furukawa (@npaka123) 2023年11月6日
今日の昼の勉強会のアーカイブ動画公開しました!
— しま (@oshima_123) 2023年11月7日
【2023/11/07】【当日開催】今朝のOpenAI DevDayでのアップデートをキャッチアップする会#StudyCohttps://t.co/603IQ0awX4
とりあえず流れてきたものをメモっておきます。これも重要ってやつあったら教えてください > OpenAI Dev Day発表内容メモ|karaage0703 https://t.co/LkT89nrkKT #zenn
— からあげ (@karaage0703) 2023年11月6日