88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support

Guide de configuration des variables d'environnement

Ce document fournit toutes les variables d'environnement prises en charge par 88API et leurs instructions de configuration. Vous pouvez personnaliser le comportement du système en définissant ces variables d'environnement.

Astuce

88API prend en charge la lecture des variables d'environnement à partir du fichier .env. S'il te plaît reportez-vous au fichier .env.example et renommez-le en .env pour l'utiliser.

##Configuration de base

Variable d'environnementDescriptifValeur par défautExemple
PORTPort d'écoute du service3000PORT=8080
TZRéglage du fuseau horaireAsia/ShanghaiTZ=America/New_York

##Configuration de la base de données

Variable d'environnementDescriptifValeur par défautExemple
SQL_DSNChaîne de connexion à la base de donnéesSQLite (données/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_CONNSNombre maximum de connexions inactives dans le pool de connexions100SQL_MAX_IDLE_CONNS=50
SQL_MAX_OPEN_CONNSNombre maximum de connexions ouvertes dans le pool de connexions1000SQL_MAX_OPEN_CONNS=500
SQL_CONN_MAX_LIFETIMEDurée de vie maximale de la connexion (minutes)60SQL_CONN_MAX_LIFETIME=120
LOG_SQL_DSNChaîne de connexion à la base de données distincte pour la table de journal-LOG_SQL_DSN=root:123456@tcp(localhost:3306)/oneapi_logs
SQLITE_BUSY_TIMEOUTDélai d'attente du verrouillage SQLite (millisecondes)3000SQLITE_BUSY_TIMEOUT=5000

##Configuration du cache

Variable d'environnementDescriptifValeur par défautExemple
REDIS_CONN_STRINGChaîne de connexion Redis-REDIS_CONN_STRING=redis://default:redispw@localhost:6379
MEMORY_CACHE_ENABLEDS'il faut activer le cache mémoirefalseMEMORY_CACHE_ENABLED=true
REDIS_CONN_POOL_SIZETaille du pool de connexion Redis-REDIS_CONN_POOL_SIZE=10
REDIS_PASSWORDMot de passe pour le cluster Redis ou le mode sentinelle-REDIS_PASSWORD=your_password
REDIS_MASTER_NAMENom du maître du mode sentinelle Redis-REDIS_MASTER_NAME=mymaster
BATCH_UPDATE_ENABLEDActiver l'agrégation des mises à jour par lots de la base de donnéesfalseBATCH_UPDATE_ENABLED=true
BATCH_UPDATE_INTERVALIntervalle d'agrégation des mises à jour par lots (secondes)5BATCH_UPDATE_INTERVAL=10

Configuration multi-nœuds et sécurité

Variable d'environnementDescriptifValeur par défautExemple
SESSION_SECRETSecret de session (obligatoire pour le déploiement sur plusieurs machines)-SESSION_SECRET=random_string
CRYPTO_SECRETClé de chiffrement (crypte le contenu de la base de données)-CRYPTO_SECRET=your_crypto_secret
FRONTEND_BASE_URLURL de base du front-end-FRONTEND_BASE_URL=https://your-domain.com
SYNC_FREQUENCYFréquence de synchronisation du cache et de la base de données (secondes)600SYNC_FREQUENCY=60
NODE_TYPEType de nœudmasterNODE_TYPE=slave
INITIAL_ROOT_TOKENJeton d'utilisateur root créé au premier démarrage-INITIAL_ROOT_TOKEN=your_token
INITIAL_ROOT_ACCESS_TOKENJeton de gestion du système créé au premier démarrage-INITIAL_ROOT_ACCESS_TOKEN=your_token

Déploiement du cluster

Pour plus d'informations sur la façon d'utiliser ces variables d'environnement pour créer un déploiement de cluster, veuillez vous référer au Déploiement de cluster Guide.

Configuration des utilisateurs et des jetons

Variable d'environnementDescriptifValeur par défautExemple
DEFAULT_QUOTAQuota par défaut pour les nouveaux utilisateurs0DEFAULT_QUOTA=10
GLOBAL_USER_QUOTALimite globale du quota d'utilisateurs-GLOBAL_USER_QUOTA=100
GENERATE_DEFAULT_TOKENGénérer un jeton initial pour les nouveaux utilisateurs enregistrésfalseGENERATE_DEFAULT_TOKEN=true
NOTIFICATION_LIMIT_DURATION_MINUTEDurée du délai de notification (minutes)10NOTIFICATION_LIMIT_DURATION_MINUTE=15
NOTIFY_LIMIT_COUNTNombre maximum de notifications pendant la durée spécifiée2NOTIFY_LIMIT_COUNT=3

Configuration de la limite de requête

Variable d'environnementDescriptifValeur par défautExemple
GLOBAL_API_RATE_LIMITLimite de débit API globale (par IP, trois minutes)180GLOBAL_API_RATE_LIMIT=100
GLOBAL_WEB_RATE_LIMITLimite de débit Web mondial (par IP, trois minutes)60GLOBAL_WEB_RATE_LIMIT=30
RELAY_TIMEOUTDélai d'expiration de la demande de relais (secondes)-RELAY_TIMEOUT=60
USER_CONTENT_REQUEST_TIMEOUTDélai d'expiration du téléchargement du contenu utilisateur (secondes)-USER_CONTENT_REQUEST_TIMEOUT=30
STREAMING_TIMEOUTDélai d'expiration de réponse unique en streaming (secondes)60STREAMING_TIMEOUT=120
MAX_FILE_DOWNLOAD_MBTaille maximale de téléchargement de fichier (Mo)20MAX_FILE_DOWNLOAD_MB=50

Avertissement de réglage RELAY_TIMEOUT

Veuillez faire preuve de prudence lorsque vous définissez la variable d'environnement RELAY_TIMEOUT. Un réglage trop court peut entraîner les problèmes suivants:

  • L'API en amont a terminé la demande et facturé, mais la facturation locale a échoué en raison d'un délai d'attente.

  • Provoquant des problèmes de synchronisation de facturation, pouvant entraîner des pertes du système

  • Il est recommandé de ne pas configurer cette option, sauf si vous savez ce que vous faites

Configuration de la gestion des canaux

Variable d'environnementDescriptifValeur par défautExemple
CHANNEL_UPDATE_FREQUENCYMettre à jour périodiquement le solde des chaînes (minutes)-CHANNEL_UPDATE_FREQUENCY=1440
CHANNEL_TEST_FREQUENCYVérifiez périodiquement les chaînes (minutes)-CHANNEL_TEST_FREQUENCY=1440
POLLING_INTERVALIntervalle de requête lors des mises à jour des canaux par lots (secondes)0POLLING_INTERVAL=5
ENABLE_METRICFaut-il désactiver les canaux en fonction du taux de réussite des demandesfalseENABLE_METRIC=true
METRIC_QUEUE_SIZETaille de la file d'attente des statistiques de taux de réussite des demandes10METRIC_QUEUE_SIZE=20
METRIC_SUCCESS_RATE_THRESHOLDSeuil de taux de réussite des demandes0.8METRIC_SUCCESS_RATE_THRESHOLD=0.7
TEST_PROMPTInvite de l'utilisateur lors du test des modèlesPrint your model name exactly...TEST_PROMPT=Hello

Configuration du proxy

Variable d'environnementDescriptifPar défautExemple
RELAY_PROXYProxy pour les appels relais-RELAY_PROXY=http://127.0.0.1:7890
USER_CONTENT_REQUEST_PROXYProxy pour le contenu utilisateur-USER_CONTENT_REQUEST_PROXY=http://127.0.0.1:7890

Configuration du modèle et du traitement des demandes

Variable d'environnementDescriptifValeur par défautExemple
FORCE_STREAM_OPTIONRemplacer le paramètre stream_options du clienttrueFORCE_STREAM_OPTION=false
GET_MEDIA_TOKENS'il faut compter les jetons d'imagetrueGET_MEDIA_TOKEN=false
GET_MEDIA_TOKEN_NOT_STREAMS'il faut compter les jetons d'image en mode sans streamingtrueGET_MEDIA_TOKEN_NOT_STREAM=false
UPDATE_TASKS'il faut mettre à jour les tâches asynchrones (MJ, Suno)trueUPDATE_TASK=false
ENFORCE_INCLUDE_USAGEForcer le retour de l'utilisation en mode fluxfalseENFORCE_INCLUDE_USAGE=true
TIKTOKEN_CACHE_DIRRépertoire de cache de l'encodeur Tiktoken, utilisé pour stocker les fichiers tokenizer afin d'éviter le téléchargement sur le réseau-TIKTOKEN_CACHE_DIR=/cache/tiktoken
DATA_GYM_CACHE_DIRRépertoire de cache DataGym-DATA_GYM_CACHE_DIR=/cache/data_gym

Configuration du fichier TikTok

Après avoir téléchargé les fichiers tiktoken, veuillez les renommer comme suit:

  • cl100k_base.tiktoken renommé en 9b5ad71b2ce5302211f9c61530b329a4922fc6a4
  • o200k_base.tiktoken renommé en fb374d419588a4632f3f557e76b4b70aebbca790

Ces fichiers doivent être placés dans le répertoire spécifié par TIKTOKEN_CACHE_DIR pour améliorer les performances de calcul des jetons et réduire la dépendance au réseau.

Exemple de configuration TikTok

# 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 est le tokenizer utilisé par OpenAI pour calculer le nombre de jetons dans le texte. En mettant ces fichiers en cache localement, le système peut éviter de les télécharger depuis le réseau à chaque démarrage, améliorant ainsi la stabilité et les performances, en particulier dans les environnements réseau restreints.

Configuration de modèle spécifique

Variable d'environnementDescriptifValeur par défautExemple
AZURE_DEFAULT_API_VERSIONVersion de l'API par défaut du canal Azure2024-12-01-previewAZURE_DEFAULT_API_VERSION=2023-05-15
COHERE_SAFETY_SETTINGParamètres de sécurité du modèle CohereNONECOHERE_SAFETY_SETTING=CONTEXTUAL
GEMINI_VISION_MAX_IMAGE_NUMNombre maximum d'images du modèle Gemini16GEMINI_VISION_MAX_IMAGE_NUM=8
GEMINI_VERSIONVersion Gémeauxv1GEMINI_VERSION=v1beta
DIFY_DEBUGModifier le flux de travail de sortie du canal et les informations sur les nœudstrueDIFY_DEBUG=false

Autre configuration

Variable d'environnementDescriptifValeur par défautExemple
EMAIL_SERVERConfiguration du serveur de messagerie-EMAIL_SERVER=smtp.example.com:25
EMAIL_FROMAdresse de l'expéditeur de l'e-mail-EMAIL_FROM=noreply@example.com
EMAIL_PASSWORDMot de passe du serveur de messagerie-EMAIL_PASSWORD=yourpassword
ERROR_LOG_ENABLEDS'il faut enregistrer et afficher les journaux d'erreurs sur le frontendfauxERROR_LOG_ENABLED=true

Variables d'environnement obsolètes

Les variables d'environnement suivantes sont obsolètes. Veuillez utiliser les options correspondantes dans l'interface des paramètres système:

Variable d'environnementMéthode alternative
GEMINI_MODEL_MAPVeuillez définir dans Paramètres système - Paramètres liés au modèle
GEMINI_SAFETY_SETTINGVeuillez définir dans Paramètres système - Paramètres liés au modèle

Exemple de déploiement multi-machines

Dans les scénarios de déploiement sur plusieurs machines, les variables d'environnement suivantes doivent être définies:

Configuration du nœud maître

# 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

Configuration du nœud esclave

# 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

Configuration complète du cluster

Ceci est juste un exemple de configuration de base multi-nœuds. Pour un cluster complet configuration du déploiement, description de l'architecture et bonnes pratiques, veuillez reportez-vous au [Guide de déploiement de cluster] (cluster-deployment.md).

Exemple de variable d'environnement dans Docker Compose

Vous trouverez ci-dessous un bref exemple de définition de variables d'environnement dans un fichier de configuration 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

Pour la configuration complète de Docker Compose, y compris davantage d'options de configuration des variables d'environnement, veuillez vous référer au document [Instructions de configuration de Docker Compose] (docker-compose-yml.md).