LibreChat : マルチユーザー向けのLLM用ウェブインターフェース locaux
LibreChatは、Dockerでインストールするオープンソースのウェブチャットインターフェース(MITライセンス)です。Ollamaや任意のOpenAI互換APIに接続でき、チーム全員のアカウントを管理できます。また、外部ツールを接続するためのMCPプロトコルに対応したAIエージェントも追加できます。最初のインスタンスを動作する状態にするまで約30分を見込んでください。ローカルモデル自体のデプロイにかかる時間は、これとは別に必要です。
LibreChat は、MIT ライセンスのオープンソース Web チャットインターフェースで、どのようなモデルにも接続できます。Ollama が提供するローカルモデル、OpenAI 互換 API、あるいは複数のモデルを同じウィンドウで同時に使えます。Docker を使って自分の環境にインストールし、アカウントを作成すれば、会話を一切ネットワークの外に出さずに、チームで AI による支援付きのチャットツールを利用できます。このプロジェクトには、エージェントと、外部ツールを接続するための MCP プロトコルへの対応も追加されています。ここでは、動作させるために必要なものと、その代わりに求められる負担を説明します。
#LibreChatとは何か
LibreChatは、ローカル環境の「インターフェース」側を担います。モデルはOllama、vLLM、llama.cppなどで別途動作し、LibreChatは会話に付随する機能を提供します。会話履歴、アカウントと認証、プリセット、添付ファイル、エージェント、過去のやり取りの検索です。プロジェクトはMITライセンスで公開されているため、許可される利用方法に不明な点はほとんどありません。商用利用を含め、利用、変更、再配布が可能で、コードを還元する義務はありません。
このプロジェクトは、主要なAIプロバイダーすべてをプライバシー重視の単一インターフェースに統合する、セルフホスト型AIチャットプラットフォームと自ら説明しています。通常のチャットに加えて、エージェント、MCPプロトコルへの対応、コードや図を見やすく表示するアーティファクト、コードインタープリター、カスタムアクション、そして単一の端末よりも企業での利用を想定したマルチユーザー認証を提供します。
最も際立つ設計上の特徴は、複数のプロバイダーに対応していることです。同じ会話の中で、ローカルモデルからリモートモデルへ切り替えられます。便利な機能ですが、データを一切外部に出さないことが目的なら、注意深く確認すべき設定でもあります。技術的には外部モデルを利用できるものの、設定で無効にできます。一度設定して終わりにせず、更新のたびに確認する価値があります。
#どのような人に向いているか
お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
| 状況 | 適した選択肢 |
|---|---|
| 一人、一台、管理ゼロ | オールインワンのデスクトップアプリ |
| チーム、アカウント、共有サーバー | LibreChat |
| 軽量なウェブインターフェースを備えた1台の端末 | Open WebUI — 専用チュートリアルを参照 |
| APIおよびログ記録を用いたアプリケーションの構築 | LLMを活用したアプリケーション開発プラットフォーム |
選択の目安となるのはユーザー数です。複数の人が認証して、それぞれ自分の会話履歴にアクセスする必要がある場合、デスクトップアプリでは不十分になります。LibreChatはこうした用途向けに作られており、OAuth2、LDAP、またはメールアドレスを使った通常のアカウントによる認証、組み込みのモデレーション、ユーザーごとのトークン消費量の追跡に対応しています。
もう一つの、やや見えにくい判断基準は、手作業で編集する設定ファイルではなく、Web管理画面が必要かどうかです。小規模な技術チームなら、Open WebUIといくつかの設定で十分に運用できます。一方、技術職以外のメンバーがいるチームや、数回のクリックで役割を変更したり、特定の人のアクセスを停止したりする必要があるチームには、LibreChatに付属する管理画面のメリットがより大きくなります。
#Docker でインストールする
- 01リポジトリと環境設定ファイルを取得するこのプロジェクトには、Docker Composeの構成ファイルと、コピーして使うサンプルファイルが用意されています。編集するのは後者のファイルで、Docker Composeの構成ファイルそのものではありません。
- 02シークレットを生成する暗号化キーとセッションシークレットを、テンプレートファイルに記載されたサンプル値のままにしてはいけません。プロジェクトでは、それらを正しく生成する方法が説明されています。わずか5分の作業で、初日から誰でもアクセスできてしまう無防備な状態を避けられます。
- 03スタックを起動するプロジェクトが提供する公式のDocker Compose構成を使うと、ウェブアプリ、データベース、管理パネルがまとめて起動します。その後、ローカルポートでインターフェースにアクセスできるようになり、最初の管理者アカウントを作成できます。
- 04最初のアカウントを作成してから、新規登録を停止するインターネットからアクセスできるインスタンスでユーザー登録を開放したままにすることは、訪れた誰にでも自分のGPUを使わせ、その電気代まで負担するようなものです。
更新の原則は、データベースを使うほかのアプリケーションと同じです。新しいイメージを取得する前にリリースノートを読み、バックアップを取ってから更新します。このプロジェクトでは、エージェント、MCP、管理パネルなどの新機能が定期的に公開されています。だからこそ各リリースを注意深く確認すべきであり、必要な手順を省略してよい理由にはなりません。
#Ollama に接続
LibreChat は専用の設定ファイルでプロバイダーを宣言し、Ollama を OpenAI 互換のエンドポイントとして扱います。繰り返し発生する落とし穴は二つありますが、特定すれば数分で両方とも解決できます。
- localhost はコンテナを指す。
- Docker内から接続するには、コンテナから見たホストのアドレスが必要です。また、Ollamaはローカルループバックだけでなく、ネットワークインターフェースでも待ち受ける必要があります。
- モデル一覧
- 設定によって、モデルはサーバーから自動的に取得されるか、手動で登録されます。インターフェースのモデル一覧が空の場合、ほとんどの場合はベースアドレスが間違っているのであって、モデルがないわけではありません。
複数人が同時にチャットを行う場合、問題はインターフェースではなく推論サーバーになります。単一ユーザー向けに設計されたサーバーはリクエストを順番に処理するため、三人目のユーザーは待たされます。これは、チームがピーク時の応答時間の劣化に慣れる前に、早期に行うべきアーキテクチャの選択です。
LibreChatでは、同じインスタンス内で複数のプロバイダーを組み合わせることもできます。普段の作業にはローカルモデルを使い、ローカルのハードウェアでは対応しきれない単発のタスクにはリモートのプロバイダーを使う、といった運用です。会話ごとに切り替えられるのは便利ですが、まさにそのため、利用ログを見て後から気づくのではなく、どのプロバイダーの利用を許可するかを事前に決めておく必要があります。
#自分のドキュメントとチャットする
LibreChatは会話にファイルを添付し、その内容に基づいて応答できます。技術的には、これはインターフェースとは別に存在するサービスです——プロジェクトによって別途公開されたRAG APIサービスであり、ドキュメントを分割し、ベクトルにエンコードして保存します。このサービスは別途展開され、埋め込みモデル(embedding model)を必要とします。これは会話モデルとは異なります。
この種のツールすべてに共通する点が2つあります。スキャン画像だけのPDFには、光学文字認識(OCR)を施すまでテキストがないため、インデックス化しても中身は空になります。また、検索結果の関連性は主に選択した埋め込みモデルに依存します。この点は、英語ではなくフランス語で書かれた文書では特に重要です。
#エージェントとMCPプロトコル
LibreChat は単なるチャットにとどまらず、Model Context Protocol(MCP)に対応した AI エージェントを提供します。MCP により、エージェントは既存の知識だけで回答するのではなく、外部のツールサーバーに接続できます。エージェントはファイル検索やコード実行も利用でき、インスタンス全体ではなく、特定のユーザーやグループと共有することもできます。コミュニティのエージェントカタログでは、他の人が設定済みのエージェントを見つけてデプロイできるため、新しい用途のたびにゼロから作り直す必要がありません。
ブラウザからアクセスできる管理画面で、ユーザー、グループ、ロール、権限を管理し、スタックを再デプロイせずに設定をその場で変更できます。この管理画面は公式のDocker構成に含まれているため、追加のサービスを別途インストールする必要はありません。また、設定ファイルを編集する代わりに、数クリックで特定の人のアクセスや、特定のプロバイダーへのアクセスを停止できます。
#複数ユーザーで使う場合:設定すべき項目
- 新規登録は無効
- 管理者がアカウントを作成するか、登録できるメールアドレスを特定のドメインに限定します。
- 承認された提供元
- データを一切外部に出さないと約束している場合は、利用ルールで禁止するのではなく、設定でリモートプロバイダーを無効にしてください。口頭で指示するだけでは、誰かがワンクリックで会話をリモートプロバイダーに切り替えることを防げません。
- 割り当て
- 共有のローカルモデルでは利用料金の請求はありませんが、処理待ちの列はできます。ユーザーごとの制限と、管理パネルに組み込まれた使用量の追跡機能を組み合わせることで、最初に接続した人にGPUを独占させず、全員が快適に利用できるようにします。
- 保持
- 会話はデフォルトでデータベースに無期限に保存されます。適用される規制に合わせて保存期間を決め、社内ポリシーに明記したうえで、文書上の規定にとどめず、実際に運用してください。
- エージェントとMCPツール
- 誰がエージェントを作成するか、MCPサーバーを接続するか、またはチームの共有カタログにエージェントを公開するかを決定できます。誤って設定されたエージェントは、作成者本人の名義で動作しますが、その本人の名義だけに限定されるわけではありません。
#制限
LibreChatは管理が必要なアプリケーションです:更新、バックアップ、シークレット、データベース。ダブルクリックで実行できる実行ファイルではなく、複数のユーザーがいる場合にのみその労力が意味を持ちます。1人のみであれば、オールインワンのデスクトップアプリケーションの方が、はるかに少ない管理で同じ結果を得られます。
一部の高度な機能には、文書についてチャットするサービス、コード実行、一部のエージェントなど、追加のサービスが必要です。そのため、すでにモデルをホストしているマシンでは、必要なメモリ容量が増え、監視するコンテナも増えます。性能が控えめなサーバーでは、すべてを一度に起動するより、これらの機能を一つずつ有効にして、その都度メモリ使用量を確認するほうがよいでしょう。
最後に、インターフェースは回答の質を変えません。80億パラメータのモデルは、画面がどれほど洗練されていても、接続されたエージェントやツールがどれほど多くても、80億パラメータのモデルとして回答します。
#FAQ
LibreChatは無料ですか?+
完全にオフラインで動作しますか?+
モデルリストが空になっているのはなぜですか?+
何人のユーザーに対応できますか?+
LibreChatにはGPUが必要ですか?+
LibreChatはエージェントやMCPプロトコルをサポートしていますか?+
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。