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

Moderasi Otomatis

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.

Sistem Moderasi Otomatis (opsional)

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.

Catatan

  • Menggunakan Caching untuk keamanan dasar dan pencatatan pelanggaran (pemblokiran, pesan bersamaan, melebihi batas kecepatan)
    • Dalam waktu dekat, saya akan menambahkan dukungan Redis untuk instans produksi, yang dapat dengan mudah disuntikkan ke dalam pengaturan caching saat ini.
  • Melampaui salah satu pembatas kecepatan (login/registrasi/pengiriman pesan) dianggap sebagai pelanggaran, skor default adalah 1
  • Asal non-browser adalah sebuah pelanggaran
  • Skor default untuk setiap pelanggaran dapat dikonfigurasi
  • Mengaktifkan salah satu pembatas (limiters) dan/atau pemblokiran (bans) akan mengaktifkan caching/logging
  • Log pelanggaran dapat ditemukan di folder data, yang dibuat saat pencatatan dimulai: librechat/data
    • Hanya pelanggaran yang dicatat
    • violations.json melacak jumlah total untuk setiap pelanggaran per pengguna
    • logs.json mencatat setiap pelanggaran individu per pengguna
  • Log pemblokiran disimpan di MongoDB di bawah koleksi logs. Log ini bersifat sementara karena hanya ada selama durasi pemblokiran.
    • Jika Anda ingin menghapus larangan secara manual, Anda harus menghapusnya dari basis data secara manual dan memulai ulang server.
    • Dukungan Redis juga direncanakan untuk ini.

Tipe Rate Limiter

Pembatasan Laju Login dan Registrasi

Mencegah serangan brute force dan pendaftaran spam dengan membatasi berapa banyak upaya masuk atau pendaftaran akun baru yang dapat dilakukan dari satu alamat IP dalam jangka waktu tertentu.

Pembatasan Laju Pesan

Mengontrol seberapa sering pengguna dapat mengirim pesan untuk mencegah spam dan penyalahgunaan:

  • Pembatasan Pesan Bersamaan: Membatasi berapa banyak pesan yang dapat dikirim pengguna secara bersamaan (mencegah pengguna membuka beberapa tab untuk melewati batas)
  • Pembatasan Frekuensi Pesan: Mengontrol seberapa sering pesan dapat dikirim, dapat dikonfigurasi baik berdasarkan alamat IP maupun pengguna individu

Pembatasan Laju Impor Percakapan

Mencegah penyalahgunaan fitur impor percakapan dengan membatasi berapa banyak percakapan yang dapat diimpor dalam jangka waktu tertentu. Hal ini membantu mencegah:

  • Impor data massal yang dapat membebani server
  • Skrip otomatis yang mencoba membanjiri sistem dengan data yang diimpor
  • Kehabisan sumber daya akibat pemrosesan impor dalam jumlah besar

Batas default:

  • Berbasis IP: 100 impor per menit
  • Berbasis pengguna: 50 impor per menit (dinonaktifkan secara default)

Pembatasan Laju Forking Percakapan

Mengontrol seberapa sering pengguna dapat membuat fork (salinan) dari percakapan yang sudah ada. Ini mencegah:

  • Pertumbuhan basis data yang berlebihan akibat duplikasi percakapan massal
  • Kehabisan sumber daya akibat operasi fork
  • Penyalahgunaan fitur forking untuk spam atau pengumpulan data

Batas default:

  • Berbasis IP: 30 fork per menit
  • Berbasis pengguna: 7 fork per menit (dinonaktifkan secara default)

Pembatasan Laju Unggah File

Dikonfigurasi melalui file librechat.yaml, ini mengontrol seberapa sering pengguna dapat mengunggah file untuk mencegah penyalahgunaan penyimpanan dan kehabisan bandwidth.

Pembatasan Laju Text-to-Speech (TTS)

Mengontrol seberapa sering pengguna dapat meminta konversi teks-ke-ucapan. Ini mencegah:

  • Biaya penggunaan API yang berlebihan
  • Kehabisan sumber daya server akibat pembuatan audio
  • Penyalahgunaan fitur TTS untuk pengambilan data

Dikonfigurasi melalui file librechat.yaml dengan batas yang dapat disesuaikan per IP dan per pengguna.

Pembatasan Laju (Rate Limiting) Speech-to-Text (STT)

Mengontrol seberapa sering pengguna dapat mengirimkan audio untuk transkripsi. Ini mencegah:

  • Biaya penggunaan API yang berlebihan
  • Kelelahan sumber daya server akibat pemrosesan audio
  • Penyalahgunaan fitur STT untuk layanan transkripsi yang tidak sah

Dikonfigurasi melalui file librechat.yaml dengan batas yang dapat disesuaikan per IP dan per pengguna.

Pembatasan Laju Atur Ulang Kata Sandi

Mengontrol seberapa sering pengguna dapat meminta email pengaturan ulang kata sandi. Ini mencegah:

  • Serangan email bombing
  • Penyalahgunaan sistem pengaturan ulang kata sandi
  • Penggunaan layanan email yang berlebihan

Pembatasan Laju Verifikasi Email

Mengontrol seberapa sering pengguna dapat meminta pesan verifikasi email. Hal ini mencegah:

  • Serangan spam melalui sistem verifikasi
  • Penyalahgunaan layanan email
  • Kehabisan sumber daya dari permintaan verifikasi

Pembatasan Laju Panggilan Alat (Tool Call Rate Limiting)

Mengontrol seberapa sering pengguna dapat melakukan panggilan alat/plugin. Ini mencegah:

  • Penggunaan API yang berlebihan dari alat yang terintegrasi
  • Penyalahgunaan integrasi layanan eksternal
  • Kehabisan sumber daya dari pemrosesan alat

Pembatasan Laju Akses Percakapan

Mengontrol seberapa sering pengguna dapat mengakses atau mencoba mengakses percakapan. Ini mencegah:

  • Upaya akses tidak sah
  • Serangan scraping data
  • Kueri basis data yang berlebihan

Pembatas Laju (Rate Limiters)

Pembatas laju (rate limiters) proyek saat ini adalah sebagai berikut (lihat di bawah bagian pengaturan untuk nilai default):

  • Pembatasan laju login dan registrasi
  • Optional: Concurrent Message limiting (only X messages at a time per user)
  • Optional: Message limiting (how often a user can send a message, configurable by IP and User)
  • Optional: Batasi impor percakapan (seberapa sering pengguna dapat mengimpor percakapan, dapat dikonfigurasi berdasarkan IP dan Pengguna)
  • Optional: Conversation forking limiting (how often a user can fork conversations, configurable by IP and User)
  • Optional: Text-to-Speech (TTS) limiting (configurable through librechat.yaml config file)
  • Optional: Speech-to-Text (STT) limiting (configurable through librechat.yaml config file)
  • Optional: File Upload limiting (configurable through librechat.yaml config file)

Untuk detail lebih lanjut, silakan merujuk ke panduan konfigurasi yang disediakan di sini: Automated Moderation

Bagaimana panduan ini?