自動モデレーション
自動モデレーションシステムの構成。これはスコアリングメカニズムを使用してユーザーの違反を追跡します。ユーザーが過度なログイン、登録、メッセージ送信などのアクションを行うと、違反スコアが蓄積されます。設定されたしきい値に達すると、そのユーザーとIPアドレスは一時的に禁止されます。このシステムは、急激なアクティビティや疑わしいアクティビティを監視およびペナルティ化することで、プラットフォームのセキュリティを確保します。
自動モデレーションシステムは、ユーザーの違反を追跡するためにスコアリングメカニズムを使用します。ユーザーが過度なログイン、登録、メッセージ送信などの行為を行うと、違反スコアが蓄積されます。設定されたしきい値に達すると、そのユーザーおよびIPアドレスは一時的にBAN(利用停止)されます。このシステムは、急激な活動や疑わしい活動を監視およびペナルティを課すことで、プラットフォームのセキュリティを確保します。
本番環境では、サーバーを過剰なリクエストから確実に保護するために、CloudflareなどのDDoS対策を導入すべきですが、これらの変更を行うことで、デプロイされたインスタンスをプロキシとして悪用しようとする単独または少数の悪意ある攻撃者から、大部分を守ることができます。
詳細については、こちらで提供されているユーザーガイドを参照してください:Automated Moderation
セットアップ
以下は、modシステムを利用および設定するための関連するすべての環境変数です。これらは /.env.example ファイルにも記載されており、自身の .env ファイルに設定する必要があることに注意してください。
注意: 現在、これらの値のほとんどは .env ファイルを通じて設定されていますが、間もなく librechat.yaml 設定ファイル からのみ設定されるように移行される可能性があります。
違反、間隔、期間
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | 違反によるユーザーの禁止を有効にするかどうか(禁止してもログは記録されます)。 | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | ユーザーおよび関連するIPを禁止する期間(ミリ秒単位)。 | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | ユーザーのスコアが間隔のしきい値に達するか超えるたびに、そのユーザーはBANされます。 | BAN_INTERVAL=20 |
各違反のスコア
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | ログイン違反のスコア。 | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | 登録違反に対するスコア。 | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | 同時違反のスコア | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | メッセージ違反のスコア。 | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | ブラウザ以外の違反に対するスコア。 | NON_BROWSER_VIOLATION_SCORE=20 |
| IMPORT_VIOLATION_SCORE | integer | インポートされた会話の違反に対するスコア。 | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | 会話フォーク違反のスコア。 | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | テキスト読み上げ違反のスコア。 | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | 音声テキスト変換の違反に対するスコア。 | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | ファイルアップロード違反のスコア。 | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | パスワードリセット違反のスコア。 | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | メール認証違反のスコア。 | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | ツール呼び出し違反のスコア | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | 会話アクセス違反のスコア。 | CONVO_ACCESS_VIOLATION_SCORE=0 |
ログインおよび登録のレート制限
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | number | LOGIN_WINDOW ごとの IP あたりの最大ログイン許可数。デフォルトは `7` です。 | |
| LOGIN_WINDOW | number | LOGIN_MAX回のログイン試行を判定する時間枠を分単位で指定します。デフォルトは `5` です。 | |
| REGISTER_MAX | number | REGISTER_WINDOW ごとに許可されるIPあたりの最大登録数。デフォルトは `5` です。 | |
| REGISTER_WINDOW | number | REGISTER_MAX回の登録を許可する時間枠を分単位で指定します。デフォルトは `60` です。 |
メッセージのレート制限
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | 1リクエストあたりのユーザーのメッセージ送信数を制限するかどうか。 | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | ユーザーが1リクエストあたりに送信できる最大メッセージ数。 | CONCURRENT_MESSAGE_MAX=2 |
注: 両方の制限機能を利用することも可能ですが、デフォルトではIPによる制限のみが適用されます。
メッセージのレート制限(IPごと)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | IPアドレスが `MESSAGE_IP_WINDOW` ごとに送信できるメッセージ数を制限するかどうか。 | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | `MESSAGE_IP_WINDOW` ごとに1つのIPが送信できるメッセージの最大数。 | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | `MESSAGE_IP_MAX` メッセージの制限時間を分単位で指定します。 | MESSAGE_IP_WINDOW=1 |
メッセージレート制限(ユーザーごと)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | `MESSAGE_USER_WINDOW` ごとにユーザーが送信できるメッセージ数を制限するかどうか。 | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | `MESSAGE_USER_WINDOW` ごとにユーザーが送信できるメッセージの最大数。 | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | `MESSAGE_USER_MAX` メッセージの期間を分単位で決定します。 | MESSAGE_USER_WINDOW=1 |
会話インポートのレート制限
ユーザーが会話をインポートできる頻度を制限し、悪用を防ぎます。
注: 両方の制限機能を利用することも可能ですが、デフォルトではIPによる制限のみが適用されます。
会話インポートのレート制限(IPごと)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | `IMPORT_IP_WINDOW` ごとに1つのIPが実行できる会話インポートの回数を制限するかどうか。 | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | `IMPORT_IP_WINDOW` ごとに1つのIPが実行できる会話インポートの最大数。 | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | `IMPORT_IP_MAX` インポートの期間を分単位で決定します。 | IMPORT_IP_WINDOW=1 |
会話インポートのレート制限(ユーザーごと)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | `IMPORT_USER_WINDOW` ごとにユーザーが実行できる会話インポートの回数を制限するかどうか。 | LIMIT_IMPORT_USER=false |
| IMPORT_USER_MAX | integer | ユーザーが `IMPORT_USER_WINDOW` ごとに実行できる会話インポートの最大数。 | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | `IMPORT_USER_MAX` インポートの時間枠を分単位で決定します。 | IMPORT_USER_WINDOW=1 |
会話のフォーク(分岐)に関するレート制限
ユーザーが会話をフォークできる頻度を制限し、悪用を防止します。
注: 両方の制限機能を利用することも可能ですが、デフォルトではIPによる制限のみが適用されます。
会話のフォークに関するレート制限(IPごと)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | IPアドレスごとに `FORK_IP_WINDOW` 内で作成できる会話フォークの数を制限するかどうか。 | LIMIT_FORK_IP=true |
| FORK_IP_MAX | integer | `FORK_IP_WINDOW` ごとに1つのIPが作成できる会話フォークの最大数。 | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | `FORK_IP_MAX` フォークの期間を分単位で指定します。 | FORK_IP_WINDOW=1 |
会話フォークのレート制限(ユーザーごと)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | `FORK_USER_WINDOW` ごとにユーザーが作成できる会話フォークの数を制限するかどうか。 | LIMIT_FORK_USER=false |
| FORK_USER_MAX | integer | `FORK_USER_WINDOW` ごとにユーザーが作成できる会話フォークの最大数。 | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | `FORK_USER_MAX` フォークの期間を分単位で決定します。 | FORK_USER_WINDOW=1 |
不正なモデルリクエスト
注: 不正なモデルリクエストは、サードパーティが自動化されたスクリプトを通じてサーバーへのアクセスを試みていることを意味するため、ほぼ例外なく悪意のあるものです。そのため、5を下回らない比較的高いスコアを推奨します。
| Key | Type | Description | Example |
|---|---|---|---|
| ILLEGAL_MODEL_REQ_SCORE | integer | 不正なモデルリクエストに対するスコア。 | ILLEGAL_MODEL_REQ_SCORE=5 |
OpenAI テキストモデレーション
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | **OpenAI** および **Plugins** エンドポイントで OpenAI モデレーションを有効にするかどうか。 | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | OpenAI APIキー。 | OPENAI_MODERATION_API_KEY= |
リバースプロキシによっては動作しない可能性があることに注意してください:
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION_REVERSE_PROXY | string | 注: デフォルトではコメントアウトされています。すべてのリバースプロキシで動作するわけではありません。 | # OPENAI_MODERATION_REVERSE_PROXY= |
このガイドはいかがでしたか?