📚
LibreChatを外から、LMstudioで動かしてみた
LibreChatを外から、LMstudioで動かしてみた
はじめに
この記事では、LibreChatからローカルPCとリモートPC(TailScale経由)の両方にあるLM Studioを使うための設定方法と、設定時によくある ZodError
というエラーの解決策を短くまとめます。
対象: 複数LM Studioを使いたい方、librechat.yaml
の設定で困っている方。
やりたいこと
- 複数LM Studio接続: ローカルとリモート(TailScale経由)のLM StudioにLibreChatから接続。
-
モデル自動取得: 各LM Studioの利用可能モデルをLibreChatに自動認識させる (
Workspace: true
)。
設定手順とエラー解決
1. 前提
- Docker / Docker Compose 環境
- LibreChat (Dockerで動作)
- LM Studio (ローカル・リモートPCにインストール、サーバー起動、リモート側は外部アクセス許可)
- TailScale などリモート接続手段
librechat.yaml
の編集
2. LibreChatの設定ファイル librechat.yaml
の endpoints.custom:
リストに、LM Studioの設定を追加します。
# librechat.yaml の endpoints.custom: リスト内に追加
# ---- リモートLMStudio 設定例 (自宅Desktopなど) ----
- name: 'LMStudio_Desktop' # (1) ユニークな内部名
apiKey: 'dummy_key_desktop' # (2) ダミーAPIキー (必須)
baseURL: 'http://<TailScale IP>:<Port>/v1' # (3) 例: 'http://100.x.x.x:1234/v1' ← /v1 必須!
models:
fetch: true # (4) モデルリスト自動取得
default: ['<remote_model_name>'] # (5) fetch:true でも必須!実際に使うモデル名
titleConvo: true # (6) タイトル自動生成 (任意)
titleModel: '<remote_model_name>' # (7) default 内のモデル名指定 (インデント注意!)
modelDisplayLabel: 'LM Studio (Remote)' # (8) UI表示名
# ---- ローカルLMStudio 設定例 ----
- name: 'LMStudio_Local'
apiKey: 'dummy_key_local'
baseURL: 'http://host.docker.internal:1234/v1' # Dockerからホストへ
models:
fetch: true
default: ['<local_model_name>'] # ローカルで使うモデル名
titleConvo: true
titleModel: '<local_model_name>'
modelDisplayLabel: 'LM Studio (Local)'
設定ポイント:
-
(3)
baseURL
: 必ず末尾に/v1
を付けてください。 -
(5)
models.default
:Workspace: true
でも、実際に使うモデル名を配列[]
で最低1つ指定必須です。 -
(7)
titleModel
:models.default
内のモデル名を指定します。インデントが他のキーとズレるとエラーの原因になります!
3. 設定反映とエラー対応
-
librechat.yaml
を保存。 - LibreChatを再起動:
docker-compose down && docker-compose up -d --build
- ログ確認:
docker-compose logs api
もしログに ZodError
(特に path
が models.default
を指していて received: undefined
) が表示されたら、ほぼ YAMLのインデントミス です。
エラー原因 (よくある例: インデントのズレ):
# NG例: titleModel のインデントが深い
titleConvo: true
titleModel: '<remote_model_name>' # ← これが原因でエラーに!
修正:
# OK例: 他のキーと同じインデントレベルに修正
titleConvo: true
titleModel: '<remote_model_name>' # ← インデントを揃える
インデント(行頭のスペース)を他のキー(name
, apiKey
, models
, titleConvo
, modelDisplayLabel
など)と同じレベルに修正してください。
4. 最終確認
インデント修正後、再度LibreChatを再起動し、エラーが出ないことを確認します。
LibreChatのUIで、追加したエンドポイント(例: LM Studio (Remote)
)が表示され、モデルリストが読み込まれ、チャットが正常に動作すれば完了です。
重要ポイントまとめ
-
baseURL
の末尾には/v1
が必須。 -
models.fetch: true
でもmodels.default
に最低1モデル指定が必須。 - YAMLのインデントは超重要!
ZodError
の大半はこれが原因。 - リモート接続時は、LM Studio側の外部アクセス許可とファイアウォール設定も確認。
おわりに
これで複数のLM StudioをLibreChatから簡単に切り替えて使えるようになります。設定で困った際の参考になれば幸いです。
Discussion