地平線まで行ってくる。

記録あるいは忘備録。時には検討事項。

LibreChatでCode Interpreter周りを自作する #03

改めて動機を

Claude Code や Codex のような AI エージェントを利用すれば、Python を用いたデータ解析やファイル操作を手軽に実行できます。しかし、実際の業務環境では必ずしもそれらを自由に利用できるとは限りません。

セキュリティやコストの観点から AI エージェントの利用が制限されている環境も多く、ちょっとした解析やファイルの書き換えといった簡単な作業ですら、意外と手間やストレスが発生します。また、AI エージェントは便利である一方、実行内容やアクセス範囲の制御が難しいという課題もあります。

そこで、AI やコンテナ技術に詳しくない人でも気軽に利用でき、かつ安全に実行できる環境を提供したいと考えました。コンテナ内に任意の実行環境を構築し、外部通信を制限した状態で処理を実行できれば、情報漏えいのリスクを抑えながら柔軟な解析環境を実現できます。

もちろん、このような仕組み自体は既に存在しています。しかし、自分のサーバー上で完結させ、手元の計算リソースを最大限活用したいという思いがありました。加えて、コンテナや AI エージェントの仕組みをより深く理解するための学習も兼ねて、本システムを作成することにしました。

経過

以前にも同様の仕組みを試作したことがありましたが、その際は LibreChat 側の制約により、日本語ファイル名を正しく実行コンテナへ渡せないという問題がありました。

しかし、LibreChat のファイル管理機構が刷新されたため、今回は新しい LibreChat(v0.8.6-rc1)をベースに再実装を行いました。

実装にあたっては、日本語ファイル名の取り扱い改善に加え、Matplotlib などで発生しがちな日本語文字化けへの対策も組み込んでいます。また、検証の過程で LibreChat 側に起因すると考えられるいくつかの不具合にも遭遇したため、それらを回避する仕組みも追加しました。

以下は、実際に実行して得られた結果の一部です。

 

※qwen3.5:4bによる結果

 

 

※Kimi-2.6



さらに連続して解析させると・・・。

 

 

 

 

できたもの。

github.com

 

前回まで

bwgift.hatenadiary.jp