【近況報告】Open InterpreterのGUIを制作しようとしたけど挫折した話

雑記

最近やってたこと(Open InterpreterのGUI制作)とその挫折の経緯を書いていきます。

Open Interpreter

Open Interpreterとは、簡単に言うとChatGPTの「Advanced data Analysis」をローカルで使えるようにしようというPythonのライブラリです。
https://github.com/KillianLucas/open-interpreter
この記事https://note.com/shi3zblog/n/n7eaba88ffe4aとか参考になると思います。
CLI操作に対応していますが、GUIはないです。

Dockerで利用したい

仕様上、勝手にライブラリなどの依存関係をインストールしていくので、環境汚染が酷いことになります。
よって、Dockerコンテナ内で動かしたいと考えました
(参考にしたサイト:https://dalab.jp/archives/journal/how-to-use-open-interpreter/)

GUIを要求されることがある

Open Interpreterは操作中ローカルのGUIアプリの起動を要求してくることがあるのですが、Dockerコンテナだと仕様上開くのが色々と面倒なんですよね。
対応方法をGPTに聞きまくり、「LXDE+VNC(noVNC)」か「WebGUIの自作か」になってくるのか、となんとなく理解。
調べると、「LXDE+VNC(noVNC)」を行っている先駆者がおり、(記事:https://zenn.dev/karaage0703/articles/e2e6417fb003dd)いわく、日本語の入力に難がありそうだった。

WebGUIの自作を試みるも挫折

そこで「WebGUI」自作を選択。Flask+Reactを利用。
中身としては、サブプロセスにコマンドを投げるようなアプリを制作していましたが、どうやっても「Open Interpreter」がファイルオープンでファイルを要求する際の、コマンドライン上でのファイルの読み込み方式が分からず、現在の知識レベルじゃ無理だと判断。無事挫折。
失敗作のリポジトリは一応置いておきます。(https://github.com/laketonemorg/gomi)

ダメ元

一応、既に先駆者がやっていた「LXDE+VNC(noVNC)」を、このような記事(https://kamino.hatenablog.com/entry/docker_vnc)を参考にダメ元でやってみたけど、やはり同じような使用感でした。
Dockerfileは最終的にこんな感じになりましたが、まあ使い物になりませんでした。

Dockerfile

# ベースイメージとしてUbuntuを使用
FROM --platform=linux/amd64 ubuntu:22.04

# 必要なパッケージをインストール
RUN apt-get update && \
    apt-get install -y git curl build-essential libssl-dev zlib1g-dev libffi-dev libncurses5-dev libncursesw5-dev wget && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Miniforgeのインストール
RUN wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O ~/miniforge.sh &&\
    /bin/bash ~/miniforge.sh -b -p /root/miniforge

# Miniforgeをパスに追加
ENV PATH="/root/miniforge/bin:${PATH}"

# Conda仮想環境の作成
RUN conda create --name myenv python=3.10
SHELL ["conda", "run", "-n", "myenv", "/bin/bash", "-c"]

# 仮想環境内のpipを使ってopen-interpreterをインストール
RUN /root/miniforge/envs/myenv/bin/pip install open-interpreter

# LXDE、VNC、noVNC、ibus、ibus-anthyのインストール
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y lxde tigervnc-standalone-server tigervnc-common novnc websockify ibus ibus-anthy fonts-noto-cjk && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# VNCサーバーのパスワードを設定
RUN mkdir -p /root/.vnc && \
    echo 'yourpassword' | vncpasswd -f > /root/.vnc/passwd && \
    chmod 600 /root/.vnc/passwd

# コンテナを動作し続けるためのコマンド
CMD ["tail", "-f", "/dev/null"]

負け惜しみ

ぶっちゃけ、GUIを作るにあたってOpen Interpreterいじくり回してたけど、言うほどこいつ使い勝手よくなくね?という感覚に至ったのは、僕のレベルが低いからなんでしょうかね。自動化で走らせるとクソみたいな動きをし始めるので、全く普段遣いする気になりませんでした。
これ使うくらいなら、普段のChatGPTを工夫して使ったほうが操作が楽な気がします。
高度な分析とかすごいファイルを作る人とかなら活用できるんですかね。僕はただのクソニートなので分かりませんでした。

以上、ここ最近の徒労話でした。

コメント

タイトルとURLをコピーしました