ハイパーマッスルエンジニア

Vim、ShellScriptについてよく書く

LibreChat でコード実行(Code Interpreter)、ファイル添付をできるようにする!

 

今回は GPT クローンの「LibreChat」でファイル添付、コード実行(Code Interpreter)をできるようにする。
最新の LibreChat で環境構築している人は特に設定せず利用できるはずだが、もしかしたら自分のように以前環境構築してそのままという人は「OpenAI だとファイルを添付できない」「Assistant Builder でアシスタントが保存できない」といった問題があるかもしれない。特に「LibreChat で Command R+ を使えるようにする」の記事を見て環境構築した人は対象となる。
今回はこの「添付ファイルの問題」と「Assistant Builder の問題」を解決する。

OpenAI でファイルが添付できない問題

OpenAI を選択したときだけ添付ファイルのアイコンが表示されないことがある。

OpenAI を選択したときだけ表示されない

他のクライアントを選択したときは表示される

原因は、設定ファイルであるlibrechat.yaml で設定がオフになっていたからだった。
下記のようにlibrechat.yaml内のfileConfig をコメントアウトすれば OK。

version: 1.0.5
cache: true
+ # fileStrategy: "firebase"  # If using Firebase CDN
+ # fileConfig:
+ #   endpoints:
+ #     assistants:
+ #       fileLimit: 5
+ #       # Maximum size for an individual file in MB
+ #       fileSizeLimit: 10
+ #       # Maximum total size for all files in a single request in MB
+ #       totalSizeLimit: 50
+ #       # In case you wish to limit certain filetypes
+ #       # supportedMimeTypes:
+ #       #   - "image/.*"
+ #       #   - "application/pdf"
+ #     openAI:
+ #     # Disables file uploading to the OpenAI endpoint
+ #       disabled: true
+ #     default:
+ #       totalSizeLimit: 20
+ #     # Example for custom endpoints
+ #     # YourCustomEndpointName:
+ #     #   fileLimit: 2
+ #     #   fileSizeLimit: 5
+ #   # Global server file size limit in MB
+ #   serverFileSizeLimit: 100
+ #   # Limit for user avatar image size in MB, default: 2 MB
+ #   avatarSizeLimit: 4

昔の librechat.yaml.example ではデフォルトでopenAI がdisabled: trueになっていたため、表示されなくなっていた。最新の LibreChat のlibrechat.yaml.exampleでは、デフォルトでここがコメントアウトされているため問題ない。
再度docker-compose up --buildで立ち上げ直すと、表示されるようになる。

OpenAI でも添付ファイルのアイコンが表示され、画像が読み込めている

コード実行(Code Interpreter)できるようにする

LibreChat でコード実行(Code Interpreter)をするには、Assistant Builder を利用する。Assistant Builder とは、OpenAI のAssistants APIを利用するもので、Python によるコード実行やファイル検索、関数呼び出しが可能となる。これにより CSV を解析してグラフにしたり、PDF を読み込んで要約などができるようになる。

LibreChat で Code Interpreter が可能になる

まず、.envに下記を追記する

ASSISTANTS_API_KEY=xxxxxxxxxxxxxx

KEY は OpenAI の API キーと同じで OK。

続いてlibrechat.yamlassistants の項目をコメントアウト。すでにコメントアウトされている人は何もしなくて OK。

endpoints:
+  # assistants:
+  #   # Disable Assistants Builder Interface by setting to `true`
+  #   disableBuilder: false
+  #   # Polling interval for checking assistant updates
+  #   pollIntervalMs: 750
+  #   # Timeout for assistant operations
+  #   timeoutMs: 180000
+  #   # Should only be one or the other, either `supportedIds` or `excludedIds`
+  #   supportedIds: ["asst_supportedAssistantId1", "asst_supportedAssistantId2"]

準備完了。docker-compose up --buildで立ち上げ直すと、Assistant が選択できるようになっている。

Assistant を選択すると、右サイドバーに Assistant Builder が表示される

Assistant を選択すると右サイドバーに Assistant Builder が表示されるので、ここでアシスタントを作成する。
名前をつけて、モデルを選択後、Code Interpreterにチェックをし、保存ボタンをクリック。
※モデルの選択時にgpt-4oが表示されない場合、.envに下記を追加しよう。

ASSISTANTS_API_KEY=xxxxxxxxxxxxxx
+ ASSISTANTS_MODELS=gpt-4o,gpt-3.5-turbo-0125,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-16k,gpt-3.5-turbo,gpt-4,gpt-4-0314,gpt-4-32k-0314,gpt-4-0613,gpt-3.5-turbo-0613,gpt-3.5-turbo-1106,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview

.envに上記を追記した後、docker-compose up -dで起動し直すと、gpt-4oが選択できるようになっているはず。

アシスタントの保存が成功すると、作成したアシスタントが選択できるようになるので選択する。

作成したアシスタントが選択できるようになる

アシスタント選択後、ファイルを添付してチャットしてみよう。Code Interpreter が実行されるはず!

CSV の解析、グラフにすることができた!

ちなみにここで作成したアシスタントはOpenAI > ダッシュボード > Assistantで確認が可能。

OpenAI に保存されていることが確認できる

また、Assistant API の料金体系はgpt-4oとは異なるので注意したい。

Assistant API と gpt-4o は別料金

終わりに

今回の設定で LibreChat でファイル添付、コード実行(Code Interpreter)ができるようになりました。
LibreChat はデモサイトもあるので、「あれ、これ LibreChat ではできないのかな?」と思ったら一度こちらで確認してみると良いかもしれません。
デモサイトではできるのに自分の環境ではできないということは、自分の設定ファイルになにか問題がある可能性が高いです。
また、LibreChat のChangeLogではアップデートの内容がわかりやすく記載してあるので、チェックしてみると楽しいです。