👨‍💻

Code InterpreterのOSS実装「GPT-Code UI」「codeinterpreter-streamlit」を試してみた

2023/07/24に公開

GPT-Code UI

Code Interpreter APIを紹介しましたが、更にUIがついてよりCode Interpreter感覚で使えるOSS実装がありました。きっと非公式です。

https://github.com/ricklamers/gpt-code-ui

このままでも、簡単に使えそうでしたが、環境構築とか気にせず使いたいので、Docker使おうかなと思ったら、既にDocker版もありましたのでありがたく使わさせていただきました。

https://github.com/localagi/gpt-code-ui-docker

ただ、微妙にハマりどころがあったので、少しだけメモしておきます。なお、OpenAI API KEYが必要です。

「gpt-code-ui-docker」の設定方法

Mac(Apple Silicon)とLinuxで試しました。試してないですが、きっとWindows(WSL2)でも動くでしょう。

Dockerのセットアップに関しては以下記事参照ください(Docker使っている人は読み飛ばしてOKです)。

https://karaage.hatenadiary.jp/entry/2019/05/17/073000

Dockerインストールされていれば、あとはREADME通りです。

具体的には、OPEN_API_KEYをdocker-compose.yamlに書き込んでdocker compose upコマンドを実行してブラウザでhttp://localhost:8080にアクセスするだけです。

ポートが競合

なのですが、自分の環境だと以下のように8080ポートが既に使われているというメッセージが出て動きませんでした。

Port 8080 is in use by another program. Either identify and stop that program, or start the server with a different port.

「何か8080使っているプログラムがいるのか?」とpsコマンドうったら、動いているのはDockerなのでどうすりゃいいんだと思っていたらissueが立ってました

というわけでdocker-compose.yamlを以下の通り書き換えます。OPENAI_API_KEYには、自分のOpenAI API KEYを書きましょう(ネットには絶対アップしないようにしましょう)。

  gpt-code-ui:
    image: localagi/gpt-code-ui:${GPTCODEUI_VERSION:-main}
    environment:
      OPENAI_API_KEY: "your key"
      APP_HOST: gpt-code-ui
      WEB_PORT: 23754
    ports:
      - "23754:23754"

あとは、ターミナルでdocker compose upコマンドを実行して、ブラウザでhttp://localhost:23754にアクセスしましょう(ポート番号変更しているのに注意)。

必要なライブラリが無い

これでOKだとサインカーブを描こうとしたら、numpyが無いと言われます。

docker psして、docker exec -it <container name> bashしてログインしてpipで入れてもよいのですが、GUIのプロンプトでお願いしてもサクッと入れられちゃいます。べ、べんり。

ついでにmatplotlibも入れましょう。

もう一回サインカーブにチャレンジします。

ぶじサインカーブが描けました。

Streamlit実装

Code Interpreter APIとStreamlitを使った実装もありました。シンプルで良さそうですね。

https://github.com/mahm/codeinterpreter-streamlit

こちらも簡単に動かせました。Code Interpreter APIを試してみたと同様.envのOPEN AI API KEYがとれなかったので、コードにベタがきしています。

まとめ

ChatGPT Code InterpreterのOSS実装を試してみました。GUIあるので、Code Interpreter感覚で使えますし、OpenAI APIの課金さえ許せば、Code Interpreterの制限を超えて使えるので良いですね。使いすぎ注意です。

関連記事

https://zenn.dev/karaage0703/articles/90d4de4596b262

https://zenn.dev/karaage0703/articles/abb4a2513e3743

https://zenn.dev/karaage0703/articles/04f585d1d46979

Discussion