Kiểm duyệt tự động
Cấu hình Hệ thống Kiểm duyệt Tự động. Hệ thống này sử dụng cơ chế chấm điểm để theo dõi các vi phạm của người dùng. Khi người dùng thực hiện các hành động như đăng nhập, đăng ký hoặc gửi tin nhắn quá mức, họ sẽ tích lũy điểm vi phạm. Khi đạt đến ngưỡng đã thiết lập, người dùng và địa chỉ IP của họ sẽ bị cấm tạm thời. Hệ thống này đảm bảo an ninh nền tảng bằng cách giám sát và xử phạt các hoạt động nhanh hoặc đáng ngờ.
Hệ thống Kiểm duyệt Tự động sử dụng cơ chế tính điểm để theo dõi các vi phạm của người dùng. Khi người dùng thực hiện các hành động như đăng nhập, đăng ký hoặc gửi tin nhắn quá mức, họ sẽ tích lũy điểm vi phạm. Khi đạt đến ngưỡng đã thiết lập, người dùng và địa chỉ IP của họ sẽ bị cấm tạm thời. Hệ thống này đảm bảo an ninh nền tảng bằng cách giám sát và xử phạt các hoạt động nhanh hoặc đáng ngờ.
Trong môi trường production, bạn nên sử dụng Cloudflare hoặc một giải pháp bảo vệ chống DDoS khác để thực sự bảo vệ máy chủ khỏi các yêu cầu quá mức, nhưng những thay đổi này phần lớn sẽ bảo vệ bạn khỏi một hoặc vài đối tượng xấu nhắm mục tiêu vào instance đã triển khai của bạn để thực hiện proxy.
Để biết thêm chi tiết, hãy tham khảo hướng dẫn sử dụng được cung cấp tại đây: Automated Moderation
Thiết lập
Dưới đây là tất cả các biến môi trường liên quan để sử dụng và cấu hình hệ thống mod. Lưu ý rằng thông tin này cũng có trong tệp /.env.example, cần được thiết lập trong tệp .env của riêng bạn.
Lưu ý: hiện tại, hầu hết các giá trị này được cấu hình thông qua tệp .env, nhưng chúng có thể sớm được chuyển đổi để chỉ cấu hình từ librechat.yaml config file.
Vi phạm, Khoảng thời gian, Thời lượng
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | Có cho phép cấm người dùng do vi phạm hay không (họ vẫn sẽ được ghi lại nhật ký). | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | Thời gian người dùng và IP liên quan bị cấm (tính bằng mili giây). | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | Người dùng sẽ bị cấm mỗi khi điểm số của họ đạt/vượt qua ngưỡng khoảng thời gian. | BAN_INTERVAL=20 |
Điểm số cho mỗi vi phạm
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | Điểm cho các vi phạm đăng nhập. | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | Điểm số cho các vi phạm đăng ký. | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | Điểm số cho các vi phạm đồng thời. | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | Điểm số cho các vi phạm tin nhắn. | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | Điểm số cho các vi phạm không liên quan đến trình duyệt. | NON_BROWSER_VIOLATION_SCORE=20 |
| IMPORT_VIOLATION_SCORE | integer | Điểm số cho các vi phạm khi nhập cuộc trò chuyện. | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | Điểm cho các vi phạm phân nhánh hội thoại. | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | Điểm số cho các vi phạm chuyển văn bản thành giọng nói. | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | Điểm vi phạm cho tính năng chuyển đổi giọng nói thành văn bản. | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | Điểm số cho các vi phạm tải tệp lên. | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | Điểm số cho các vi phạm đặt lại mật khẩu. | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | Điểm số cho các vi phạm xác minh email. | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | Điểm số cho các vi phạm gọi công cụ. | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | Điểm số cho các vi phạm truy cập hội thoại. | CONVO_ACCESS_VIOLATION_SCORE=0 |
Giới hạn tốc độ đăng nhập và đăng ký.
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | number | Số lượng đăng nhập tối đa cho phép trên mỗi IP trong mỗi LOGIN_WINDOW. Mặc định là `7`. | |
| LOGIN_WINDOW | number | Tính bằng phút, xác định khoảng thời gian cho LOGIN_MAX lượt đăng nhập. Mặc định là `5`. | |
| REGISTER_MAX | number | Số lượng đăng ký tối đa cho phép trên mỗi IP trong mỗi REGISTER_WINDOW. Mặc định là `5`. | |
| REGISTER_WINDOW | number | Tính bằng phút, xác định khoảng thời gian cho REGISTER_MAX lượt đăng ký. Mặc định là `60`. |
Giới hạn tốc độ tin nhắn
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | Liệu có giới hạn số lượng tin nhắn mà người dùng có thể gửi trong mỗi yêu cầu hay không. | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | Số lượng tin nhắn tối đa mà một người dùng có thể gửi trong mỗi yêu cầu. | CONCURRENT_MESSAGE_MAX=2 |
Lưu ý: Bạn có thể sử dụng cả hai bộ giới hạn, nhưng mặc định chỉ giới hạn theo IP.
Giới hạn tốc độ tin nhắn (theo IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | Liệu có giới hạn số lượng tin nhắn mà một IP có thể gửi trong mỗi `MESSAGE_IP_WINDOW` hay không. | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | Số lượng tin nhắn tối đa mà một IP có thể gửi trong mỗi `MESSAGE_IP_WINDOW`. | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | Trong vài phút, xác định khoảng thời gian cho `MESSAGE_IP_MAX` tin nhắn. | MESSAGE_IP_WINDOW=1 |
Giới hạn tốc độ tin nhắn (theo Người dùng)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | Liệu có giới hạn số lượng tin nhắn mà người dùng có thể gửi trong mỗi `MESSAGE_USER_WINDOW` hay không. | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | Số lượng tin nhắn tối đa mà một người dùng có thể gửi trong mỗi `MESSAGE_USER_WINDOW`. | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | Tính bằng phút, xác định khoảng thời gian cho `MESSAGE_USER_MAX` tin nhắn. | MESSAGE_USER_WINDOW=1 |
Giới hạn tốc độ nhập cuộc trò chuyện
Giới hạn tần suất người dùng có thể nhập cuộc trò chuyện để ngăn chặn hành vi lạm dụng.
Lưu ý: Bạn có thể sử dụng cả hai bộ giới hạn, nhưng mặc định chỉ giới hạn theo IP.
Giới hạn tốc độ nhập cuộc trò chuyện (theo IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | Liệu có giới hạn số lượng nhập hội thoại mà một IP có thể thực hiện trong mỗi `IMPORT_IP_WINDOW` hay không. | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | Số lượng nhập cuộc trò chuyện tối đa mà một IP có thể thực hiện trong mỗi `IMPORT_IP_WINDOW`. | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | Tính bằng phút, xác định khoảng thời gian cho các lượt nhập `IMPORT_IP_MAX`. | IMPORT_IP_WINDOW=1 |
Giới hạn tốc độ nhập cuộc trò chuyện (theo Người dùng)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | Liệu có giới hạn số lượng nhập cuộc trò chuyện mà một người dùng có thể thực hiện trong mỗi `IMPORT_USER_WINDOW` hay không. | LIMIT_IMPORT_USER=false |
| IMPORT_USER_MAX | integer | Số lượng nhập cuộc trò chuyện tối đa mà một người dùng có thể thực hiện trong mỗi `IMPORT_USER_WINDOW`. | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | Tính bằng phút, xác định khoảng thời gian cho các lượt nhập `IMPORT_USER_MAX`. | IMPORT_USER_WINDOW=1 |
Giới hạn tốc độ phân nhánh cuộc trò chuyện
Giới hạn tần suất người dùng có thể fork các cuộc trò chuyện để ngăn chặn hành vi lạm dụng.
Lưu ý: Bạn có thể sử dụng cả hai bộ giới hạn, nhưng mặc định chỉ giới hạn theo IP.
Giới hạn tốc độ phân nhánh hội thoại (theo IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | Liệu có giới hạn số lượng nhánh hội thoại mà một IP có thể tạo trong mỗi `FORK_IP_WINDOW` hay không. | LIMIT_FORK_IP=true |
| FORK_IP_MAX | integer | Số lượng nhánh hội thoại tối đa mà một IP có thể tạo trong mỗi `FORK_IP_WINDOW`. | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | Tính bằng phút, xác định khoảng thời gian cho các fork `FORK_IP_MAX`. | FORK_IP_WINDOW=1 |
Giới hạn tốc độ phân nhánh hội thoại (theo Người dùng)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | Liệu có giới hạn số lượng nhánh hội thoại mà một người dùng có thể tạo trong mỗi `FORK_USER_WINDOW` hay không. | LIMIT_FORK_USER=false |
| FORK_USER_MAX | integer | Số lượng nhánh hội thoại tối đa mà một người dùng có thể tạo trong mỗi `FORK_USER_WINDOW`. | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | Tính bằng phút, xác định khoảng thời gian cho các fork `FORK_USER_MAX`. | FORK_USER_WINDOW=1 |
Các yêu cầu model không hợp lệ
Lưu ý: Các yêu cầu model bất hợp pháp hầu như luôn là hành vi xấu vì điều đó có nghĩa là một bên thứ 3 đang cố gắng truy cập vào máy chủ thông qua một tập lệnh tự động. Đối với trường hợp này, tôi khuyên bạn nên đặt điểm số tương đối cao, không dưới 5.
| Key | Type | Description | Example |
|---|---|---|---|
| ILLEGAL_MODEL_REQ_SCORE | integer | Điểm số cho các yêu cầu mô hình không hợp lệ. | ILLEGAL_MODEL_REQ_SCORE=5 |
Kiểm duyệt văn bản OpenAI
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | Có bật tính năng kiểm duyệt của OpenAI trên các endpoint **OpenAI** và **Plugins** hay không. | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | Khóa API OpenAI của bạn. | OPENAI_MODERATION_API_KEY= |
Lưu ý rằng điều này có thể không hoạt động với tất cả các reverse proxy:
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION_REVERSE_PROXY | string | Lưu ý: Mặc định bị chú thích, tính năng này không hoạt động với tất cả các reverse proxy. | # OPENAI_MODERATION_REVERSE_PROXY= |
Hướng dẫn này thế nào?
Ghi đè Docker
Sử dụng tệp docker-compose.override.yml để tùy chỉnh thiết lập Docker của LibreChat mà không cần chỉnh sửa tệp docker-compose.yml chính.
Theo dõi Langfuse
Tài liệu này giải thích cách tích hợp tính năng theo dõi Langfuse với LibreChat để có được khả năng quan sát toàn diện các cuộc hội thoại AI của bạn.