88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support

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ườngMô tảGiá trị mặc địnhVí dụ
PORTCổng nghe dịch vụ3000PORT=8080
TZCài đặt múi giờAsia/ShanghaiTZ=America/New_York

Cấu hình cơ sở dữ liệu

Biến môi trườngMô tảGiá trị mặc địnhVí dụ
SQL_DSNChuỗi kết nối cơ sở dữ liệuSQLite (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_CONNSSố lượng kết nối nhàn rỗi tối đa trong nhóm kết nối100SQL_MAX_IDLE_CONNS=50
SQL_MAX_OPEN_CONNSSố lượng kết nối mở tối đa trong nhóm kết nối1000SQL_MAX_OPEN_CONNS=500
SQL_CONN_MAX_LIFETIMETuổi thọ kết nối tối đa (phút)60SQL_CONN_MAX_LIFETIME=120
LOG_SQL_DSNChuỗ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_TIMEOUTHết thời gian chờ khóa SQLite (mili giây)3000SQLITE_BUSY_TIMEOUT=5000

Cấu hình bộ đệm

Biến môi trườngMô tảGiá trị mặc địnhVí dụ
REDIS_CONN_STRINGChuỗi kết nối Redis-REDIS_CONN_STRING=redis://default:redispw@localhost:6379
MEMORY_CACHE_ENABLEDCó bật bộ nhớ đệm hay khôngfalseMEMORY_CACHE_ENABLED=true
REDIS_CONN_POOL_SIZEKích thước nhóm kết nối Redis-REDIS_CONN_POOL_SIZE=10
REDIS_PASSWORDMật khẩu cho cụm Redis hoặc chế độ canh gác-REDIS_PASSWORD=your_password
REDIS_MASTER_NAMERedis tên chính của chế độ canh gác-REDIS_MASTER_NAME=mymaster
BATCH_UPDATE_ENABLEDCho phép tổng hợp cập nhật hàng loạt cơ sở dữ liệufalseBATCH_UPDATE_ENABLED=true
BATCH_UPDATE_INTERVALKhoảng thời gian tổng hợp cập nhật hàng loạt (giây)5BATCH_UPDATE_INTERVAL=10

Cấu hình đa nút và bảo mật

Biến môi trườngMô tảGiá trị mặc địnhVí dụ
SESSION_SECRETBí mật phiên (bắt buộc để triển khai nhiều máy)-SESSION_SECRET=random_string
CRYPTO_SECRETKhóa mã hóa (mã hóa nội dung cơ sở dữ liệu)-CRYPTO_SECRET=your_crypto_secret
FRONTEND_BASE_URLURL cơ sở giao diện người dùng-FRONTEND_BASE_URL=https://your-domain.com
SYNC_FREQUENCYTần suất đồng bộ hóa bộ đệm và cơ sở dữ liệu (giây)600SYNC_FREQUENCY=60
NODE_TYPELoại nútmasterNODE_TYPE=slave
INITIAL_ROOT_TOKENMã 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_TOKENMã 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ườngMô tảGiá trị mặc địnhVí dụ
DEFAULT_QUOTAHạn ngạch mặc định cho người dùng mới0DEFAULT_QUOTA=10
GLOBAL_USER_QUOTAGiới hạn hạn ngạch người dùng toàn cầu-GLOBAL_USER_QUOTA=100
GENERATE_DEFAULT_TOKENTạo mã thông báo ban đầu cho người dùng đã đăng ký mớifalseGENERATE_DEFAULT_TOKEN=true
NOTIFICATION_LIMIT_DURATION_MINUTEThời lượng giới hạn thông báo (phút)10NOTIFICATION_LIMIT_DURATION_MINUTE=15
NOTIFY_LIMIT_COUNTSố lượng thông báo tối đa trong khoảng thời gian được chỉ định2NOTIFY_LIMIT_COUNT=3

Cấu hình giới hạn yêu cầu

Biến môi trườngMô tảGiá trị mặc địnhVí dụ
GLOBAL_API_RATE_LIMITGiới hạn tốc độ API toàn cầu (mỗi IP, ba phút)180GLOBAL_API_RATE_LIMIT=100
GLOBAL_WEB_RATE_LIMITGiới hạn tốc độ Web toàn cầu (mỗi IP, ba phút)60GLOBAL_WEB_RATE_LIMIT=30
RELAY_TIMEOUTHết thời gian chờ yêu cầu chuyển tiếp (giây)-RELAY_TIMEOUT=60
USER_CONTENT_REQUEST_TIMEOUTThời gian chờ tải xuống nội dung của người dùng (giây)-USER_CONTENT_REQUEST_TIMEOUT=30
STREAMING_TIMEOUTTruyền hết thời gian chờ phản hồi đơn (giây)60STREAMING_TIMEOUT=120
MAX_FILE_DOWNLOAD_MBKích thước tải xuống tệp tối đa (MB)20MAX_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ườngMô tảGiá trị mặc địnhVí dụ
CHANNEL_UPDATE_FREQUENCYCập nhật định kỳ số dư kênh (phút)-CHANNEL_UPDATE_FREQUENCY=1440
CHANNEL_TEST_FREQUENCYKiểm tra kênh định kỳ (phút)-CHANNEL_TEST_FREQUENCY=1440
POLLING_INTERVALKhoảng thời gian yêu cầu trong quá trình cập nhật kênh hàng loạt (giây)0POLLING_INTERVAL=5
ENABLE_METRICCó tắt kênh hay không dựa trên tỷ lệ thành công của yêu cầufalseENABLE_METRIC=true
METRIC_QUEUE_SIZEYêu cầu kích thước hàng đợi thống kê tỷ lệ thành công10METRIC_QUEUE_SIZE=20
METRIC_SUCCESS_RATE_THRESHOLDYêu cầu ngưỡng tỷ lệ thành công0.8METRIC_SUCCESS_RATE_THRESHOLD=0.7
TEST_PROMPTLời nhắc của người dùng khi thử nghiệm mô hìnhPrint your model name exactly...TEST_PROMPT=Hello

Cấu hình proxy

Biến môi trườngMô tảMặc địnhVí dụ
RELAY_PROXYProxy cho các cuộc gọi chuyển tiếp-RELAY_PROXY=http://127.0.0.1:7890
USER_CONTENT_REQUEST_PROXYProxy 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ườngMô tảGiá trị mặc địnhVí dụ
FORCE_STREAM_OPTIONGhi đè tham số stream_options của khách hàngtrueFORCE_STREAM_OPTION=false
GET_MEDIA_TOKENCó đếm mã thông báo hình ảnh hay khôngtrueGET_MEDIA_TOKEN=false
GET_MEDIA_TOKEN_NOT_STREAMCó đếm mã thông báo hình ảnh ở chế độ không phát trực tuyến hay khôngtrueGET_MEDIA_TOKEN_NOT_STREAM=false
UPDATE_TASKCó cập nhật các tác vụ không đồng bộ (MJ, Suno)trueUPDATE_TASK=false
ENFORCE_INCLUDE_USAGEBuộc sử dụng trở lại ở chế độ phát trực tuyếnfalseENFORCE_INCLUDE_USAGE=true
TIKTOKEN_CACHE_DIRThư 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_DIRThư 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ành 9b5ad71b2ce5302211f9c61530b329a4922fc6a4
  • o200k_base.tiktoken đổi tên thành fb374d419588a4632f3f557e76b4b70aebbca790

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ườngMô tảGiá trị mặc địnhVí dụ
AZURE_DEFAULT_API_VERSIONPhiên bản API mặc định của kênh Azure2024-12-01-previewAZURE_DEFAULT_API_VERSION=2023-05-15
COHERE_SAFETY_SETTINGCài đặt an toàn mô hình CohereNONECOHERE_SAFETY_SETTING=CONTEXTUAL
GEMINI_VISION_MAX_IMAGE_NUMSố lượng hình ảnh tối đa của người mẫu Song Tử16GEMINI_VISION_MAX_IMAGE_NUM=8
GEMINI_VERSIONPhiên bản Song Tửv1GEMINI_VERSION=v1beta
DIFY_DEBUGDify quy trình làm việc đầu ra kênh và thông tin núttrueDIFY_DEBUG=false

Cấu hình khác

Biến môi trườngMô tảGiá trị mặc địnhVí dụ
EMAIL_SERVERCấ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_PASSWORDMật khẩu máy chủ email-EMAIL_PASSWORD=yourpassword
ERROR_LOG_ENABLEDCó ghi lại và hiển thị nhật ký lỗi trên giao diện người dùng hay khôngsaiERROR_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ườngPhương pháp thay thế
GEMINI_MODEL_MAPVui lòng đặt trong Cài đặt hệ thống - Cài đặt liên quan đến kiểu máy
GEMINI_SAFETY_SETTINGVui 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:6379

Cấ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=60

Cấ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.