Moderasi Otomatis
Konfigurasi Sistem Moderasi Otomatis. Sistem ini menggunakan mekanisme penilaian untuk melacak pelanggaran pengguna. Saat pengguna melakukan tindakan seperti login, pendaftaran, atau pengiriman pesan yang berlebihan, mereka akan mengumpulkan skor pelanggaran. Setelah mencapai ambang batas yang ditetapkan, pengguna dan IP mereka akan diblokir sementara. Sistem ini memastikan keamanan platform dengan memantau dan memberikan penalti terhadap aktivitas yang cepat atau mencurigakan.
Sistem Moderasi Otomatis menggunakan mekanisme penilaian untuk melacak pelanggaran pengguna. Saat pengguna melakukan tindakan seperti login, pendaftaran, atau pengiriman pesan yang berlebihan, mereka akan mengumpulkan skor pelanggaran. Setelah mencapai ambang batas yang ditetapkan, pengguna dan IP mereka akan diblokir sementara. Sistem ini memastikan keamanan platform dengan memantau dan memberikan penalti terhadap aktivitas yang cepat atau mencurigakan.
Dalam lingkungan produksi, Anda sebaiknya menggunakan Cloudflare atau perlindungan DDoS lainnya untuk benar-benar melindungi server dari permintaan yang berlebihan, namun perubahan ini sebagian besar akan melindungi Anda dari satu atau beberapa aktor jahat yang menargetkan instans yang Anda deploy untuk tujuan proxy.
Untuk detail lebih lanjut, silakan merujuk ke panduan pengguna yang disediakan di sini: Automated Moderation
Pengaturan
Berikut adalah semua variabel env terkait untuk menggunakan dan mengonfigurasi sistem mod. Perhatikan bahwa ini juga terdapat dalam file /.env.example, untuk diatur di dalam file .env Anda sendiri.
Catatan: saat ini, sebagian besar nilai ini dikonfigurasi melalui file .env, namun mungkin akan segera bermigrasi untuk dikonfigurasi secara eksklusif dari file konfigurasi librechat.yaml.
Pelanggaran, Interval, Durasi
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | Apakah akan mengaktifkan pemblokiran pengguna karena pelanggaran atau tidak (mereka akan tetap dicatat). | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | Berapa lama pengguna dan IP terkait diblokir (dalam milidetik). | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | Pengguna akan diblokir setiap kali skor mereka mencapai/melewati ambang batas interval. | BAN_INTERVAL=20 |
Skor untuk setiap pelanggaran
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | Skor untuk pelanggaran login. | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | Skor untuk pelanggaran pendaftaran. | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | Skor untuk pelanggaran serentak. | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | Skor untuk pelanggaran pesan. | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | Skor untuk pelanggaran non-browser. | NON_BROWSER_VIOLATION_SCORE=20 |
| IMPORT_VIOLATION_SCORE | integer | Skor untuk pelanggaran impor percakapan. | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | Skor untuk pelanggaran percabangan percakapan. | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | Skor untuk pelanggaran text-to-speech. | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | Skor untuk pelanggaran speech-to-text. | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | Skor untuk pelanggaran unggahan file. | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | Skor untuk pelanggaran pengaturan ulang kata sandi. | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | Skor untuk pelanggaran verifikasi email. | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | Skor untuk pelanggaran pemanggilan tool. | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | Skor untuk pelanggaran akses percakapan. | CONVO_ACCESS_VIOLATION_SCORE=0 |
Pembatasan laju login dan registrasi.
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | number | Jumlah maksimum login yang diizinkan per IP per LOGIN_WINDOW. Defaultnya adalah `7`. | |
| LOGIN_WINDOW | number | Dalam hitungan menit, menentukan jendela waktu untuk LOGIN_MAX login. Defaultnya adalah `5`. | |
| REGISTER_MAX | number | Jumlah maksimum pendaftaran yang diizinkan per IP per REGISTER_WINDOW. Defaultnya adalah `5`. | |
| REGISTER_WINDOW | number | Dalam hitungan menit, menentukan jendela waktu untuk pendaftaran REGISTER_MAX. Defaultnya adalah `60`. |
Pembatasan laju pesan
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | Apakah akan membatasi jumlah pesan yang dapat dikirim pengguna per permintaan. | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | Jumlah maksimum pesan yang dapat dikirim pengguna per permintaan. | CONCURRENT_MESSAGE_MAX=2 |
Catatan: Anda dapat menggunakan kedua pembatas, tetapi setelan defaultnya adalah membatasi berdasarkan IP saja.
Pembatasan laju pesan (per IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | Apakah akan membatasi jumlah pesan yang dapat dikirim oleh sebuah IP per `MESSAGE_IP_WINDOW`. | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | Jumlah maksimum pesan yang dapat dikirim oleh sebuah IP per `MESSAGE_IP_WINDOW`. | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | Dalam hitungan menit, menentukan jendela waktu untuk `MESSAGE_IP_MAX` pesan. | MESSAGE_IP_WINDOW=1 |
Pembatasan laju pesan (per Pengguna)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | Apakah akan membatasi jumlah pesan yang dapat dikirim pengguna per `MESSAGE_USER_WINDOW`. | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | Jumlah maksimum pesan yang dapat dikirim pengguna per `MESSAGE_USER_WINDOW`. | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | Dalam hitungan menit, menentukan jendela waktu untuk pesan `MESSAGE_USER_MAX`. | MESSAGE_USER_WINDOW=1 |
Pembatasan laju impor percakapan
Membatasi seberapa sering pengguna dapat mengimpor percakapan untuk mencegah penyalahgunaan.
Catatan: Anda dapat menggunakan kedua pembatas, tetapi setelan defaultnya adalah membatasi berdasarkan IP saja.
Pembatasan laju impor percakapan (per IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | Apakah akan membatasi jumlah impor percakapan yang dapat dilakukan oleh sebuah IP per `IMPORT_IP_WINDOW`. | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | Jumlah maksimum impor percakapan yang dapat dilakukan oleh sebuah IP per `IMPORT_IP_WINDOW`. | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | Dalam hitungan menit, menentukan jendela waktu untuk impor `IMPORT_IP_MAX`. | IMPORT_IP_WINDOW=1 |
Pembatasan laju impor percakapan (per Pengguna)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | Apakah akan membatasi jumlah impor percakapan yang dapat dilakukan pengguna per `IMPORT_USER_WINDOW`. | LIMIT_IMPORT_USER=false |
| IMPORT_USER_MAX | integer | Jumlah maksimum impor percakapan yang dapat dilakukan pengguna per `IMPORT_USER_WINDOW`. | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | Dalam hitungan menit, menentukan jendela waktu untuk impor `IMPORT_USER_MAX`. | IMPORT_USER_WINDOW=1 |
Pembatasan laju forking percakapan
Membatasi seberapa sering pengguna dapat melakukan fork pada percakapan untuk mencegah penyalahgunaan.
Catatan: Anda dapat menggunakan kedua pembatas, tetapi setelan defaultnya adalah membatasi berdasarkan IP saja.
Pembatasan laju forking percakapan (per IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | Apakah akan membatasi jumlah percabangan percakapan yang dapat dibuat oleh sebuah IP per `FORK_IP_WINDOW`. | LIMIT_FORK_IP=true |
| FORK_IP_MAX | integer | Jumlah maksimum fork percakapan yang dapat dibuat oleh sebuah IP per `FORK_IP_WINDOW`. | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | Dalam hitungan menit, menentukan jendela waktu untuk fork `FORK_IP_MAX`. | FORK_IP_WINDOW=1 |
Pembatasan laju forking percakapan (per Pengguna)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | Apakah akan membatasi jumlah percabangan percakapan yang dapat dibuat pengguna per `FORK_USER_WINDOW`. | LIMIT_FORK_USER=false |
| FORK_USER_MAX | integer | Jumlah maksimum percabangan percakapan yang dapat dibuat pengguna per `FORK_USER_WINDOW`. | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | Dalam hitungan menit, menentukan jendela waktu untuk fork `FORK_USER_MAX`. | FORK_USER_WINDOW=1 |
Permintaan model ilegal
Catatan: Permintaan model ilegal hampir selalu bersifat jahat karena berarti pihak ke-3 sedang mencoba mengakses server melalui skrip otomatis. Untuk hal ini, saya menyarankan skor yang relatif tinggi, tidak kurang dari 5.
| Key | Type | Description | Example |
|---|---|---|---|
| ILLEGAL_MODEL_REQ_SCORE | integer | Skor untuk permintaan model ilegal. | ILLEGAL_MODEL_REQ_SCORE=5 |
Moderasi teks OpenAI
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | Apakah akan mengaktifkan moderasi OpenAI pada endpoint **OpenAI** dan **Plugins** atau tidak. | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | Kunci API OpenAI Anda. | OPENAI_MODERATION_API_KEY= |
Perhatikan bahwa ini mungkin tidak berfungsi dengan semua reverse proxy:
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION_REVERSE_PROXY | string | Catatan: Dinonaktifkan secara default, ini tidak berfungsi dengan semua reverse proxy. | # OPENAI_MODERATION_REVERSE_PROXY= |
Bagaimana panduan ini?
Penggantian Docker
Gunakan file docker-compose.override.yml untuk menyesuaikan pengaturan Docker LibreChat tanpa mengubah docker-compose.yml utama.
Pelacakan Langfuse
Dokumen ini menjelaskan cara mengintegrasikan pelacakan Langfuse dengan LibreChat untuk mendapatkan observabilitas penuh ke dalam percakapan AI Anda.