📝 Description du projet
[!IMPORTANT]
🤝 Partenaires de confiance
Sans ordre particulier
🙏 Remerciements spéciaux
Merci à JetBrains pour avoir fourni une licence de développement open-source gratuite pour ce projet
🚀 Démarrage rapide
Utilisation de Docker Compose (recommandé)
# Cloner le projet
git clone https://github.com/QuantumNous/new-api.git
cd new-api
# Modifier la configuration docker-compose.yml
nano docker-compose.yml
# Démarrer le service
docker-compose up -d
Utilisation des commandes Docker
```bash
# Tirer la dernière image
docker pull calciumion/new-api:latest
# Utilisation de SQLite (par défaut)
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v ./data:/data \
calciumion/new-api:latest
# Utilisation de MySQL
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \
-e TZ=Asia/Shanghai \
-v ./data:/data \
calciumion/new-api:latest
```
> **💡 Astuce:** `-v ./data:/data` sauvegardera les données dans le dossier `data` du répertoire actuel, vous pouvez également le changer en chemin absolu comme `-v /your/custom/path:/data`
🎉 Après le déploiement, visitez http://localhost:3000 pour commencer à utiliser!
📖 Pour plus de méthodes de déploiement, veuillez vous référer à Guide de déploiement
📚 Documentation
### 📖 [Documentation officielle](https://docs.newapi.pro/en/docs) | [](https://deepwiki.com/QuantumNous/new-api)
Navigation rapide:
✨ Fonctionnalités clés
Pour les fonctionnalités détaillées, veuillez vous référer à Présentation des fonctionnalités |
🎨 Fonctions principales
| Fonctionnalité |
Description |
| 🎨 Nouvelle interface utilisateur |
Conception d'interface utilisateur moderne |
| 🌍 Multilingue |
Prend en charge le chinois simplifié, le chinois traditionnel, l'anglais, le français et le japonais |
| 🔄 Compatibilité des données |
Complètement compatible avec la base de données originale de One API |
| 📈 Tableau de bord des données |
Console visuelle et analyse statistique |
| 🔒 Gestion des permissions |
Regroupement de jetons, restrictions de modèles, gestion des utilisateurs |
💰 Paiement et facturation
- ✅ Recharge en ligne (EPay, Stripe)
- ✅ Tarification des modèles de paiement à l'utilisation
- ✅ Prise en charge de la facturation du cache (OpenAI, Azure, DeepSeek, Claude, Qwen et tous les modèles pris en charge)
- ✅ Configuration flexible des politiques de facturation
🔐 Autorisation et sécurité
- 😈 Connexion par autorisation Discord
- 🤖 Connexion par autorisation LinuxDO
- 📱 Connexion par autorisation Telegram
- 🔑 Authentification unifiée OIDC
- 🔍 Requête de quota d'utilisation de clé (avec neko-api-key-tool)
🚀 Fonctionnalités avancées
Prise en charge des formats d'API:
Routage intelligent:
- ⚖️ Sélection aléatoire pondérée des canaux
- 🔄 Nouvelle tentative automatique en cas d'échec
- 🚦 Limitation du débit du modèle pour les utilisateurs
Conversion de format:
- 🔄 OpenAI Compatible ⇄ Claude Messages
- 🔄 OpenAI Compatible → Google Gemini
- 🔄 Google Gemini → OpenAI Compatible - Texte uniquement, les appels de fonction ne sont pas encore pris en charge
- 🚧 OpenAI Compatible ⇄ OpenAI Responses - En développement
- 🔄 Fonctionnalité de la pensée au contenu
Prise en charge de l'effort de raisonnement:
Voir la configuration détaillée
**Modèles de la série OpenAI :**
- `o3-mini-high` - Effort de raisonnement élevé
- `o3-mini-medium` - Effort de raisonnement moyen
- `o3-mini-low` - Effort de raisonnement faible
- `gpt-5-high` - Effort de raisonnement élevé
- `gpt-5-medium` - Effort de raisonnement moyen
- `gpt-5-low` - Effort de raisonnement faible
**Modèles de pensée de Claude:**
- `claude-3-7-sonnet-20250219-thinking` - Activer le mode de pensée
**Modèles de la série Google Gemini:**
- `gemini-2.5-flash-thinking` - Activer le mode de pensée
- `gemini-2.5-flash-nothinking` - Désactiver le mode de pensée
- `gemini-2.5-pro-thinking` - Activer le mode de pensée
- `gemini-2.5-pro-thinking-128` - Activer le mode de pensée avec budget de pensée de 128 tokens
- Vous pouvez également ajouter les suffixes `-low`, `-medium` ou `-high` aux modèles Gemini pour fixer le niveau d’effort de raisonnement (sans suffixe de budget supplémentaire).
🤖 Prise en charge des modèles
Pour les détails, veuillez vous référer à Documentation de l'API - Interface de relais
📡 Interfaces prises en charge
Voir la liste complète des interfaces
- [Interface de discussion (Chat Completions)](https://docs.newapi.pro/en/docs/api/ai-model/chat/openai/createchatcompletion)
- [Interface de réponse (Responses)](https://docs.newapi.pro/en/docs/api/ai-model/chat/openai/createresponse)
- [Interface d'image (Image)](https://docs.newapi.pro/en/docs/api/ai-model/images/openai/post-v1-images-generations)
- [Interface audio (Audio)](https://docs.newapi.pro/en/docs/api/ai-model/audio/openai/create-transcription)
- [Interface vidéo (Video)](https://docs.newapi.pro/en/docs/api/ai-model/audio/openai/createspeech)
- [Interface d'incorporation (Embeddings)](https://docs.newapi.pro/en/docs/api/ai-model/embeddings/createembedding)
- [Interface de rerank (Rerank)](https://docs.newapi.pro/en/docs/api/ai-model/rerank/creatererank)
- [Conversation en temps réel (Realtime)](https://docs.newapi.pro/en/docs/api/ai-model/realtime/createrealtimesession)
- [Discussion Claude](https://docs.newapi.pro/en/docs/api/ai-model/chat/createmessage)
- [Discussion Google Gemini](https://docs.newapi.pro/en/docs/api/ai-model/chat/gemini/geminirelayv1beta)
🚢 Déploiement
[!TIP]
Dernière image Docker: calciumion/new-api:latest
📋 Exigences de déploiement
| Composant |
Exigence |
| Base de données locale |
SQLite (Docker doit monter le répertoire /data) |
| **Base de données distante |
MySQL ≥ 5.7.8 ou PostgreSQL ≥ 9.6 |
| Moteur de conteneur |
Docker / Docker Compose |
⚙️ Configuration des variables d'environnement
Configuration courante des variables d'environnement
| Nom de variable | Description | Valeur par défaut |
|--------|------|--------|
| `SESSION_SECRET` | Secret de session (requis pour le déploiement multi-machines) |
| `CRYPTO_SECRET` | Secret de chiffrement (requis pour Redis) | - |
| `SQL_DSN` | Chaine de connexion à la base de données | - |
| `REDIS_CONN_STRING` | Chaine de connexion Redis | - |
| `STREAMING_TIMEOUT` | Délai d'expiration du streaming (secondes) | `300` |
| `STREAM_SCANNER_MAX_BUFFER_MB` | Taille max du buffer par ligne (Mo) pour le scanner SSE ; à augmenter quand les sorties image/base64 sont très volumineuses (ex. images 4K) | `64` |
| `MAX_REQUEST_BODY_MB` | Taille maximale du corps de requête (Mo, comptée **après décompression** ; évite les requêtes énormes/zip bombs qui saturent la mémoire). Dépassement ⇒ `413` | `32` |
| `AZURE_DEFAULT_API_VERSION` | Version de l'API Azure | `2025-04-01-preview` |
| `ERROR_LOG_ENABLED` | Interrupteur du journal d'erreurs | `false` |
| `PYROSCOPE_URL` | Adresse du serveur Pyroscope | - |
| `PYROSCOPE_APP_NAME` | Nom de l'application Pyroscope | `new-api` |
| `PYROSCOPE_BASIC_AUTH_USER` | Utilisateur Basic Auth Pyroscope | - |
| `PYROSCOPE_BASIC_AUTH_PASSWORD` | Mot de passe Basic Auth Pyroscope | - |
| `PYROSCOPE_MUTEX_RATE` | Taux d'échantillonnage mutex Pyroscope | `5` |
| `PYROSCOPE_BLOCK_RATE` | Taux d'échantillonnage block Pyroscope | `5` |
| `HOSTNAME` | Nom d'hôte tagué pour Pyroscope | `new-api` |
📖 **Configuration complète:** [Documentation des variables d'environnement](https://docs.newapi.pro/en/docs/installation/config-maintenance/environment-variables)
🔧 Méthodes de déploiement
Méthode 1: Docker Compose (recommandé)
```bash
# Cloner le projet
git clone https://github.com/QuantumNous/new-api.git
cd new-api
# Modifier la configuration
nano docker-compose.yml
# Démarrer le service
docker-compose up -d
```
Méthode 2: Commandes Docker
**Utilisation de SQLite:**
```bash
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v ./data:/data \
calciumion/new-api:latest
```
**Utilisation de MySQL:**
```bash
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \
-e TZ=Asia/Shanghai \
-v ./data:/data \
calciumion/new-api:latest
```
> **💡 Explication du chemin:**
> - `./data:/data` - Chemin relatif, données sauvegardées dans le dossier data du répertoire actuel
> - Vous pouvez également utiliser un chemin absolu, par exemple : `/your/custom/path:/data`
Méthode 3: Panneau BaoTa
1. Installez le panneau BaoTa (version ≥ 9.2.0)
2. Recherchez **New-API** dans le magasin d'applications
3. Installation en un clic
📖 [Tutoriel avec des images](./docs/BT.md)
⚠️ Considérations sur le déploiement multi-machines
[!WARNING]
- Doit définir
SESSION_SECRET - Sinon l'état de connexion sera incohérent sur plusieurs machines
- Redis partagé doit définir
CRYPTO_SECRET - Sinon les données ne pourront pas être déchiffrées
🔄 Nouvelle tentative de canal et cache
Configuration de la nouvelle tentative: Paramètres → Paramètres de fonctionnement → Paramètres généraux → Nombre de tentatives en cas d'échec
Configuration du cache:
REDIS_CONN_STRING: Cache Redis (recommandé)
MEMORY_CACHE_ENABLED: Cache mémoire
🔗 Projets connexes
Projets en amont
Outils d'accompagnement
💬 Aide et support
📖 Ressources de documentation
🤝 Guide de contribution
Bienvenue à toutes les formes de contribution!
- 🐛 Signaler des bogues
- 💡 Proposer de nouvelles fonctionnalités
- 📝 Améliorer la documentation
- 🔧 Soumettre du code
📜 Licence
Ce projet est sous licence GNU Affero General Public License v3.0 (AGPLv3).
Il s'agit d'un projet open-source développé sur la base de One API (licence MIT).
Si les politiques de votre organisation ne permettent pas l'utilisation de logiciels sous licence AGPLv3, ou si vous souhaitez éviter les obligations open-source de l'AGPLv3, veuillez nous contacter à : [email protected]
🌟 Historique des étoiles
[](https://star-history.com/#Calcium-Ion/new-api&Date)
### 💖 Merci d'utiliser New API
Si ce projet vous est utile, bienvenue à nous donner une ⭐️ Étoile!
**[Documentation officielle](https://docs.newapi.pro/en/docs)** • **[Commentaires sur les problèmes](https://github.com/Calcium-Ion/new-api/issues)** • **[Dernière version](https://github.com/Calcium-Ion/new-api/releases)**
Construit avec ❤️ par QuantumNous