自然言語で指示するだけでコードを書いて実行までやってくれる。
ローカルに実装したOpenAI Code Interpreterのオープンソース版。
デスクトップアプリケーションへの早期アクセス。
pip install open-interpreter
interpreter
Open Interpreterは、言語モデルに指示し、コード(Python、Javascript、Shellなど)をローカル環境で実行するようにします。インストール後、$ interpreter
を実行するとターミナル経由でChatGPTのようなインターフェースを介し、Open Interpreterとチャットができます。
これにより、自然言語のインターフェースを通して、パソコンの一般的な機能が操作できます。
- 写真、動画、PDFなどの作成や編集。
- Chromeブラウザの制御とリサーチ作業。
- 大規模なデータセットのプロット、クリーニング、分析。
- 等々
Open.Interpreter.Demo.mp4
pip install open-interpreter
インストール後、interpreter
を実行するだけです:
interpreter
import interpreter
interpreter.chat("AAPLとMETAの株価グラフを描いてください") # 一つのコマンドを実行
interpreter.chat() # インタラクティブなチャットを開始
GPT-4で実装されたOpenAIのCode Interpreter は、実世界のタスクをChatGPTで操作できる素晴らしい機会を提供しています。
しかし、OpenAIのサービスはホスティングされていて、クローズドソースで、かなり制限されています:
- インターネットに接続できない。
- プリインストールされているパッケージが限られている。
- 最大アップロードは100MBで、120秒という実行時間の制限も。
- 生成されたファイルやリンクとともに状態がリセットされる。
Open Interpreterは、ローカル環境で操作することで、これらの制限を克服しています。インターネットにフルアクセスでき、時間やファイルサイズの制限を受けず、どんなパッケージやライブラリも利用できます。
Open Interpterは、GPT-4のコードインタープリタのパワーとローカル開発環境の柔軟性を組み合わせたものです。
ターミナルでインタラクティブなチャットを開始するには、コマンドラインからinterpreter
を実行します。
interpreter
または、.pyファイルからinterpreter.chat()
も利用できます。
interpreter.chat()
より精確な制御のために、メッセージを直接.chat(message)
に渡すことができます。
interpreter.chat("/videosフォルダにあるすべての動画に字幕を追加する。")
# ... ターミナルに出力をストリームし、タスクを完了 ...
interpreter.chat("ついでに、字幕を大きくできますか?")
# ...
プログラム的チャットでOpen Interpreterは、会話の履歴を記憶しています。新しくやり直したい場合は、リセットすることができます:
interpreter.reset()
interpreter.chat()
は、return_messages=True のときにメッセージのリストを返し、interpreter.load(messages)
で会話を再開することができます。
messages = interpreter.chat("私の名前は田中です。", return_messages=True) # 'messages'にメッセージを保存
interpreter.reset() # インタープリタをリセット("田中"は忘れられる)
interpreter.load(messages) # 'messages'からチャットを再開("田中"は記憶される)
Open Interpreterのシステムメッセージを確認し、設定することで、機能を拡張したり、権限を変更したり、またはより多くのコンテキストを与えたりすることができます。
interpreter.system_message += """
シェルコマンドを「-y」フラグ付きで実行し、ユーザーが確認する必要がないようにする。
"""
print(interpreter.system_message)
gpt-3.5-turboの場合は、fastモードを使用する:
interpreter --fast
プログラム的チャットでは、モデルを手動で設定する必要がある:
interpreter.model = "gpt-3.5-turbo"
ⓘ ローカルでの実行に問題ですか? 新しいGPUセットアップガイドとWindowsセットアップガイドを参考にしてください。
Code Llama
を使用するには、コマンドラインからローカルモードで interpreter
を実行します。
interpreter --local
または、Hugging FaceモデルをそのレポID(例えば "tiiuae/falcon-180B")を使ってローカルで実行することもできます:
interpreter --model tiiuae/falcon-180B
ローカルで実行するモデルの max_tokens と context_window (トークン単位) を簡単に変更できます。
context_windowを小さくするとRAMの使用量が減るので、GPUが失敗している場合はサイズを短くしてみることをお勧めします。
interpreter --max_tokens 2000 --context_window 16000
AzureのOpenAI Serviceに接続するには、--use-azure
フラグを渡します。
interpreter --use-azure
Pythonでは、次の変数を設定します:
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を調査するのを助けるために、--debug
モードは非常に便利です。
デバッグモードは、フラグ(interpreter --debug
)を使用するか、またはチャットの中から有効にできます:
$ interpreter
...
> %debug # <- デバッグモードを有効にする
Open Interpreterでは、.envファイルを使ってデフォルトの動作を設定することができます。これにより、コマンドライン引数を毎回変更することなく、Open Interpreterを柔軟に設定できるようになります。
サンプルの.env設定は次のとおりです:
INTERPRETER_CLI_AUTO_RUN=False
INTERPRETER_CLI_FAST_MODE=False
INTERPRETER_CLI_LOCAL_RUN=False
INTERPRETER_CLI_DEBUG=False
INTERPRETER_CLI_USE_AZURE=False
これらの値を.envファイルで変更することで、Open Interpreterのデフォルトの動作を変更できます。
生成されたコードはローカル環境で実行されるため、ファイルやシステム設定と相互作用する可能性があり、データ損失やセキュリティリスクなど予期せぬ結果につながる可能性があります。
この確認を回避するには、interpreter -y
を実行するか、interpreter.auto_run = True
を設定します。その場合:
- ファイルやシステム設定を変更するコマンドを要求するときは注意してください。
- Open Interpreter を自動運転車のように監視し、ターミナルを閉じてプロセスを終了できるように準備しておいてください。
- Google ColabやReplitのような制限された環境でOpen Interpreterを実行することを検討してください。これらの環境はより隔離されており、任意のコードの実行に関連するリスクを軽減します。
Open Interpreterは、関数が呼び出せる言語モデルにexec()
関数を装備し、実行する言語("python"や"javascript"など)とコードが渡せるようになっています。
そして、モデルからのメッセージ、コード、システムの出力をMarkdownとしてターミナルにストリーミングします。
貢献に興味を持っていただき、ありがとうございます!コミュニティからの参加を歓迎しています。
詳しくは、貢献ガイドラインを参照してください。
Open InterpreterのライセンスはMITライセンスです。本ソフトウェアの使用、複製、変更、配布、サブライセンス、およびコピーの販売を許可します。
注意: このソフトウェアはOpenAIとは関係ありません。
あなたの指先のスピードで作業するジュニアプログラマーにアクセスすることで、… 新しいワークフローを楽で効率的なものにし、プログラミングの利点を新しいオーディエンスに開放することができます。
— OpenAIのコードインタープリタリリースから
注意: この翻訳は人工知能によって作成されました。誤りが含まれていることが確実です。 Open Interpreterが世界中を旅するのを助けるため、訂正を含むプルリクエストをしてください!