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

自動モデレーション

自動モデレーションシステムは、ユーザーの違反を追跡するためにスコアリングメカニズムを使用します。ユーザーが過度なログイン、登録、メッセージ送信などの行為を行うと、違反スコアが蓄積されます。設定されたしきい値に達すると、そのユーザーおよびIPアドレスは一時的にBAN(利用停止)されます。このシステムは、急激な活動や疑わしい活動を監視およびペナルティを課すことで、プラットフォームのセキュリティを確保します。

自動モデレーションシステム (オプション)

自動モデレーションシステムは、ユーザーの違反を追跡するためにスコアリングメカニズムを使用します。ユーザーが過度なログイン、登録、メッセージ送信などの行為を行うと、違反スコアが蓄積されます。設定されたしきい値に達すると、そのユーザーおよびIPアドレスは一時的にBAN(利用停止)されます。このシステムは、急激な活動や疑わしい活動を監視およびペナルティを課すことで、プラットフォームのセキュリティを確保します。

本番環境では、サーバーを過剰なリクエストから確実に保護するために、CloudflareなどのDDoS対策を導入すべきですが、これらの変更を行うことで、デプロイされたインスタンスをプロキシとして悪用しようとする単独または少数の悪意ある攻撃者から、大部分を守ることができます。

注記

  • 基本的なセキュリティと違反ログ(BAN、同時メッセージ送信、レート制限超過)のためにCachingを使用します。
    • 近い将来、本番環境向けに Redis サポートを追加する予定です。これは現在のキャッシュ設定に簡単に組み込むことができます。
  • レート制限(ログイン/登録/メッセージング)のいずれかを超過することは違反とみなされ、デフォルトのスコアは1となります。
  • ブラウザ以外のオリジンは違反です
  • 各違反に対するデフォルトスコアは設定可能です
  • 制限機能や禁止機能のいずれかを有効にすると、キャッシュおよびログ記録が有効になります。
  • 違反ログは、ログ記録が開始されると作成されるデータフォルダー内にあります:librechat/data
    • 違反のみがログに記録されます
    • violations.json は、ユーザーごとの各違反の合計回数を記録します。
    • logs.json は、ユーザーごとの個別の違反を記録します。
  • Ban logsはMongoDBのlogsコレクションに保存されます。これらはBAN期間中のみ存在するため、一時的なものです。
    • 手動でBANを解除したい場合は、データベースから手動でそのユーザーを削除し、サーバーを再起動する必要があります。
    • これに対する Redis サポートも計画されています。

レートリミッターの種類

ログインおよび登録のレート制限

単一のIPアドレスから一定期間内に行えるログイン試行回数や新規アカウント登録数を制限することで、ブルートフォース攻撃やスパム登録を防止します。

メッセージレート制限

スパムや不正利用を防ぐため、ユーザーがメッセージを送信できる頻度を制御します:

  • 同時メッセージ制限: ユーザーが同時に送信できるメッセージ数を制限します(複数のタブを開いて制限を回避することを防ぎます)
  • メッセージ頻度制限: メッセージを送信できる頻度を制御します。IPアドレスおよび個々のユーザーの両方で設定可能です。

会話インポートのレート制限

会話インポート機能の悪用を防ぐため、一定期間内にインポートできる会話の数を制限します。これは以下を防ぐのに役立ちます:

  • サーバーに過度な負荷をかける可能性のある大量データインポート
  • インポートされたデータでシステムを氾濫させようとする自動化スクリプト
  • 大量のインポート処理によるリソースの枯渇

デフォルトの制限:

  • IPベース: 1分あたり100インポート
  • ユーザーベース: 1分あたり50インポート (デフォルトでは無効)

会話のフォーク(分岐)に関するレート制限

ユーザーが既存の会話のフォーク(コピー)を作成できる頻度を制御します。これにより、以下を防ぎます:

  • 大量の会話複製によるデータベースの過度な肥大化
  • fork操作によるリソース枯渇
  • スパムやデータ収集を目的としたフォーク機能の悪用

デフォルトの制限:

  • IPベース: 1分あたり30フォーク
  • ユーザーベース: 1分あたり7フォーク (デフォルトでは無効)

ファイルアップロードのレート制限

librechat.yaml ファイルを通じて設定され、ストレージの乱用や帯域幅の枯渇を防ぐために、ユーザーがファイルをアップロードできる頻度を制御します。

Text-to-Speech (TTS) レート制限

ユーザーがテキスト読み上げ変換をリクエストできる頻度を制御します。これにより、以下を防ぎます:

  • 過剰なAPI利用コスト
  • 音声生成によるサーバーリソースの枯渇
  • データ収集を目的としたTTS機能の悪用

librechat.yaml ファイルを通じて設定され、IP ごとおよびユーザーごとの制限をカスタマイズ可能です。

Speech-to-Text (STT) のレート制限

ユーザーが文字起こしのために音声を送信できる頻度を制御します。これにより、以下を防ぎます:

  • 過剰なAPI利用コスト
  • 音声処理によるサーバーリソースの枯渇
  • 不正な文字起こしサービスのためのSTT機能の悪用

librechat.yaml ファイルを通じて設定され、IP ごとおよびユーザーごとの制限をカスタマイズ可能です。

パスワードリセットのレート制限

ユーザーがパスワードリセットメールをリクエストできる頻度を制御します。これにより、以下を防ぎます:

  • メール爆弾攻撃
  • パスワードリセットシステムの悪用
  • メールサービスの過剰な使用

メール認証のレート制限

ユーザーがメール認証メッセージをリクエストできる頻度を制御します。これにより、以下を防ぎます:

  • 検証システムを通じたスパム攻撃
  • メールサービスの悪用
  • 検証リクエストによるリソースの枯渇

ツール呼び出しのレート制限

ユーザーがツールやプラグインを呼び出せる頻度を制御します。これにより、以下を防ぎます:

  • 統合されたツールからの過剰なAPI使用
  • 外部サービス統合の悪用
  • ツール処理によるリソース枯渇

会話アクセスレート制限

ユーザーが会話にアクセス、またはアクセスを試みる頻度を制御します。これにより、以下を防ぎます:

  • 不正なアクセス試行
  • データスクレイピング攻撃
  • 過剰なデータベースクエリ

レートリミッター

このプロジェクトの現在のレートリミッターは以下の通りです(デフォルト値については、セットアップの項を参照してください)。

  • ログインおよび登録のレート制限
  • Optional: 同時メッセージ制限(ユーザーごとに一度にX件のメッセージまで)
  • Optional: メッセージ制限(ユーザーがメッセージを送信できる頻度。IPおよびユーザーごとに設定可能)
  • Optional: 会話のインポート制限(ユーザーが会話をインポートできる頻度。IPおよびユーザーごとに設定可能)
  • Optional: 会話のフォーク制限(ユーザーが会話をフォークできる頻度。IPおよびユーザーごとに設定可能)
  • Optional: テキスト読み上げ (TTS) の制限(librechat.yaml 設定ファイルから設定可能)
  • Optional: Speech-to-Text (STT) の制限(librechat.yaml 設定ファイル を通じて設定可能)
  • Optional: ファイルアップロードの制限 (librechat.yaml 設定ファイル を通じて設定可能)

詳細については、こちらで提供されている設定ガイドを参照してください: Automated Moderation

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