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

自動モデレーション

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

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

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

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

セットアップ

以下は、modシステムを利用および設定するための関連するすべての環境変数です。これらは /.env.example ファイルにも記載されており、自身の .env ファイルに設定する必要があることに注意してください。

注意: 現在、これらの値のほとんどは .env ファイルを通じて設定されていますが、間もなく librechat.yaml 設定ファイル からのみ設定されるように移行される可能性があります。

違反、間隔、期間

KeyTypeDescriptionExample
BAN_VIOLATIONSboolean違反によるユーザーの禁止を有効にするかどうか(禁止してもログは記録されます)。BAN_VIOLATIONS=true
BAN_DURATIONintegerユーザーおよび関連するIPを禁止する期間(ミリ秒単位)。BAN_DURATION=1000 * 60 * 60 * 2
BAN_INTERVALintegerユーザーのスコアが間隔のしきい値に達するか超えるたびに、そのユーザーはBANされます。BAN_INTERVAL=20

各違反のスコア

KeyTypeDescriptionExample
LOGIN_VIOLATION_SCOREintegerログイン違反のスコア。LOGIN_VIOLATION_SCORE=1
REGISTRATION_VIOLATION_SCOREinteger登録違反に対するスコア。REGISTRATION_VIOLATION_SCORE=1
CONCURRENT_VIOLATION_SCOREinteger同時違反のスコアCONCURRENT_VIOLATION_SCORE=1
MESSAGE_VIOLATION_SCOREintegerメッセージ違反のスコア。MESSAGE_VIOLATION_SCORE=1
NON_BROWSER_VIOLATION_SCOREintegerブラウザ以外の違反に対するスコア。NON_BROWSER_VIOLATION_SCORE=20
IMPORT_VIOLATION_SCOREintegerインポートされた会話の違反に対するスコア。IMPORT_VIOLATION_SCORE=1
FORK_VIOLATION_SCOREinteger会話フォーク違反のスコア。FORK_VIOLATION_SCORE=1
TTS_VIOLATION_SCOREintegerテキスト読み上げ違反のスコア。TTS_VIOLATION_SCORE=0
STT_VIOLATION_SCOREinteger音声テキスト変換の違反に対するスコア。STT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCOREintegerファイルアップロード違反のスコア。FILE_UPLOAD_VIOLATION_SCORE=0
RESET_PASSWORD_VIOLATION_SCOREintegerパスワードリセット違反のスコア。RESET_PASSWORD_VIOLATION_SCORE=0
VERIFY_EMAIL_VIOLATION_SCOREintegerメール認証違反のスコア。VERIFY_EMAIL_VIOLATION_SCORE=0
TOOL_CALL_VIOLATION_SCOREintegerツール呼び出し違反のスコアTOOL_CALL_VIOLATION_SCORE=0
CONVO_ACCESS_VIOLATION_SCOREinteger会話アクセス違反のスコア。CONVO_ACCESS_VIOLATION_SCORE=0

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

KeyTypeDescriptionExample
LOGIN_MAXnumberLOGIN_WINDOW ごとの IP あたりの最大ログイン許可数。デフォルトは `7` です。
LOGIN_WINDOWnumberLOGIN_MAX回のログイン試行を判定する時間枠を分単位で指定します。デフォルトは `5` です。
REGISTER_MAXnumberREGISTER_WINDOW ごとに許可されるIPあたりの最大登録数。デフォルトは `5` です。
REGISTER_WINDOWnumberREGISTER_MAX回の登録を許可する時間枠を分単位で指定します。デフォルトは `60` です。

メッセージのレート制限

KeyTypeDescriptionExample
LIMIT_CONCURRENT_MESSAGESboolean1リクエストあたりのユーザーのメッセージ送信数を制限するかどうか。LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAXintegerユーザーが1リクエストあたりに送信できる最大メッセージ数。CONCURRENT_MESSAGE_MAX=2

注: 両方の制限機能を利用することも可能ですが、デフォルトではIPによる制限のみが適用されます。

メッセージのレート制限(IPごと)

KeyTypeDescriptionExample
LIMIT_MESSAGE_IPbooleanIPアドレスが `MESSAGE_IP_WINDOW` ごとに送信できるメッセージ数を制限するかどうか。LIMIT_MESSAGE_IP=true
MESSAGE_IP_MAXinteger`MESSAGE_IP_WINDOW` ごとに1つのIPが送信できるメッセージの最大数。MESSAGE_IP_MAX=40
MESSAGE_IP_WINDOWinteger`MESSAGE_IP_MAX` メッセージの制限時間を分単位で指定します。MESSAGE_IP_WINDOW=1

メッセージレート制限(ユーザーごと)

KeyTypeDescriptionExample
LIMIT_MESSAGE_USERboolean`MESSAGE_USER_WINDOW` ごとにユーザーが送信できるメッセージ数を制限するかどうか。LIMIT_MESSAGE_USER=false
MESSAGE_USER_MAXinteger`MESSAGE_USER_WINDOW` ごとにユーザーが送信できるメッセージの最大数。MESSAGE_USER_MAX=40
MESSAGE_USER_WINDOWinteger`MESSAGE_USER_MAX` メッセージの期間を分単位で決定します。MESSAGE_USER_WINDOW=1

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

ユーザーが会話をインポートできる頻度を制限し、悪用を防ぎます。

注: 両方の制限機能を利用することも可能ですが、デフォルトではIPによる制限のみが適用されます。

会話インポートのレート制限(IPごと)

KeyTypeDescriptionExample
LIMIT_IMPORT_IPboolean`IMPORT_IP_WINDOW` ごとに1つのIPが実行できる会話インポートの回数を制限するかどうか。LIMIT_IMPORT_IP=true
IMPORT_IP_MAXinteger`IMPORT_IP_WINDOW` ごとに1つのIPが実行できる会話インポートの最大数。IMPORT_IP_MAX=100
IMPORT_IP_WINDOWinteger`IMPORT_IP_MAX` インポートの期間を分単位で決定します。IMPORT_IP_WINDOW=1

会話インポートのレート制限(ユーザーごと)

KeyTypeDescriptionExample
LIMIT_IMPORT_USERboolean`IMPORT_USER_WINDOW` ごとにユーザーが実行できる会話インポートの回数を制限するかどうか。LIMIT_IMPORT_USER=false
IMPORT_USER_MAXintegerユーザーが `IMPORT_USER_WINDOW` ごとに実行できる会話インポートの最大数。IMPORT_USER_MAX=50
IMPORT_USER_WINDOWinteger`IMPORT_USER_MAX` インポートの時間枠を分単位で決定します。IMPORT_USER_WINDOW=1

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

ユーザーが会話をフォークできる頻度を制限し、悪用を防止します。

注: 両方の制限機能を利用することも可能ですが、デフォルトではIPによる制限のみが適用されます。

会話のフォークに関するレート制限(IPごと)

KeyTypeDescriptionExample
LIMIT_FORK_IPbooleanIPアドレスごとに `FORK_IP_WINDOW` 内で作成できる会話フォークの数を制限するかどうか。LIMIT_FORK_IP=true
FORK_IP_MAXinteger`FORK_IP_WINDOW` ごとに1つのIPが作成できる会話フォークの最大数。FORK_IP_MAX=30
FORK_IP_WINDOWinteger`FORK_IP_MAX` フォークの期間を分単位で指定します。FORK_IP_WINDOW=1

会話フォークのレート制限(ユーザーごと)

KeyTypeDescriptionExample
LIMIT_FORK_USERboolean`FORK_USER_WINDOW` ごとにユーザーが作成できる会話フォークの数を制限するかどうか。LIMIT_FORK_USER=false
FORK_USER_MAXinteger`FORK_USER_WINDOW` ごとにユーザーが作成できる会話フォークの最大数。FORK_USER_MAX=7
FORK_USER_WINDOWinteger`FORK_USER_MAX` フォークの期間を分単位で決定します。FORK_USER_WINDOW=1

不正なモデルリクエスト

注: 不正なモデルリクエストは、サードパーティが自動化されたスクリプトを通じてサーバーへのアクセスを試みていることを意味するため、ほぼ例外なく悪意のあるものです。そのため、5を下回らない比較的高いスコアを推奨します。

KeyTypeDescriptionExample
ILLEGAL_MODEL_REQ_SCOREinteger不正なモデルリクエストに対するスコア。ILLEGAL_MODEL_REQ_SCORE=5

OpenAI テキストモデレーション

KeyTypeDescriptionExample
OPENAI_MODERATIONboolean**OpenAI** および **Plugins** エンドポイントで OpenAI モデレーションを有効にするかどうか。OPENAI_MODERATION=false
OPENAI_MODERATION_API_KEYstringOpenAI APIキー。OPENAI_MODERATION_API_KEY=

リバースプロキシによっては動作しない可能性があることに注意してください:

KeyTypeDescriptionExample
OPENAI_MODERATION_REVERSE_PROXYstring注: デフォルトではコメントアウトされています。すべてのリバースプロキシで動作するわけではありません。# OPENAI_MODERATION_REVERSE_PROXY=

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