Open InterpreterをDockerで動かす
Open Interpreterが凄い
凄いの出ちゃいましたね。Open Interpreterの凄さとか、可能性とかは、以下のshi3zさんのブログ記事で感じていただければと思います。こういうエモい文章はshi3zさん最高に上手ですね。
自分としては、Advanced Data Analysis(旧ChatGPT Code Interpreter)を触っていて「こりゃ凄いな」と思っていたものの、少し制約に窮屈さを感じていたところだったのでバッチリのタイミングでした。
Open InterpreterをDocker環境を動かす
Open Interpreter凄いのですが、問題は凄すぎる点ですね。ガンガンコマンドを実行するので、ローカルで動かしたら凄い勢いで環境が汚れていきます。
デフォルトのプロンプトは安全側に倒されていますが、それでもファイルを消されたりする可能性もゼロではないですし、色々実験したくもなりそうです。
というわけで、Dockerを使ってOpen Interpreterを動かすと良さそうという話です。Dockerに関しては以下記事参照ください。セットアップなども以下記事参照ください。
Dockerは、いわゆる仮想環境で、普段使用する環境からは隔離されているので、Open Interpreterが何しようと平気です。暴走して sudo rm -rf *
とか実行しても、コンテナを立ち上げ直せば一瞬で元通りです。
頑丈な檻の中で猛獣を飼っているようなものですね。
手軽に使うためのGitHubのリポジトリを準備しました。
試した環境はMac OSですが、Windows(WSL2)でもLinuxでも問題なく動くと思います(そのうち試します)。
今のところ、シンプルなコマンドラインで実行できるDockerfileと、ブラウザでGUIを使って実行できるDockerfileの2つを用意しています。
使い方はGitHubのリポジトリのREADMEに書いてありますが、簡単に紹介します。
シンプルなDockerfileの使い方
リポジトリをクローンします。
$ cd && git clone https://github.com/karaage0703/open-interpreter-docker
Dockerfileをビルドします。
$ cd ~/open-interpreter-docker
$ docker build -t open-interpreter-simple ./container-simple
ここまでは初回に1回やればOKです。
動かしたいときは、以下コマンドでDockerランします。
$ cd ~/open-interpreter-docker
$ docker run -it --rm -v $(pwd):/root open-interpreter-simple
コンテナが立ち上がるので、コンテナ内でOpen Interpreterを実行します。
root@hostname:~# interpreter -y
以下のような感じに、Open Interpreterをコマンドライン上で実行できます。
ただ、GUIは使えないので画像の表示とかはできません。表示する代わりに画像を保存をプロンプトで指示するなど工夫すると良いでしょう。
また-v $(pwd):/root
でボリュームを使用することでopen-interpreter-docker
内にあるファイルをDockerの/root
ディレクトリ直下で利用できるようになります。これで、好きなファイルをDocker環境とやりとりすることができます。
GUIが使えるDockerfileの使い方
やっぱりGUIが使いたいという人のためのDockerfileです。GUIの設定が面倒なDockerですが、ブラウザ経由でDockerにVNCでアクセスすることで、OSに依存せず安定してGUIを使うことができます。
過去にROS(Robot Operating System)をDockerで使うときに便利なので使っていましたので、これをOpen Interpreterに応用します。すぐ動かせると思いましたが、Ubuntuのバージョンとかもろもろで結構大変でした。今もまだ色々と問題あります(後述)。
使い方を紹介します。リポジトリcloneしてある前提です。以下でDockerfileをビルドしましょう。
$ cd ~/open-interpreter-docker
$ docker build -t open-interpreter-gui ./container-gui
使いたいときは、以下実行してDockerランしましょう。
$ cd ~/open-interpreter-docker
$ docker run -v $(pwd):/root -p 6080:80 open-interpreter-gui
あとは、ブラウザで http://127.0.0.1:6080/ に入ります。
以下のような画面が出たらOKです。
左のメニューからクリップボードを使えます。これでホストのPCとDockerでコピペができます。ただし日本語はうまくコピペできません。
ターミナルはシステムツール→LXTerminalから起動できます。
あとはターミナルからOpen Interpreterを実行しましょう。
GUIの表示もバッチリです。
StremlitでのGUI
以下記事参照ください。
Tips
Open AI API Keyの入力
以下のようにオプションをつけてDockerを起動すると、OPEN AI API KEYを環境変数に設定した状態でDockerを起動できます。
$ docker run -v $(pwd):/root -p 6080:80 -e "OPENAI_API_KEY=<open_ai_api_key>" open-interpreter-simple
問題点
日本語を入力できないです。Docker内で、Googleの仮想キーボードを使って日本語入力して、コピペすることで一応使うことはできますが、普通に入力したいです。
誰かやり方教えてください。PR募集中です。
まとめ
Open InterpreterをDockerで動かす方法を紹介しました。他の手軽な方法としては、Google Colabを使う方法があります。悪くはないですが、やっぱり手元で動かしたいですよね。あとはOpen Interpreter、Azureにも対応しているそうなので、本格的に使うならそっちでも良いのかもしれません。
宣伝
ChatGPTの本書いてます。Open Interpreterにも触れる予定です。まだ発売は先ですが、もしよろしければ是非!
参考リンク
関連記事
変更履歴
- 2023/10/22 OpenInterpreterUIについてリンク追記
Discussion