UniAPI : gestion unifiée, sans serveur, du transfert d'API de grands modèles

Introduction générale

UniAPI est un transitaire d'API compatible avec le protocole OpenAI, et sa fonction principale est de gérer les API de plusieurs fournisseurs de services de grands modèles, tels que OpenAI, Azure OpenAI, Claude, etc., par le biais d'un format OpenAI unifié. UniAPI prend en charge l'optimisation des modèles, le mécanisme de coupe-circuit et l'optimisation de la sortie en continu afin de garantir l'efficacité et la stabilité des requêtes. UniAPI prend en charge l'optimisation des modèles, le mécanisme de coupe-circuit et l'optimisation de la sortie en continu afin de garantir l'efficacité et la stabilité des requêtes. Le projet est développé par l'utilisateur GitHub zhangtyzzz, et est toujours en cours de mise à jour.

UniAPI:免服务器统一管理大模型API转发

 

Liste des fonctions

  • Prise en charge des services OpenAI et des services compatibles avec le protocole OpenAI, notamment Azure OpenAI, Claude et d'autres.
  • Unifier les API de différents fournisseurs dans le format OpenAI pour simplifier le processus d'appel.
  • Prise en charge du mappage de modèles, appelant des modèles réels de différents fournisseurs avec un nom de modèle uniforme.
  • Fournir un mécanisme de sélection du modèle basé sur le taux de réussite dans les 72 heures et sur le nombre de premières demandes d'asile. jeton Temps de réponse pour sélectionner le meilleur service.
  • Mécanisme de disjoncteur intégré, la défaillance continue du service suspend automatiquement la demande afin de protéger la stabilité du système.
  • Optimiser les sorties en continu en divisant les gros morceaux de réponse en morceaux plus petits pour améliorer l'impact visuel.
  • Prend en charge les clés d'API personnalisées, les URL de base et les listes de modèles pour une configuration flexible.
  • Déployé via Vercel, il fournit un panneau d'administration et une authentification sécurisée.

 

Utiliser l'aide

L'utilisation d'UniAPI se divise en deux parties : le déploiement et la configuration. Vous trouverez ci-après une description détaillée de l'installation, de la configuration et de l'utilisation de l'interface afin de vous permettre de démarrer rapidement.

Processus d'installation

UniAPI prend en charge deux méthodes de déploiement : l'exécution locale et le déploiement Vercel en un clic. Nous prenons ici le déploiement Vercel comme méthode principale, qui convient à la plupart des utilisateurs.

Déploiement de Vercel en un clic

  1. Accès aux liens de déploiement
    Cliquez sur le site officiel de Vercel adresse de déploiement
  2. Configuration des variables d'environnement
    Remplissez les variables suivantes sur la page de déploiement de Vercel :

    • ADMIN_API_KEYClé de l'administrateur : la clé de l'administrateur permettant de se connecter au panneau d'administration doit être définie, par exemple mysecretkey.
    • TEMP_API_KEY: les clés qui permettent d'accéder à l'API, qui peuvent être définies jusqu'à 2, par exemple. key1 répondre en chantant key2.
    • REDIS_URLadresse de connexion Redis pour la configuration du stockage persistant (facultatif).
    • ENVIRONMENT: Réglé sur production pour désactiver la clé par défaut du mode développement.
      Lorsque la configuration est terminée, cliquez sur "Déployer".
  3. Obtenir l'adresse de déploiement
    Après un déploiement réussi, Vercel génère une URL telle que https://your-vercel-url.vercel.app. Utiliser ADMIN_API_KEY Connectez-vous au panneau d'administration.

Fonctionnement local (en option)

  1. Préparation de l'environnement
    Assurez-vous que Python 3.8 ou supérieur est installé sur votre appareil. Vérifiez la version :
python --version
  1. Télécharger le fichier
    Visitez https://github.com/zhangtyzzz/uni-api/releases pour télécharger les derniers binaires, par exemple uni-api-linux-x86_64-0.0.99.pex.
  2. programme de course
    Exécuté au terminal :
chmod +x uni-api-linux-x86_64-0.0.99.pex
./uni-api-linux-x86_64-0.0.99.pex

Auditeur par défaut http://localhost:8000.

Configuration de l'API

  1. Panneau d'administration des connexions (déploiement de Vercel)
    Ouvrez l'URL déployée et entrez ADMIN_API_KEY Connectez-vous. L'écran affiche Ajouter une configuration et Liste de configuration.
  2. Ajout de la configuration de l'API
    Cliquez sur "Ajouter une configuration" et remplissez les informations suivantes :
  • fournisseur de servicesLes services d'aide à la décision : choisissez entre OpenAI, Claude, etc.
  • URL de baseAdresse du fournisseur de services : Saisissez l'adresse API du fournisseur de services, par ex. https://api.openai.com/v1.
  • Clé APIClé : Entrez la clé obtenue auprès du fournisseur de services, par ex. sk-xxxx.
  • Nom du modèleNom du modèle : Saisir le nom du modèle ou le nom du mappage, par ex. gpt-3.5-turbo.
    Après l'enregistrement, la configuration est affichée dans la liste.
  1. cartographie du modèle
    Ajouter un mappage à la configuration. par exemple :
  • nom commun gpt-4 Mapping to OpenAI's gpt-4 répondre en chantant Claude (utilisé comme expression nominale) claude-2.
    La demande est faite avec gpt-4Le système sélectionne automatiquement les services disponibles.

Utilisation des fonctions principales

  1. Envoyer une demande
    Testez l'API avec curl :
curl -X POST https://your-vercel-url.vercel.app/v1/chat/completions 
-H "Authorization: Bearer your_api_key" 
-H "Content-Type: application/json" 
-d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "你好"}], "stream": true}'

Renvoie un flux de données indiquant que la configuration a été effectuée avec succès.

  1. sélection du modèle
    Le système sélectionne automatiquement le meilleur prestataire de services sur la base du taux de réussite et du temps de réponse du premier jeton au cours des 72 dernières heures. Vous n'avez pas besoin d'intervenir manuellement.
  2. mécanisme de rupture
    Un disjoncteur est déclenché lorsqu'un service tombe en panne de manière continue :
  • 3 échecs : 5 minutes de pause.
  • 4 échecs : 10 minutes de pause.
  • 9 manquements : 48 heures de suspension.
    Pendant la suspension, le système passe à un autre fournisseur de services.
  1. Optimisation de la diffusion en continu
    en ce qui concerne Gémeaux Les modèles contenant de grandes quantités de réponses, tels que UniAPI, sont automatiquement divisés en plus petites quantités de résultats.

Problèmes courants résolus...

  • Échec de la demande 401: Inspection Authorization L'en-tête contient-il la bonne Bearer your_api_key.
  • Modèle indisponibleLe nom du modèle configuré doit correspondre à celui fourni par le fournisseur de services, ou vérifier les paramètres de mappage.
  • Inaccessible après le déploiement: Accusé de réception ENVIRONMENT mis en place en tant que productionLes journaux Vercel ne sont pas disponibles pour l'utilisateur et sont vérifiés.

Grâce à ces étapes, vous pouvez facilement déployer et utiliser UniAPI, qui est facile à configurer, puissant et idéal pour les scénarios dans lesquels vous devez gérer des API multi-fournisseurs.

 

scénario d'application

  1. Tests de modèles multifournisseurs par les développeurs
    Vous souhaitez comparer les résultats d'OpenAI et de Claude. uniAPI vous permet de gagner du temps en appelant les deux avec une seule interface.
  2. Les équipes créent des services API stables
    L'équipe avait besoin d'une station API fiable pour soutenir l'entreprise. Le disjoncteur et la méritocratie d'uniAPI ont permis d'assurer un service ininterrompu.
  3. Éducation et recherche
    Les étudiants peuvent utiliser UniAPI pour étudier la réactivité et la stabilité de différents modèles, ce qui convient aux expériences universitaires.

 

QA

  1. Quels sont les fournisseurs de services pris en charge par UniAPI ?
    Prise en charge d'OpenAI, Azure OpenAI, Claude et d'autres services compatibles avec le protocole OpenAI, voir GitHub pour les mises à jour.
  2. Que se passe-t-il lorsque le disjoncteur se déclenche ?
    Le système passe automatiquement à d'autres fournisseurs de services et réessaie après une période de refroidissement. Aucune opération manuelle n'est nécessaire.
  3. Quels sont les avantages de la sortie en continu ?
    Il divise les gros morceaux de réponse en plus petits morceaux pour une expérience utilisateur plus fluide, en particulier pour les scénarios de chat en temps réel.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...