À propos du projet
# One API
Accédez à tous les grands modèles via le format standard de l'API OpenAI, prêt à l'emploi.
## Modèles et canaux supportés
- Série OpenAI ChatGPT (incluant Azure OpenAI)
- Série Anthropic Claude (incluant AWS Claude)
- Série Google PaLM2 / Gemini
- Série Mistral
- ByteDance Doubao (Volcano Engine)
- Baidu Wenxin Yiyan
- Alibaba Tongyi Qianwen
- iFlytek Spark
- Zhipu ChatGLM
- 360 ZhiNao
- Tencent Hunyuan
- Moonshot AI, Baichuan, MINIMAX, DeepSeek
- Groq, Ollama, Zero One Everything, StepFun, Coze
- Cohere, Cloudflare Workers AI, together.ai, novita.ai
- SiliconCloud, xAI, DeepL, etc.
## Fonctionnalités principales
1. **Adaptation API unifiée** : Tous les canaux fournissent des interfaces compatibles OpenAI, permettant de changer de modèle sans modifier le code.
2. **Répartition de charge** : Routing multi-canal avec attribution automatique des requêtes basée sur les coefficients de groupe.
3. **Gestion des jetons** : Configuration des durées de validité, limites de quota, plages IP autorisées et listes de modèles pour chaque jeton d'accès.
4. **Gestion des canaux** : Création et gestion groupées de plusieurs canaux aval, avec configuration séparée des listes de modèles.
5. **Regroupement d'utilisateurs** : Différents groupes d'utilisateurs peuvent avoir des coefficients et permissions différents.
6. **Codes d'échange** : Génération et export massif de codes pour le rechargement de comptes.
7. **Reprise automatique en cas d'échec** : Basculement automatique vers d'autres canaux disponibles en cas d'échec du canal amont.
8. **Interface de dessin** : Support du relais d'interfaces de génération d'images.
9. **Récompenses d'invitation** : Support du mécanisme d'invitation entre utilisateurs.
10. **Déploiement multi-machines** : Support de l'architecture distribuée master/slave avec synchronisation de cache via Redis.
11. **Personnalisation** : Support de la personnalisation du nom du système, logo, pied de page, page d'accueil et page À propos.
12. **Modes de connexion** : Support de l'inscription par email, autorisation Feishu, autorisation GitHub, autorisation WeChat Official Account.
13. **Cloudflare AI Gateway** : Intégration directe avec Cloudflare AI Gateway.
14. **Changement de thème** : Support du changement de thème UI.
## Méthodes de déploiement
### Déploiement Docker (recommandé)
```shell
# Mode SQLite
docker run --name one-api -d --restart always -p 3000:3000 \
-e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data \
justsong/one-api
# Mode MySQL
docker run --name one-api -d --restart always -p 3000:3000 \
-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \
-e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data \
justsong/one-api
```
Compte initial : nom d'utilisateur `root`, mot de passe `123456`.
### Déploiement Docker Compose
```shell
docker-compose up -d
```
Les données sont stockées dans le répertoire `./data/mysql`.
### Déploiement manuel
```shell
git clone https://github.com/songquanpeng/one-api.git
cd one-api/web/default && npm install && npm run build
cd ../.. && go mod download && go build -ldflags "-s -w" -o one-api
./one-api --port 3000 --log-dir ./logs
```
### Plateformes tierces
Supporte le déploiement en un clic via Sealos, Zeabur, Render, etc., et est compatible avec le panneau Baota.
## Utilisation
1. Ajoutez les clés API de chaque modèle dans la page « Canaux ».
2. Créez des jetons d'accès pour les utilisateurs spécifiés dans la page « Jetons ».
3. Dans le client, définissez la base API sur l'adresse One API (ex. `https://your-domain/v1`) et la clé API sur le jeton généré.
Pour spécifier un canal, ajoutez `-CHANNEL_ID` après le jeton, par exemple : `Authorization: Bearer ONE_API_KEY-1`.
## Points clés des variables d'environnement
| Variable | Description |
|---|---|
| `REDIS_CONN_STRING` | Active le cache Redis |
| `SESSION_SECRET` | Clé de session fixe, maintient l'état de connexion après redémarrage |
| `SQL_DSN` | Utilise MySQL/PostgreSQL au lieu de SQLite |
| `SYNC_FREQUENCY` | Fréquence de synchronisation du cache (secondes), recommandé pour le déploiement multi-machines |
| `NODE_TYPE` | `master` ou `slave`, utilisé pour le déploiement multi-machines |
| `FRONTEND_BASE_URL` | Redirige les requêtes frontend depuis le serveur |
| `INITIAL_ROOT_TOKEN` | Crée automatiquement le jeton root au premier démarrage |
## Licence
Licence MIT,要求保留页面底部的署名及指向本项目的链接。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.