cc connect : centraliser ses API LLM avec Sub2API-SS2
Le coût cumulé des abonnements Claude, OpenAI et Gemini devient prohibitif pour un usage individuel intensif. cc connect résout ce problème en utilisant Sub2API-CRS2 comme couche d’abstraction et de relais.
Gérer quatre abonnements distincts coûte environ 80$ par mois. En utilisant le mécanisme de pooling de cc connect, la réduction des coûts peut atteindre 60% par utilisateur via le partage de clés.
Vous saurez déployer l’instance, configurer le routage des modèles et monitorer la consommation des tokens via un script de supervision Perl.
🛠️ Prérequis
Environnement Linux (Debian 12 ou Ubuntu 22.04 recommandé) et outils suivants :
- Docker Engine 24.0+ et Docker Compose 2.20+
- Go 1.21+ (si compilation manuelle)
- Nginx 1.24+ pour le reverse proxy
- Accès SSH avec privilèges sudo
📚 Comprendre cc connect
Le principe de cc connect repose sur le pattern ‘Reverse Proxy with Logic’. Contrairement à un Nginx classique qui redirige simplement le flux, Sub2API-CRS2 intercepte le corps de la requête HTTP POST.
Le flux de données suit ce chemin :
Client (OpenAI SDK) -> cc connect (Sub2API) -> Router (Logique de provider) -> API Native (Claude/Gemini/etc.)
L’architecture permet de transformer une requête formatée pour OpenAI en une requête compatible avec Anthropic. En Perl, on comparerait cela à un module LWP::UserAgent qui ferait du rewrite de payload avant l’envoi. Le service gère également le ‘Token Bucket’ pour éviter le rate-limiting des comptes partagés.
🐪 Le code — cc connect
📖 Explication
Dans le script Perl, l’utilisation de JSON::MaybeXS est cruciale car elle choisit automatiquement la bibliothèque la plus rapide (Cpanel::JSON::XS) si elle est présente. Le map permet de transformer la liste brute des objets modèles en une liste simple de chaînes de caractères, évitant une boucle foreach verbeuse.
Dans le fichier YAML, la section mappings est le cœur de cc connect. Elle permet à un client utilisant le SDK OpenAI de demander un modèle ‘claude-3-5-sonnet’ sans savoir qu’il est redirigé vers Anthropic. Le piège classique est d’oublier de mapper le modèle de fallback, ce qui renvoie une erreur 404 au client.
🔄 Second exemple
▶️ Exemple d’utilisation
Exécution d’un test de latence sur le proxy cc connect :
time curl -s -o /dev/null -w "%{http_code} %{time_total}\n" \
-H "Authorization: Bear$ sk-xxx" \
http://localhost:8080/v1/models
200 0.045213
La latence ajoutée par cc connect est de l’ordre de 45ms, ce qui est négligeable pour des tâches de génération de texte.
🚀 Cas d’usage avancés
1. Intégration CI/CD : Utiliser cc connect dans vos pipelines de test pour valider la qualité des réponses LLM sans consommer vos crédis OpenAI directs. Script de test : perl test_llm_response.pl.
2. Architecture Microservices : Déployer cc connect dans un cluster Kubernetes comme service de proxy centralisé pour tous vos pods d’agents IA. Utilisez un Service type ClusterIP.
3. Audit de Coût : En interceptant les requêtes, vous pouvez logger le nombre de tokens par utilisateur via un middleware personnalisé, permettant une facturation précise pour les projets partagés.
✅ Bonnes pratiques
Pour maintenir un environnement cc connect stable :
- Rotation de clés : Ne jamais utiliser une seule clé API pour un pool de plus de 5 utilisateurs simultanés.
- Logging structuré : Configurez la sortie des logs en JSON pour faciliter l’ingestion par une pile ELK ou Loki.
- Sécurité : Ne jamais exposer l’instance cc connect sur l’internet public sans une couche d’authentification (Nginx Auth Basic ou OAuth2).
- Isolation : Utilisez des conteneurs Docker séparés pour le proxy et pour l’application qui consomme l’API.
- Backups : Sauvegardez régulièrement le fichier
config.yamlcar il contient la logique de votre infrastructure LLM.
- cc connect unifie plusieurs fournisseurs LLM (OpenAI, Claude, Gemini).
- Réduction drastique des coûts via le partage de clés (pooling).
- Déploiement rapide via Docker et configuration YAML simple.
- Compatibilité totale avec les SDK OpenAI existants.
- Latence d'interception minimale (< 50ms).
- Gestion intelligente du routage des modèles.
- Possibilité de monitoring personnalisé avec Perl ou Python.
- Architecture scalable pour les environnements multi-utilisateurs.
❓ Questions fréquentes
Est-ce que cc connect stocke mes données ?
Non, le service agit comme un relais transparent. Il ne persiste pas le corps des requêtes sauf si vous configurez explicitement un logger de payload.
Comment ajouter un nouveau modèle ?
Il suffit de modifier la section ‘mappings’ du fichier config.yaml et de recharger le conteneur ou de renvoyer un signal SIGHUP au processus.
Peut-on utiliser cc connect avec Antigravity ?
Oui, tant que le provider est supporté dans la configuration des sources du relais Sub2API-CRS2.
Le service supporte-t-il le streaming (SSE) ?
Oui, le flux de tokens est transmis sans interruption, à condition que votre client HTTP gère le mode chunked encoding.
📚 Sur le même blog
🔗 Le même sujet sur nos autres blogs
📝 Conclusion
L’utilisation de cc connect transforme une gestion fragmentée et coûteuse des API en une infrastructure unifiée et économique. La maîtrise de la configuration des mappings est le point critique pour garantir la continuité de service. Pour approfondir la manipulation des flux JSON en Perl, consultez la documentation Perl officielle. Une surveillance accrue de la latence des endpoints est recommandée lors de l’augmentation du nombre de clients partagés.