À 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,要求保留页面底部的署名及指向本项目的链接。