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

プロジェクトアーキテクチャ

LibreChatのモノレポワークスペース構造とパッケージ境界の概要。

Monorepo 構造

LibreChatは、明確に定義されたワークスペースの境界を持つモノレポとして構成されています:

ワークスペース言語サイド依存関係目的
/apiJS (レガシー)バックエンドpackages/api, packages/data-schemas, packages/data-provider, @librechat/agentsExpressサーバー — ここでの変更は最小限に抑える
/packages/apiTypeScriptバックエンドpackages/data-schemas, packages/data-provider新しいバックエンドコードはここに配置 (TSのみ、/apiから利用)
/packages/data-schemasTypeScriptバックエンドpackages/data-providerデータベースモデル/スキーマ、バックエンドプロジェクト間で共有可能
/packages/data-providerTypeScript共有共有API型、endpoint、データサービス — フロントエンドとバックエンドの両方で使用
/clientTypeScript/Reactフロントエンドpackages/data-provider, packages/clientフロントエンドSPA
/packages/clientTypeScriptフロントエンドpackages/data-provider共有フロントエンドユーティリティ

主要な原則

  • /packages/api 内のすべての新しいバックエンドコードは TypeScript で記述する必要があります
  • /api への変更は最小限に留めてください。/packages/api を呼び出す薄い JS ラッパーにしてください。
  • データベース固有の共有ロジックは /packages/data-schemas に配置します。
  • フロントエンド/バックエンドで共有されるAPIロジック(endpoints、types、data-service)は、/packages/data-provider に配置します。

ビルドとインストール

コマンド目的
npm run smart-reinstall依存関係のインストール(ロックファイルが変更された場合)+ Turborepo経由でのビルド
npm run reinstallNode/npmのバージョン変更後や、依存関係の状態が疑わしい場合のクリーンインストール
npm run buildTurborepo経由ですべてのコンパイル済みコードをビルド(並列、キャッシュ利用)
npm run frontendすべてのコンパイル済みコードを順次ビルド(レガシーフォールバック)
npm run build:data-provider変更後に packages/data-provider を再ビルド
npm run backendバックエンドサーバーを起動
npm run backend:devファイル監視付きでバックエンドを起動(開発用)
npm run frontend:devHMR付きでフロントエンド開発サーバーを起動(ポート3090、バックエンドの実行が必要)
  • Node.js: v24.16.0
  • npm: v11.16.0
  • データベース: MongoDB
  • バックエンドは http://localhost:3080/ で、フロントエンドの開発サーバーは http://localhost:3090/ で実行されます。

注記

コーディング基準と規約の完全なセットについては、Code Standards and Conventions を参照してください。

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