Hướng dẫn cấu hình biến môi trường
Tài liệu này cung cấp tất cả các biến môi trường được 88API hỗ trợ và hướng dẫn cấu hình của chúng. Bạn có thể tùy chỉnh hành vi của hệ thống bằng cách đặt các biến môi trường này.
Mẹo
88API hỗ trợ đọc các biến môi trường từ tệp .env. Vui lòng
tham khảo tập tin .env.example và đổi tên nó thành .env để sử dụng.
Cấu hình cơ bản
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
PORT | Cổng nghe dịch vụ | 3000 | PORT=8080 |
TZ | Cài đặt múi giờ | Asia/Shanghai | TZ=America/New_York |
Cấu hình cơ sở dữ liệu
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
SQL_DSN | Chuỗi kết nối cơ sở dữ liệu | SQLite (dữ liệu/one-api.db) | MySQL: SQL_DSN=root:123456@tcp(localhost:3306)/new-api | PostgreSQL: SQL_DSN=postgresql://root:123456@postgres:5432/new-api |
SQL_MAX_IDLE_CONNS | Số lượng kết nối nhàn rỗi tối đa trong nhóm kết nối | 100 | SQL_MAX_IDLE_CONNS=50 |
SQL_MAX_OPEN_CONNS | Số lượng kết nối mở tối đa trong nhóm kết nối | 1000 | SQL_MAX_OPEN_CONNS=500 |
SQL_CONN_MAX_LIFETIME | Tuổi thọ kết nối tối đa (phút) | 60 | SQL_CONN_MAX_LIFETIME=120 |
LOG_SQL_DSN | Chuỗi kết nối cơ sở dữ liệu riêng biệt cho bảng nhật ký | - | LOG_SQL_DSN=root:123456@tcp(localhost:3306)/oneapi_logs |
SQLITE_BUSY_TIMEOUT | Hết thời gian chờ khóa SQLite (mili giây) | 3000 | SQLITE_BUSY_TIMEOUT=5000 |
Cấu hình bộ đệm
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
REDIS_CONN_STRING | Chuỗi kết nối Redis | - | REDIS_CONN_STRING=redis://default:redispw@localhost:6379 |
MEMORY_CACHE_ENABLED | Có bật bộ nhớ đệm hay không | false | MEMORY_CACHE_ENABLED=true |
REDIS_CONN_POOL_SIZE | Kích thước nhóm kết nối Redis | - | REDIS_CONN_POOL_SIZE=10 |
REDIS_PASSWORD | Mật khẩu cho cụm Redis hoặc chế độ canh gác | - | REDIS_PASSWORD=your_password |
REDIS_MASTER_NAME | Redis tên chính của chế độ canh gác | - | REDIS_MASTER_NAME=mymaster |
BATCH_UPDATE_ENABLED | Cho phép tổng hợp cập nhật hàng loạt cơ sở dữ liệu | false | BATCH_UPDATE_ENABLED=true |
BATCH_UPDATE_INTERVAL | Khoảng thời gian tổng hợp cập nhật hàng loạt (giây) | 5 | BATCH_UPDATE_INTERVAL=10 |
Cấu hình đa nút và bảo mật
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
SESSION_SECRET | Bí mật phiên (bắt buộc để triển khai nhiều máy) | - | SESSION_SECRET=random_string |
CRYPTO_SECRET | Khóa mã hóa (mã hóa nội dung cơ sở dữ liệu) | - | CRYPTO_SECRET=your_crypto_secret |
FRONTEND_BASE_URL | URL cơ sở giao diện người dùng | - | FRONTEND_BASE_URL=https://your-domain.com |
SYNC_FREQUENCY | Tần suất đồng bộ hóa bộ đệm và cơ sở dữ liệu (giây) | 600 | SYNC_FREQUENCY=60 |
NODE_TYPE | Loại nút | master | NODE_TYPE=slave |
INITIAL_ROOT_TOKEN | Mã thông báo người dùng root được tạo khi khởi động lần đầu | - | INITIAL_ROOT_TOKEN=your_token |
INITIAL_ROOT_ACCESS_TOKEN | Mã thông báo quản lý hệ thống được tạo khi khởi động lần đầu | - | INITIAL_ROOT_ACCESS_TOKEN=your_token |
Triển khai cụm
Để biết thông tin về cách sử dụng các biến môi trường này để xây dựng một môi trường hoàn chỉnh triển khai cụm, vui lòng tham khảo Triển khai cụm Hướng dẫn.
Cấu hình người dùng và mã thông báo
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
DEFAULT_QUOTA | Hạn ngạch mặc định cho người dùng mới | 0 | DEFAULT_QUOTA=10 |
GLOBAL_USER_QUOTA | Giới hạn hạn ngạch người dùng toàn cầu | - | GLOBAL_USER_QUOTA=100 |
GENERATE_DEFAULT_TOKEN | Tạo mã thông báo ban đầu cho người dùng đã đăng ký mới | false | GENERATE_DEFAULT_TOKEN=true |
NOTIFICATION_LIMIT_DURATION_MINUTE | Thời lượng giới hạn thông báo (phút) | 10 | NOTIFICATION_LIMIT_DURATION_MINUTE=15 |
NOTIFY_LIMIT_COUNT | Số lượng thông báo tối đa trong khoảng thời gian được chỉ định | 2 | NOTIFY_LIMIT_COUNT=3 |
Cấu hình giới hạn yêu cầu
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
GLOBAL_API_RATE_LIMIT | Giới hạn tốc độ API toàn cầu (mỗi IP, ba phút) | 180 | GLOBAL_API_RATE_LIMIT=100 |
GLOBAL_WEB_RATE_LIMIT | Giới hạn tốc độ Web toàn cầu (mỗi IP, ba phút) | 60 | GLOBAL_WEB_RATE_LIMIT=30 |
RELAY_TIMEOUT | Hết thời gian chờ yêu cầu chuyển tiếp (giây) | - | RELAY_TIMEOUT=60 |
USER_CONTENT_REQUEST_TIMEOUT | Thời gian chờ tải xuống nội dung của người dùng (giây) | - | USER_CONTENT_REQUEST_TIMEOUT=30 |
STREAMING_TIMEOUT | Truyền hết thời gian chờ phản hồi đơn (giây) | 60 | STREAMING_TIMEOUT=120 |
MAX_FILE_DOWNLOAD_MB | Kích thước tải xuống tệp tối đa (MB) | 20 | MAX_FILE_DOWNLOAD_MB=50 |
Cảnh báo cài đặt RELAY_TIMEOUT
Hãy thận trọng khi thiết lập biến môi trường RELAY_TIMEOUT.
Đặt nó quá ngắn có thể dẫn đến các vấn đề sau:
-
API ngược dòng đã hoàn thành yêu cầu và tính phí, nhưng thanh toán địa phương không thành công do hết thời gian chờ
-
Gây ra sự cố đồng bộ hóa thanh toán, có thể dẫn đến mất hệ thống
-
Không nên thiết lập điều này, trừ khi bạn biết mình đang làm gì
Cấu hình quản lý kênh
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
CHANNEL_UPDATE_FREQUENCY | Cập nhật định kỳ số dư kênh (phút) | - | CHANNEL_UPDATE_FREQUENCY=1440 |
CHANNEL_TEST_FREQUENCY | Kiểm tra kênh định kỳ (phút) | - | CHANNEL_TEST_FREQUENCY=1440 |
POLLING_INTERVAL | Khoảng thời gian yêu cầu trong quá trình cập nhật kênh hàng loạt (giây) | 0 | POLLING_INTERVAL=5 |
ENABLE_METRIC | Có tắt kênh hay không dựa trên tỷ lệ thành công của yêu cầu | false | ENABLE_METRIC=true |
METRIC_QUEUE_SIZE | Yêu cầu kích thước hàng đợi thống kê tỷ lệ thành công | 10 | METRIC_QUEUE_SIZE=20 |
METRIC_SUCCESS_RATE_THRESHOLD | Yêu cầu ngưỡng tỷ lệ thành công | 0.8 | METRIC_SUCCESS_RATE_THRESHOLD=0.7 |
TEST_PROMPT | Lời nhắc của người dùng khi thử nghiệm mô hình | Print your model name exactly... | TEST_PROMPT=Hello |
Cấu hình proxy
| Biến môi trường | Mô tả | Mặc định | Ví dụ |
|---|---|---|---|
RELAY_PROXY | Proxy cho các cuộc gọi chuyển tiếp | - | RELAY_PROXY=http://127.0.0.1:7890 |
USER_CONTENT_REQUEST_PROXY | Proxy cho nội dung người dùng | - | USER_CONTENT_REQUEST_PROXY=http://127.0.0.1:7890 |
Cấu hình xử lý mô hình và yêu cầu
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
FORCE_STREAM_OPTION | Ghi đè tham số stream_options của khách hàng | true | FORCE_STREAM_OPTION=false |
GET_MEDIA_TOKEN | Có đếm mã thông báo hình ảnh hay không | true | GET_MEDIA_TOKEN=false |
GET_MEDIA_TOKEN_NOT_STREAM | Có đếm mã thông báo hình ảnh ở chế độ không phát trực tuyến hay không | true | GET_MEDIA_TOKEN_NOT_STREAM=false |
UPDATE_TASK | Có cập nhật các tác vụ không đồng bộ (MJ, Suno) | true | UPDATE_TASK=false |
ENFORCE_INCLUDE_USAGE | Buộc sử dụng trở lại ở chế độ phát trực tuyến | false | ENFORCE_INCLUDE_USAGE=true |
TIKTOKEN_CACHE_DIR | Thư mục bộ đệm của bộ mã hóa Tiktoken, được sử dụng để lưu trữ các tệp mã thông báo để tránh tải xuống mạng | - | TIKTOKEN_CACHE_DIR=/cache/tiktoken |
DATA_GYM_CACHE_DIR | Thư mục bộ đệm DataGym | - | DATA_GYM_CACHE_DIR=/cache/data_gym |
Cấu hình tệp Tiktoken
Sau khi tải file tiktoken về các bạn vui lòng đổi tên chúng như sau:
cl100k_base.tiktokenđổi tên thành9b5ad71b2ce5302211f9c61530b329a4922fc6a4o200k_base.tiktokenđổi tên thànhfb374d419588a4632f3f557e76b4b70aebbca790
Những tập tin này nên được đặt trong thư mục được chỉ định bởi TIKTOKEN_CACHE_DIR để cải thiện hiệu suất tính toán mã thông báo và giảm sự phụ thuộc vào mạng.
Ví dụ về cấu hình Tiktoken
# Docker environment example
TIKTOKEN_CACHE_DIR=/app/data/tiktoken
# Then download and rename the tiktoken files and place them in this directory:
# /app/data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4
# /app/data/tiktoken/fb374d419588a4632f3f557e76b4b70aebbca790
Tiktoken là mã thông báo được OpenAI sử dụng để tính số lượng mã thông báo trong văn bản. Bằng cách lưu trữ cục bộ các tệp này, hệ thống có thể tránh tải chúng xuống từ mạng mỗi khi khởi động, cải thiện độ ổn định và hiệu suất, đặc biệt là trong môi trường mạng bị hạn chế.
Cấu hình model cụ thể
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
AZURE_DEFAULT_API_VERSION | Phiên bản API mặc định của kênh Azure | 2024-12-01-preview | AZURE_DEFAULT_API_VERSION=2023-05-15 |
COHERE_SAFETY_SETTING | Cài đặt an toàn mô hình Cohere | NONE | COHERE_SAFETY_SETTING=CONTEXTUAL |
GEMINI_VISION_MAX_IMAGE_NUM | Số lượng hình ảnh tối đa của người mẫu Song Tử | 16 | GEMINI_VISION_MAX_IMAGE_NUM=8 |
GEMINI_VERSION | Phiên bản Song Tử | v1 | GEMINI_VERSION=v1beta |
DIFY_DEBUG | Dify quy trình làm việc đầu ra kênh và thông tin nút | true | DIFY_DEBUG=false |
Cấu hình khác
| Biến môi trường | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|
EMAIL_SERVER | Cấu hình máy chủ email | - | EMAIL_SERVER=smtp.example.com:25 |
EMAIL_FROM | Địa chỉ người gửi email | - | EMAIL_FROM=noreply@example.com |
EMAIL_PASSWORD | Mật khẩu máy chủ email | - | EMAIL_PASSWORD=yourpassword |
ERROR_LOG_ENABLED | Có ghi lại và hiển thị nhật ký lỗi trên giao diện người dùng hay không | sai | ERROR_LOG_ENABLED=true |
Biến môi trường không được dùng nữa
Các biến môi trường sau đây không còn được dùng nữa. Vui lòng sử dụng các tùy chọn tương ứng trong giao diện cài đặt hệ thống:
| Biến môi trường | Phương pháp thay thế |
|---|---|
GEMINI_MODEL_MAP | Vui lòng đặt trong Cài đặt hệ thống - Cài đặt liên quan đến kiểu máy |
GEMINI_SAFETY_SETTING | Vui lòng đặt trong Cài đặt hệ thống - Cài đặt liên quan đến kiểu máy |
Ví dụ triển khai nhiều máy
Trong các tình huống triển khai nhiều máy, phải đặt các biến môi trường sau:
Cấu hình nút chính
# Database Configuration - Use remote database
SQL_DSN=root:password@tcp(db-server:3306)/oneapi
# Security Configuration
SESSION_SECRET=your_unique_session_secret
CRYPTO_SECRET=your_unique_crypto_secret
# Redis Cache Configuration
REDIS_CONN_STRING=redis://default:password@redis-server:6379Cấu hình nút nô lệ
# Database Configuration - Use the same remote database
SQL_DSN=root:password@tcp(db-server:3306)/oneapi
# Security Configuration - Use the same secrets as the master node
SESSION_SECRET=your_unique_session_secret
CRYPTO_SECRET=your_unique_crypto_secret
# Redis Cache Configuration - Use the same Redis as the master node
REDIS_CONN_STRING=redis://default:password@redis-server:6379
# Node Type Setting
NODE_TYPE=slave
# Optional: Frontend Base URL
FRONTEND_BASE_URL=https://your-domain.com
# Optional: Synchronization Frequency
SYNC_FREQUENCY=60Cấu hình cụm hoàn chỉnh
Đây chỉ là một ví dụ về cấu hình nhiều nút cơ bản. Đối với cụm hoàn chỉnh vui lòng cung cấp cấu hình triển khai, mô tả kiến trúc và các biện pháp thực hành tốt nhất tham khảo Hướng dẫn triển khai cụm.
Ví dụ về biến môi trường trong Docker Compose
Dưới đây là một ví dụ ngắn gọn về cách đặt biến môi trường trong tệp cấu hình Docker Compose:
services:
new-api:
image: calciumion/new-api:latest
environment:
- TZ=Asia/Shanghai
- SQL_DSN=root:123456@tcp(mysql:3306)/oneapi
- REDIS_CONN_STRING=redis://default:redispw@redis:6379
- SESSION_SECRET=your_unique_session_secret
- CRYPTO_SECRET=your_unique_crypto_secret
- MEMORY_CACHE_ENABLED=true
- GENERATE_DEFAULT_TOKEN=true
- STREAMING_TIMEOUT=120
- CHANNEL_UPDATE_FREQUENCY=1440Để có cấu hình Docker Compose hoàn chỉnh, bao gồm nhiều tùy chọn cài đặt biến môi trường hơn, vui lòng tham khảo tài liệu Hướng dẫn cấu hình Docker Compose.