Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

MongoDB

LibreChatがMongoDBを使用する理由

MongoDBは、その柔軟性、スケーラビリティ、そして多様なデータ構造を効率的に処理できる能力から、LibreChatのコアデータベースとして選ばれました。MongoDBがLibreChatに最適である主な理由は以下の通りです。

MongoDB CompassでLibreChatデータベースを表示している様子

1. 柔軟なデータモデル

MongoDBのドキュメント指向データモデルは、柔軟かつ動的な方法でデータの保存と取得を可能にします。従来のRDB(リレーショナルデータベース)とは異なり、MongoDBは固定されたスキーマを必要としないため、変化するデータ要件への適応が容易です。この柔軟性はLibreChatにとって不可欠であり、会話履歴、ユーザープロフィール、プリセット、APIキーなど、さまざまな種類のデータを厳格なテーブル構造に縛られることなく保存するために活用されています。

2. 会話履歴の効率的な保存

LibreChatの主なユースケースの一つは、会話履歴の保存と取得です。MongoDBはネストされたデータ構造をJSON形式のドキュメントとして保存できるため、メッセージ、タイムスタンプ、メタデータといった複雑なデータ構造を含む会話履歴を保存するのに最適な選択肢となります。

3. 機密データの安全な保存

LibreChatは、APIキーや暗号化されたユーザーパスワードなどの機密データを扱います。MongoDBの組み込みのデータ暗号化機能(保存時および転送時)により、これらの機密情報は安全に保護され、不正アクセスから守られます。

4. 水平スケーラビリティ

LibreChatが成長し、より多くのユーザーを獲得するにつれて、データストレージの要件も増加します。MongoDBの水平スケーラビリティにより、クラスターにサーバーを追加してスケールアウトすることが可能となり、パフォーマンスを損なうことなく、より大量のデータや高いトラフィック負荷を処理する能力を提供します。

5. デバイス間でのアクセシビリティ

LibreChatは、複数のデバイス間でシームレスなエクスペリエンスを提供することを目指しており、ユーザーが異なるデバイスから自身のデータや会話履歴にアクセスできるようにしています。MongoDBのレプリケーションおよびシャーディング機能により、データが一貫して利用可能かつアクセス可能な状態に保たれるため、ユーザーは使用するデバイスに関係なく、中断したところから会話を再開することができます。

6. 開発者の生産性

MongoDBの直感的なクエリ言語と、ツールやライブラリの豊富なエコシステムは、開発サイクルの短縮と開発者の生産性向上に寄与します。これは、オープンソースプロジェクトとして開発者コミュニティからのコラボレーションと貢献を促進するというLibreChatの目標とよく合致しています。

MongoDBの強みを活用することで、LibreChatは多様なデータ構造を効率的に管理・保存し、データのセキュリティと可用性を確保し、ユーザーにシームレスなクロスデバイス体験を提供できます。MongoDBの柔軟性、スケーラビリティ、そして開発者に優しい機能は、LibreChatのコア機能を支える理想的な選択肢となっています。

注記

CPUの互換性

注: SSE4.2、AVXサポート、またはその他の必要なCPU機能を備えていないプロセッサ上でLibreChatを実行している場合は、Dockerインストールでより古く互換性のあるバージョンのMongoDBを使用する必要があります。具体的には、これらの機能がないプロセッサと互換性のある mongo:4.4.18 イメージを使用してください。

LibreChatのDockerインストールでこの古いMongoDBバージョンを使用するには、docker-compose.override.ymlファイルを利用する必要があります。このオーバーライドファイルを使用することで、メインのdocker-compose.ymlファイルに含まれているデフォルトのバージョンを上書きし、使用したいMongoDBのバージョンを指定できます。

docker-compose.override.yml ファイルの使用方法や、Dockerインストール環境で古いバージョンのMongoDBを設定する方法の詳細については、Docker Override Configuration Guide を参照してください。

このガイドはいかがでしたか?