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'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
PORT | Port d'écoute du service | 3000 | PORT=8080 |
TZ | Réglage du fuseau horaire | Asia/Shanghai | TZ=America/New_York |
##Configuration de la base de données
| Variable d'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
SQL_DSN | Chaîne de connexion à la base de données | SQLite (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_CONNS | Nombre maximum de connexions inactives dans le pool de connexions | 100 | SQL_MAX_IDLE_CONNS=50 |
SQL_MAX_OPEN_CONNS | Nombre maximum de connexions ouvertes dans le pool de connexions | 1000 | SQL_MAX_OPEN_CONNS=500 |
SQL_CONN_MAX_LIFETIME | Durée de vie maximale de la connexion (minutes) | 60 | SQL_CONN_MAX_LIFETIME=120 |
LOG_SQL_DSN | Chaî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_TIMEOUT | Délai d'attente du verrouillage SQLite (millisecondes) | 3000 | SQLITE_BUSY_TIMEOUT=5000 |
##Configuration du cache
| Variable d'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
REDIS_CONN_STRING | Chaîne de connexion Redis | - | REDIS_CONN_STRING=redis://default:redispw@localhost:6379 |
MEMORY_CACHE_ENABLED | S'il faut activer le cache mémoire | false | MEMORY_CACHE_ENABLED=true |
REDIS_CONN_POOL_SIZE | Taille du pool de connexion Redis | - | REDIS_CONN_POOL_SIZE=10 |
REDIS_PASSWORD | Mot de passe pour le cluster Redis ou le mode sentinelle | - | REDIS_PASSWORD=your_password |
REDIS_MASTER_NAME | Nom du maître du mode sentinelle Redis | - | REDIS_MASTER_NAME=mymaster |
BATCH_UPDATE_ENABLED | Activer l'agrégation des mises à jour par lots de la base de données | false | BATCH_UPDATE_ENABLED=true |
BATCH_UPDATE_INTERVAL | Intervalle d'agrégation des mises à jour par lots (secondes) | 5 | BATCH_UPDATE_INTERVAL=10 |
Configuration multi-nœuds et sécurité
| Variable d'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
SESSION_SECRET | Secret de session (obligatoire pour le déploiement sur plusieurs machines) | - | SESSION_SECRET=random_string |
CRYPTO_SECRET | Clé de chiffrement (crypte le contenu de la base de données) | - | CRYPTO_SECRET=your_crypto_secret |
FRONTEND_BASE_URL | URL de base du front-end | - | FRONTEND_BASE_URL=https://your-domain.com |
SYNC_FREQUENCY | Fréquence de synchronisation du cache et de la base de données (secondes) | 600 | SYNC_FREQUENCY=60 |
NODE_TYPE | Type de nœud | master | NODE_TYPE=slave |
INITIAL_ROOT_TOKEN | Jeton d'utilisateur root créé au premier démarrage | - | INITIAL_ROOT_TOKEN=your_token |
INITIAL_ROOT_ACCESS_TOKEN | Jeton 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'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
DEFAULT_QUOTA | Quota par défaut pour les nouveaux utilisateurs | 0 | DEFAULT_QUOTA=10 |
GLOBAL_USER_QUOTA | Limite globale du quota d'utilisateurs | - | GLOBAL_USER_QUOTA=100 |
GENERATE_DEFAULT_TOKEN | Générer un jeton initial pour les nouveaux utilisateurs enregistrés | false | GENERATE_DEFAULT_TOKEN=true |
NOTIFICATION_LIMIT_DURATION_MINUTE | Durée du délai de notification (minutes) | 10 | NOTIFICATION_LIMIT_DURATION_MINUTE=15 |
NOTIFY_LIMIT_COUNT | Nombre maximum de notifications pendant la durée spécifiée | 2 | NOTIFY_LIMIT_COUNT=3 |
Configuration de la limite de requête
| Variable d'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
GLOBAL_API_RATE_LIMIT | Limite de débit API globale (par IP, trois minutes) | 180 | GLOBAL_API_RATE_LIMIT=100 |
GLOBAL_WEB_RATE_LIMIT | Limite de débit Web mondial (par IP, trois minutes) | 60 | GLOBAL_WEB_RATE_LIMIT=30 |
RELAY_TIMEOUT | Délai d'expiration de la demande de relais (secondes) | - | RELAY_TIMEOUT=60 |
USER_CONTENT_REQUEST_TIMEOUT | Délai d'expiration du téléchargement du contenu utilisateur (secondes) | - | USER_CONTENT_REQUEST_TIMEOUT=30 |
STREAMING_TIMEOUT | Délai d'expiration de réponse unique en streaming (secondes) | 60 | STREAMING_TIMEOUT=120 |
MAX_FILE_DOWNLOAD_MB | Taille maximale de téléchargement de fichier (Mo) | 20 | MAX_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'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
CHANNEL_UPDATE_FREQUENCY | Mettre à jour périodiquement le solde des chaînes (minutes) | - | CHANNEL_UPDATE_FREQUENCY=1440 |
CHANNEL_TEST_FREQUENCY | Vérifiez périodiquement les chaînes (minutes) | - | CHANNEL_TEST_FREQUENCY=1440 |
POLLING_INTERVAL | Intervalle de requête lors des mises à jour des canaux par lots (secondes) | 0 | POLLING_INTERVAL=5 |
ENABLE_METRIC | Faut-il désactiver les canaux en fonction du taux de réussite des demandes | false | ENABLE_METRIC=true |
METRIC_QUEUE_SIZE | Taille de la file d'attente des statistiques de taux de réussite des demandes | 10 | METRIC_QUEUE_SIZE=20 |
METRIC_SUCCESS_RATE_THRESHOLD | Seuil de taux de réussite des demandes | 0.8 | METRIC_SUCCESS_RATE_THRESHOLD=0.7 |
TEST_PROMPT | Invite de l'utilisateur lors du test des modèles | Print your model name exactly... | TEST_PROMPT=Hello |
Configuration du proxy
| Variable d'environnement | Descriptif | Par défaut | Exemple |
|---|---|---|---|
RELAY_PROXY | Proxy pour les appels relais | - | RELAY_PROXY=http://127.0.0.1:7890 |
USER_CONTENT_REQUEST_PROXY | Proxy 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'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
FORCE_STREAM_OPTION | Remplacer le paramètre stream_options du client | true | FORCE_STREAM_OPTION=false |
GET_MEDIA_TOKEN | S'il faut compter les jetons d'image | true | GET_MEDIA_TOKEN=false |
GET_MEDIA_TOKEN_NOT_STREAM | S'il faut compter les jetons d'image en mode sans streaming | true | GET_MEDIA_TOKEN_NOT_STREAM=false |
UPDATE_TASK | S'il faut mettre à jour les tâches asynchrones (MJ, Suno) | true | UPDATE_TASK=false |
ENFORCE_INCLUDE_USAGE | Forcer le retour de l'utilisation en mode flux | false | ENFORCE_INCLUDE_USAGE=true |
TIKTOKEN_CACHE_DIR | Ré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_DIR | Ré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.tiktokenrenommé en9b5ad71b2ce5302211f9c61530b329a4922fc6a4o200k_base.tiktokenrenommé enfb374d419588a4632f3f557e76b4b70aebbca790
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'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
AZURE_DEFAULT_API_VERSION | Version de l'API par défaut du canal Azure | 2024-12-01-preview | AZURE_DEFAULT_API_VERSION=2023-05-15 |
COHERE_SAFETY_SETTING | Paramètres de sécurité du modèle Cohere | NONE | COHERE_SAFETY_SETTING=CONTEXTUAL |
GEMINI_VISION_MAX_IMAGE_NUM | Nombre maximum d'images du modèle Gemini | 16 | GEMINI_VISION_MAX_IMAGE_NUM=8 |
GEMINI_VERSION | Version Gémeaux | v1 | GEMINI_VERSION=v1beta |
DIFY_DEBUG | Modifier le flux de travail de sortie du canal et les informations sur les nœuds | true | DIFY_DEBUG=false |
Autre configuration
| Variable d'environnement | Descriptif | Valeur par défaut | Exemple |
|---|---|---|---|
EMAIL_SERVER | Configuration du serveur de messagerie | - | EMAIL_SERVER=smtp.example.com:25 |
EMAIL_FROM | Adresse de l'expéditeur de l'e-mail | - | EMAIL_FROM=noreply@example.com |
EMAIL_PASSWORD | Mot de passe du serveur de messagerie | - | EMAIL_PASSWORD=yourpassword |
ERROR_LOG_ENABLED | S'il faut enregistrer et afficher les journaux d'erreurs sur le frontend | faux | ERROR_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'environnement | Méthode alternative |
|---|---|
GEMINI_MODEL_MAP | Veuillez définir dans Paramètres système - Paramètres liés au modèle |
GEMINI_SAFETY_SETTING | Veuillez 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:6379Configuration 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=60Configuration 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=1440Pour 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).