巷で話題のopen-interpreterを触ってみた

SO Technologiesの渡部です。

ここ1週間ぐらいでopen-interpreterという、ChatGPT(or Code Llama)を使って ChatGPTのコードインタープリターのようなものをローカルで動作させる、というツールが話題になりました。

わたしはChatGPTのコードインタープリターで感動した人間なので その話を聞き、早速導入してみました。

そこで今回の記事では「open-interpreterで環境構築」作業を通じて、

話題のopen-interpreterってどないやねん?というのを実体験していきたいと思います!

Open Interpreterとは

公式サイト: https://openinterpreter.com/

github: https://github.com/KillianLucas/open-interpreter/

公式サイト(github 日本語版)によると

自然言語で指示するだけでコードを書いて実行までやってくれる。
ローカルに実装したOpenAI Code Interpreterのオープンソース版。

と記載されています。

冒頭でも話した通り、ChatGPTのβ機能であるCode Interpreterをローカル環境で動かせるよーといったものになるようです。

ただ、ChatGPT版はPythonしか動かせませんでしたが、Open InterpreterではShellScriptおよびJavascriptも動作させることが可能です。

これにより環境構築なども可能になるようです。

必要なもの

Open Interpreterで必要なもの

OpenAIに課金してGPT-4モデルが使えるアカウントで発行したキー
新しめのバージョンのPython( 3.10以上?今回は3.11環境 )

今回の実験で使うもの

M1 pro MacbookPro
Docker for mac

早速Laravel環境の構築作業をまかせてみる

今回は実験なので、やったことのある作業「Laravel環境構築」を docker環境下でopen-interpreterにやらせてみようと思います。 コンテナで動かすことでAIが勝手にコマンド叩いて環境を破壊してしまうことを防いでいます。

まずは、docker-compose.yml (portsが8083なのは8080等が私の環境で埋まってるため)

version: '3'

services:
  ubuntu-python:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8083:80"

次にDockerfile。必要なPythonをインストールします。

 # 最新のUbuntuイメージを使用
FROM ubuntu:latest

ENV DEBIAN_FRONTEND=noninteractive

# Python3.11, およびpipのインストール
RUN apt update && \
    apt upgrade -y && \
    apt install -y software-properties-common && \
    add-apt-repository -y ppa:deadsnakes/ppa && \
    apt update && \
    apt install -y python3.11 && \
    apt install -y python3-pip && \
    pip3 install open-interpreter

# コンテナを稼働させ続けるコマンド
CMD ["tail", "-f", "/dev/null"]

コンテナ内に入ってキーを環境変数に格納

docker-compose up -d
docker exec -it python_tools-ubuntu-python-1 /bin/bash
export OPENAI_API_KEY=sk-xxxxx(OpenAIで発行したキー)

export手順を省略してinterpreterコマンド実行後にセットすることもできますが docker環境下だからなのかこちらの方法だとエラーが出て動きませんでした。

コマンド実行

-yオプションでこちらに確認無しでコマンドをじゃんじゃん実行してくれます(危ない)

# cd # ホームディレクトリに移動
# interpreter -y

--fastオプションを使えばgpt3.5-turboを使うのでgpt4が使えない方はこちらを使うといいかもしれません。

# interpreter -y --fast

対話モードでopen-interpreterが起動するので「Laravel環境作ってー!」っておねがいしてみます。

稚拙な英語でやってますが少し試した感じ日本語でもいけそうですね。

create laravel project "sample-app" here. and nginx php-fpm setting.

一部抜粋

まだ完成度が低いのか、Ubuntuコンテナ内の動作が想定されていないのか途中で止まることがあるので同じ命令を何回か送ってます。

ブラウザで確認したところ404エラーが出てしまいました。残念。

原因は/root配下に構築してしまっていたためでした。

※原因解消して!ってお願いしましたが、うまくいったのは特定までで解消まではうまくいかなかったので省略します。

なので、「ローカルユーザーのディレクトリに移動して、nginx, php-fpm設定を変更して」と命令してみます。 自力で英文書いてるので結構おかしな文章かもですが、ちゃんと読み取ってくれるようです。

sample-app move to www-data user location. and change nginx php-fpm settings.

一部抜粋 www-dataなのでホームディレクトリなどはないのですが、/var/www/sample-appに格納してくれました。

一部抜粋 ファイルの書き換えはsedでやるようですね。

これで再度実行するとLaravelの初期画面が表示されるようになりました!

おわりに

感想ですが、「既知の作業だったため構築できた」感は否めませんでした。 多分全く知らなかったら適切な命令はできなかったと思います。

他のAIツール全般にもいえることですが、 open-interpreterも「サポートで使う」にとどめたほうがいいですね。

また、今回の実験でAPIの料金が約 $5 ほど発生しましたので、利用の際はコスト上限(Usage Limits)を設定した上で使用することをおすすめします。

無料で使える!と宣伝している記事が多かったのですが、

正しくは「ツールは無料で使える(ただしAPIは従量課金)」なので要注意です!