この記事ではOpen Interpreterの使い方を解説します。
Open Interpreterとは、GPT-4やCode Llamaなどの大規模言語モデルを使ってコードを生成・実行できるオープンソースのツールです。
ChatGPTのCode Interpreterと違ってローカル環境で動作するところに特徴があります。
しかも、オープンソース(MITライセンス)なので誰でも無料で利用できます。
Open Interpreterとは?
Open Interpreterは大規模言語モデルにコード生成・実行させるためのツールです。
Code Interpreterと同様に、写真や動画やPDFファイルも扱えます。
また、WEBブラウザを開いたり、インターネットに接続したりすることもできます。
Code Interpreterの場合には生成したHTMLやCSSをブラウザでレンダリングして表示することはできませんが、Open InterpreterならWEBブラウザを開いてそのまま確認できます。
Open Interpreterのインストール
Open Interpreterは簡単にインストールできます。
以下のpipコマンドを実行するだけです。
pip install open-interpreter
インストールできたらターミナルでinterpreterコマンドを実行します。
interpreter
これでOpen Interpreterの起動が完了です。
APIキーの設定
interpreterコマンドを実行するとOpenAIのAPIキーを聞かれます。
GPT-4を使いたい場合は、OpenAIのAPIキーを入力します。
APIキーを入力しない場合はそのままEnterキーを押せばCode Llama(Metaが開発したオープンソースの大規模言語モデル)を無料で使えます。
ただし、使用には制限があるようです。
OpenAIのAPIキーはinterpreterコマンドを実行するたびに聞かれます。
APIキーを毎度入力しなくていいようにするにはWindowsの場合は以下をターミナルで実行します(これで環境変数に設定します)。
setx OPENAI_API_KEY [APIキー]
MacやLinuxの場合は次のコマンドを実行します。
export OPENAI_API_KEY=[APIキー]
[APIキー]にはご自身のAPIキーを入力してください。
これで毎度APIキーを聞かれなくなります。
Open Interpreterの使い方
interpreterコマンドを実行したあと、次のようになればOpen Interpreterを使えます。
プロンプトを入力するとChatGPTのCode Interpreterと同様に動作します。
例として、FizzBuzzを実行するコードを書かせてみましょう。
「>」のあとにプロンプトを入力します。
ここでは「FizzBuzzを実行するコードを書いて」と指示しました。
コードが生成されたあとで「このコードを実行するか?(Would you like to run this code? (y/n))」と聞かれます。
コードを実行する場合は「y」を実行しない場合は「n」を入力します。
「y」を入力してEnterキーを押すとコードが実行されて実行結果が出力されます。
正しく結果が出力されました。
Pythonスクリプトで使用する方法
Open InterpreterはターミナルだけでなくPythonスクリプトから使うこともできます。
Pythonファイルの中で、次のようにinterpreterモジュールをimportしてinterpreter.chatメソッドを呼び出すだけです。
import interpreter
interpreter.chat("FizzBuzzを実行するコードを書いてください")
chatメソッドの引数にプロンプトを渡します。
実行するとターミナルから利用したときと同様にコードが生成されて実行できます。
ただし、これだけではターミナルから実行するのと変わりません。
Open Interpreterの出力をPythonの中で使えるようにしたいですね。
Open Interpreterの出力をPythonで受け取るには次のようにします。
import interpreter
messages = interpreter.chat("FizzBuzzを実行するコードを書いて", return_messages=True)
print(message)
chatメソッドの引数にreturn_messages=True
を設定すると会話の内容を戻り値として受け取ることができます。
戻り値は次のように構造化されています。
[{'role': 'user', 'content': 'FizzBuzzを実行するコードを書いて'}, {'role': 'assistant', 'content': '了解しました。FizzBuzzは、1から指定された数までの数値を出力するプログラムです。ただし、次のルールが適用されます。\n\n- 3で割り切れる数値は "Fizz" と出力します。\n- 5で割り切れる数値は "Buzz" と出力します。\n- 3でも5でも割り切れる数値は "FizzBuzz" と出力します。\n\n以下に、FizzBuzzを実行するための計画を示します。\n\n1. Pythonを使用して、1から100までのFizzBuzzを実行するコードを書きます。\n2. そのコードを実行します。\n\nまずは、Pythonを使用してFizzBuzzを実行するコードを書きます。', 'function_call': <OpenAIObject at 0x1136376b0> JSON: {
"name": "run_code",
"arguments": "{\n \"language\": \"python\",\n \"code\": \"for i in range(1, 101):\\n if i % 3 == 0 and i % 5 == 0:\\n print('FizzBuzz')\\n elif i % 3 == 0:\\n print('Fizz')\\n elif i % 5 == 0:\\n print('Buzz')\\n else:\\n print(i)\"\n}",
"parsed_arguments": {
"language": "python",
"code": "for i in range(1, 101):\n if i % 3 == 0 and i % 5 == 0:\n print('FizzBuzz')\n elif i % 3 == 0:\n print('Fizz')\n elif i % 5 == 0:\n print('Buzz')\n else:\n print(i)"
}
}}, {'role': 'function', 'name': 'run_code', 'content': 'User decided not to run this code.'}]
この戻り値は新しいInterpreterに渡すことで再利用することもできます。
import interpreter
messages = interpreter.chat("FizzBuzzを実行するコードを書いて", return_messages=True)
interpreter.reset() # 既存のinterpreterをリセット
interpreter.load(messages) # messagesに入れた会話内容をロード
モデルの変更
Open Interpreterで使用するモデルは、初期設定ではOpenAIのAPIキーがあればGPT-4、なければCode Llamaです。
ただし、gpt-3.5-turboに変更することも可能です。
gpt-3.5-turboを使いたい場合は、次のようにinterpreterコマンドのあとに--fast
をつけて実行します。
interpreter --fast
Pythonの場合はinterpreter.modelにモデルの識別子を与えます。
interpreter.model = "gpt-3.5-turbo"
これだけでgpt-3.5-turboを使えます。
Azureを使う方法
AzureにデプロイしたAPIを使ってOpen Interpreterを使うこともできます。
ターミナルで実行する場合は次のようにします。
interpreter --use-azure
APIキーなど必要な情報を聞かれるので答えていきます。
Pythonで使う場合には次のようにinterpreterオブジェクトに設定を入れます。
interpreter.use_azure = True
interpreter.api_key = "your_openai_api_key"
interpreter.azure_api_base = "your_azure_api_base"
interpreter.azure_api_version = "your_azure_api_version"
interpreter.azure_deployment_name = "your_azure_deployment_name"
interpreter.azure_api_type = "azure"
Open InterpreterでHTML・CSSを生成する
Open InterpreterでHTML・CSSを生成すると、生成した結果をWEBブラウザでレンダリングして表示できます。
たとえば「カフェのホームページを作って」と指示するとHTMLとCSSを生成します。
そして「このコードを実行するか?(Would you like to run this code? (y/n))」に「y」と回答すればWEBブラウザが開きます。
このように簡単な指示だけで簡単にホームページを作ることができます。
まとめ
この記事ではOpen Interpreterの使い方を解説しました。
使い方次第で開発の生産性を大幅に上げることができそうです。
ぜひ上手く活用してみてください。
記事の内容にわからないことがある方は以下のアカウントに気軽にDMしてください!
また、最新の技術の活用方法など役に立つツイートを心がけているので、ぜひフォローしてもらえると嬉しいです!