Open7

ChatGPT のCode interpreterまとめ(更新中)

currypurincurrypurin

2023年7月7日にアナンウンスがあり、Interpreter 機能がChatGPT Plusユーザに順次開放される
コードの実行と、アップロードしたファイルへのアクセスが可能。
https://twitter.com/currypurin/status/1677064127427268608?s=20

Pythonの環境

この環境は、OpenAIが提供する対話型のPythonコード実行環境です。具体的な特性は以下の通りです:

Python 3.7+を使用しています。
機械学習やデータ分析に使われる主要なライブラリ(pandas、numpy、scikit-learnなど)がプリインストールされています。
インターネットアクセスが無効化されています。したがって、新たなパッケージのインストールや外部APIへのリクエストなどが行えません。
状態はセッション間で保持されません。つまり、セッションが終了すると、それまでの変数の値や計算結果は全てクリアされます。
ユーザーがアップロードしたファイルやユーザーへのファイルのダウンロードは、特定のディレクトリ(/mnt/data/)を通じてのみ可能です。
この環境は主に対話型の質問応答や教育的な目的、簡単なコードの実行やデバッグに適しています。

ライブラリ

GPTの訓練データが2021年9月までのものとなっているので、Pythonのライブラリも2021年9月時点のものなっている。

例えば、scikit-learnのversionは1.0で2021年9月にリリースされたもの。今の最新は1.3。

以下は pip-freezeで出力したライブラリのversionの情報

absl-py==1.4.0
affine==2.4.0
aiohttp==3.8.1
aiosignal==1.3.1
analytics-python==1.4.post1
anyio==3.7.1
anytree==2.8.0
argcomplete==1.10.3
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
arviz==0.15.1
asttokens==2.2.1
async-timeout==4.0.2
attrs==23.1.0
audioread==3.0.0
Babel==2.12.1
backcall==0.2.0
backoff==1.10.0
backports.zoneinfo==0.2.1
basemap==1.3.2
basemap-data==1.3.2
bcrypt==4.0.1
beautifulsoup4==4.12.2
bleach==6.0.0
blinker==1.6.2
blis==0.7.9
bokeh==2.4.0
branca==0.6.0
Brotli==1.0.9
cachetools==5.3.1
cairocffi==1.6.0
CairoSVG==2.5.2
camelot-py==0.10.1
catalogue==2.0.8
certifi==2019.11.28
cffi==1.15.1
chardet==4.0.0
charset-normalizer==2.1.1
click==8.1.4
click-plugins==1.1.1
cligj==0.7.2
cloudpickle==2.2.1
cmudict==1.0.13
comm==0.1.3
compressed-rtf==1.0.6
countryinfo==0.1.2
cryptography==3.4.8
cssselect2==0.7.0
cycler==0.11.0
cymem==2.0.7
dbus-python==1.2.16
debugpy==1.6.7
decorator==4.4.2
defusedxml==0.7.1
deprecat==2.1.1
dill==0.3.6
distro-info===0.23ubuntu1
dlib==19.22.1
dnspython==2.3.0
docx2txt==0.8
ebcdic==1.1.1
EbookLib==0.18
einops==0.3.2
email-validator==2.0.0.post2
entrypoints==0.4
et-xmlfile==1.1.0
exceptiongroup==1.1.2
exchange-calendars==3.4
executing==1.2.0
extract-msg==0.28.7
Faker==8.13.2
fastapi==0.92.0
fastjsonschema==2.17.1
fastprogress==1.0.3
ffmpeg-python==0.2.0
ffmpy==0.3.0
filelock==3.12.2
Fiona==1.8.20
Flask==2.3.2
Flask-CacheBuster==1.0.0
Flask-Cors==4.0.0
Flask-Login==0.6.2
folium==0.12.1
fonttools==4.40.0
fpdf==1.7.2
frozenlist==1.3.3
future==0.18.3
fuzzywuzzy==0.18.0
gensim==4.1.0
geographiclib==1.52
geopandas==0.10.2
geopy==2.2.0
gradio==2.2.15
graphviz==0.17
gTTS==2.2.3
h11==0.14.0
h2==4.1.0
h5netcdf==1.1.0
h5py==3.4.0
hpack==4.0.0
html5lib==1.1
httpcore==0.17.3
httptools==0.6.0
httpx==0.24.1
hypercorn==0.14.3
hyperframe==6.0.1
idna==2.8
imageio==2.31.1
imageio-ffmpeg==0.4.8
IMAPClient==2.1.0
imgkit==1.2.2
importlib-metadata==6.7.0
importlib-resources==5.12.0
iniconfig==2.0.0
ipykernel==6.24.0
ipython==8.12.2
ipython-genutils==0.2.0
isodate==0.6.1
itsdangerous==2.1.2
jax==0.2.28
jedi==0.18.2
Jinja2==3.1.2
joblib==1.3.1
json5==0.9.14
jsonpickle==3.0.1
jsonschema==4.18.0
jsonschema-specifications==2023.6.1
jupyter-client==7.4.9
jupyter-core==5.1.3
jupyter-server==1.23.5
jupyterlab==3.4.8
jupyterlab-pygments==0.2.2
jupyterlab-server==2.19.0
keras==2.6.0
kerykeion==2.1.16
kiwisolver==1.4.4
korean-lunar-calendar==0.3.1
librosa==0.8.1
llvmlite==0.40.1
loguru==0.5.3
lxml==4.9.3
markdown2==2.4.9
markdownify==0.9.3
MarkupSafe==2.1.3
matplotlib==3.4.3
matplotlib-inline==0.1.6
matplotlib-venn==0.11.6
mistune==3.0.1
mizani==0.9.2
mne==0.23.4
monotonic==1.6
moviepy==1.0.3
mpmath==1.3.0
mtcnn==0.1.1
multidict==6.0.4
munch==4.0.0
murmurhash==1.0.9
mutagen==1.45.1
nashpy==0.0.35
nbclassic==1.0.0
nbclient==0.8.0
nbconvert==7.6.0
nbformat==5.9.0
nest-asyncio==1.5.6
networkx==2.6.3
nltk==3.6.3
notebook==6.5.1
notebook-shim==0.2.3
numba==0.57.1
numexpr==2.8.4
numpy==1.21.2
numpy-financial==1.0.0
odfpy==1.4.1
olefile==0.46
opencv-python==4.5.2.54
openpyxl==3.0.10
opt-einsum==3.3.0
orjson==3.9.1
packaging==23.1
pandas==1.3.2
pandocfilters==1.5.0
paramiko==3.2.0
parso==0.8.3
pathy==0.10.2
patsy==0.5.3
pdf2image==1.16.3
pdfkit==0.6.1
pdfminer.six==20200517
pdfplumber==0.5.28
pdfrw==0.4
pexpect==4.8.0
pickleshare==0.7.5
Pillow==8.3.2
pkgutil-resolve-name==1.3.10
platformdirs==3.8.0
plotly==5.3.0
plotnine==0.10.1
pluggy==1.2.0
pooch==1.7.0
preshed==3.0.8
priority==2.0.0
proglog==0.1.10
prometheus-client==0.17.0
prompt-toolkit==3.0.39
pronouncing==0.2.0
psutil==5.9.5
ptyprocess==0.7.0
pure-eval==0.2.2
py==1.11.0
PyAudio==0.2.11
pycountry==20.7.3
pycparser==2.21
pycryptodome==3.18.0
pydantic==1.8.2
pydot==1.4.2
pydub==0.25.1
pydyf==0.7.0
Pygments==2.15.1
PyGObject==3.36.0
pygraphviz==1.7
pylog==1.1
pyluach==2.2.0
pymc3==3.11.5
PyMuPDF==1.19.6
PyNaCl==1.5.0
pypandoc==1.6.3
pyparsing==3.1.0
PyPDF2==1.28.6
pyphen==0.14.0
pyproj==3.5.0
pyprover==0.5.6
pyshp==2.1.3
pyswisseph==2.10.3.2
pytesseract==0.3.8
pytest==6.2.5
pyth3==0.7
python-apt==2.0.1+ubuntu0.20.4.1
python-dateutil==2.8.2
python-docx==0.8.11
python-dotenv==1.0.0
python-multipart==0.0.6
python-pptx==0.6.21
pyttsx3==2.90
pytz==2023.3
PyWavelets==1.4.1
pyxlsb==1.0.8
PyYAML==6.0
pyzbar==0.1.8
pyzmq==25.1.0
qrcode==7.3
rarfile==4.0
rasterio==1.2.10
rdflib==6.0.0
referencing==0.29.1
regex==2023.6.3
reportlab==3.6.1
requests==2.31.0
requests-unixsocket==0.2.0
resampy==0.4.2
rpds-py==0.8.8
scikit-image==0.18.3
scikit-learn==1.0
scipy==1.7.3
seaborn==0.11.2
semver==3.0.1
Send2Trash==1.8.2
sentencepiece==0.1.99
shap==0.39.0
Shapely==1.7.1
six==1.14.0
slicer==0.0.7
smart-open==6.3.0
sniffio==1.3.0
snuggs==1.4.7
sortedcontainers==2.4.0
SoundFile==0.10.2
soupsieve==2.4.1
spacy==3.1.7
spacy-legacy==3.0.12
SpeechRecognition==3.8.1
srsly==2.4.6
stack-data==0.6.2
starlette==0.25.0
statsmodels==0.12.2
svglib==1.1.0
svgwrite==1.4.1
sympy==1.8
tables==3.6.1
tabula==1.0.5
tabulate==0.8.9
tenacity==8.2.2
terminado==0.17.1
text-unidecode==1.3
textblob==0.15.3
textract==1.6.4
Theano-PyMC==1.1.2
thinc==8.0.17
threadpoolctl==3.1.0
tifffile==2023.7.4
tinycss2==1.2.1
toml==0.10.2
tomli==2.0.1
toolz==0.12.0
torch==1.10.0
torchaudio==0.10.0
torchtext==0.6.0
torchvision==0.11.1
tornado==6.3.2
tqdm==4.64.0
traitlets==5.9.0
trimesh==3.9.29
typer==0.4.2
typing-extensions==4.5.0
tzlocal==5.0.1
ujson==5.8.0
unattended-upgrades==0.1
urllib3==1.25.8
uvicorn==0.22.0
uvloop==0.17.0
Wand==0.6.11
wasabi==0.10.1
watchfiles==0.19.0
wcwidth==0.2.6
weasyprint==53.3
webencodings==0.5.1
websocket-client==1.6.1
websockets==10.3
Werkzeug==2.3.6
wordcloud==1.8.1
wrapt==1.15.0
wsproto==1.2.0
xarray==2023.1.0
xarray-einstats==0.5.1
xgboost==1.4.2
xlrd==1.2.0
XlsxWriter==3.1.2
xml-python==0.4.3
yarl==1.9.2
zipp==3.15.0
zopfli==0.2.2

https://twitter.com/currypurin/status/1677472572202704897?s=20

currypurincurrypurin

EDA

タイタニックのデータをEDAさせてみた。

  • 各列の統計的要約、欠損ちの数、ユニークな値の数を見てくれる。
  • 相関を可視化してくれる。それの解釈をしてくれる。
  • 今回はEDAしてくださいだけだったが、更に具体的に指示すると良い。

https://twitter.com/currypurin/status/1677465448831500290?s=20

  • ランダムフォレストでのSuvived予測
  • LightGBMは入っていない。Xgboostは入っているので、Xgboostを使うのが良さそう。
  • 何も指示しないと、欠損値を最頻値で埋めたので、欠損値は埋めないでそのまま入れてというと良い
  • importanceも出してくれる。今回はメモリ不足でエラーになった。

https://twitter.com/currypurin/status/1677475178505453571?s=20

currypurincurrypurin

音楽ファイル

音楽ファイルの再生はできない。

読み込んで、スペクトルへの変換して表示とかはできるけれど、良いプロンプトが必要かも

currypurincurrypurin

チャットの要約を書き出したり、読み込んだりする

  • そんなに使い所はないが、例えば次の時とか
    • ChatGPTにさせたい振る舞いを書いたプロンプトを読み込んで、使う
      • 複数人で同じ環境でゲームを始めるとか
    • チャットが長くなったときに要約して別スレッドで会話を始める
      • ChatGPTがトークン長に制限があると言うことなら、そのスレッドで一旦要約させておけば良いので、書き出す需要はそれほどないが。
      • 別スレッドでChat履歴を読み込んで始めたい、人に渡したい時など
currypurincurrypurin

画像処理

opencv、numpy、pillowが入っているので自由にできる。