見出し画像

Open Interpreterの最新情報をアップデートする

こんにちは、ニケです。
皆さん Open Interpreter は使用されてますでしょうか?

2023年は本当にAI技術の進歩が早く、毎週のように優れたツールが発表されています。

とはいえ、これだけ色々発表されていても実際に使用しているAIツールはそんなに多くないのではないでしょうか?
実は私はそうで、よく使用していて かつ ちゃんと情報を追っているのは数えるくらいしかありません。

今回はその中でもOpen Interpreterの最新情報についてまとめておきたいと思います。(1ヶ月前以上にアプデされたのもあるのでそこまで最新じゃないかも😇

私がOpen Interpreterの基本的な使い方やおすすめの使用方法などを紹介した記事はこちらからどうぞ!

機能紹介

config設定

システムメッセージや各種オプションを予めファイルに設定しておくことができます。
ターミナルで使用する場合は、毎回引数を指定することがないのでかなり便利です。

ターミナルの場合は下記のコマンドでファイルを開けます(もちろん普通にファイルを開いても良いです)。

interpreter --config
 
# 上記のコマンドで開くファイル
# interpreter/terminal_interface/config.yaml

状況によってconfig情報を切り替えたいときもあると思いますが、その場合はファイルを指定して実行することができます。

interpreter --config_file $config_path
 
# $config_path はファイルパスを指定します

pythonで設定ファイルを指定する場合は、`extend_config` メソッドを使用します。

import os
import interpreter

currentPath = os.path.dirname(os.path.abspath(__file__))
config_path=os.path.join(currentPath, './config.test.yaml')

interpreter.extend_config(config_path=config_path)

message = "What operating system are we on?"

for chunk in interpreter.chat(message, display=False, stream=True):
  print(chunk)

Vision

最新のOpen Interpreterでは画像を読み取るGPT4 Vision APIが使用できます。
ターミナルに画像ファイルをドラッグするだけです。すごい。

ちなみにpythonの方でも使用できるみたいですが、私が試してみたときはエラーが出てしまったので現在原因調査中…。

ローカルLLMの利用

Open Interpreterは内部処理でOpenAI APIをリクエストしまくってるので頻繁に使ってるとAPI費用が馬鹿にできない金額になります。

そこで救世主、ローカルLLMの登場です。
とはいえGPT-4の精度を出すのは難しいみたいですが、紹介だけしておきます。
ちなみに、私の環境RTX4070では満足な回答は得られませんでした。

Open Interpreterでは、LM Studio の使用が推奨されているようです。
LLMサーバーを簡単に立てられるアプリですね。
以下、起動方法です。

1. https://lmstudio.ai/からダウンロードして起動します。
2. モデルを選択し、↓ ダウンロード をクリックします。
3. 左側の ↔️ ボタン(💬の下)をクリックします。
4. 上部でモデルを選択し、サーバーを起動 をクリックします。

サーバーが立ち上がったら下記のコマンドを実行します。

interpreter --local

pythonで利用する場合はこう。

interpreter.local = True

FastAPIサーバー

アップデートとは少し異なりますが、FastAPIアプリを利用してstreamモードでHTTPを介して結果を取得するコードがREADMEで公開されていました。

# server.py

from fastapi import FastAPI
from fastapi.responses import StreamingResponse
import interpreter

app = FastAPI()

@app.get("/chat")
def chat_endpoint(message: str):
    def event_stream():
        for result in interpreter.chat(message, stream=True):
            yield f"data: {result}\n\n"

    return StreamingResponse(event_stream(), media_type="text/event-stream")

@app.get("/history")
def history_endpoint():
    return interpreter.messages
pip install fastapi uvicorn
uvicorn server:app --reload

おまけ

AI x 美少女でいろいろやってたりするのでフォローやチャンネル登録などしてもらえると大変嬉しいです。

下記はOpen Interpreterに美少女インターフェースをつけて、Linuxサーバーを遠隔操作しAPIを立ち上げ&新規エンドポイントを追加した、という動画です。


いただいたサポートは主にOSSの開発継続費用として役立てます。