API Gateway pour les plugins ChatGPT
April 19, 2023
OpenAI a récemment lancé une nouvelle version de ChatGPT qui permet désormais d'utiliser des plugins dans ChatGPT. Ces plugins peuvent être ajoutés directement au chatbot, lui donnant accès à une vaste gamme de connaissances et d'informations provenant de ses partenaires tiers via des API. Les plugins ChatGPT peuvent étendre ses fonctionnalités et améliorer ses capacités à accéder à des informations actualisées, comme les coûts de voyage, les informations sur les réductions, ou vous aider à réserver des vols et commander de la nourriture. Vous pouvez également créer votre propre plugin qui permet à ChatGPT d'appeler intelligemment vos données API.
Oui, c'est vrai ! Pour rendre vos données accessibles via un plugin personnalisé ChatGPT, ChatGTP vous demande de créer une nouvelle API ou d'utiliser une API existante qui peut être interrogée pour recevoir des réponses. Ensuite, il génère une réponse conviviale en combinant les données de l'API et ses capacités de traitement du langage naturel. Dans ce cas, API Gateway peut aider à améliorer la sécurité, la convivialité et l'efficacité. Cet article explore comment API Gateway peut être bénéfique pour les développeurs de plugins ChatGPT afin de exposer, sécuriser, gérer et surveiller leurs points de terminaison API.
Selon OpenAI : Le développeur de plugin rédige une spécification pour une API en utilisant la norme OpenAPI qui permet à ChatGPT d'interagir avec les API définies par les développeurs.
Objectifs d'apprentissage
Vous apprendrez les éléments suivants tout au long de l'article :
- Comprendre le rôle d'API Gateway dans la construction d'une API de plugin ChatGPT.
- Comment publier, sécuriser, observer et appliquer d'autres préoccupations transversales pour l'API de plugin.
- Comment utiliser Apache APISIX (une passerelle API open-source) avec les plugins ChatGPT.
Le rôle d'API Gateway
Une passerelle API agit comme un pont entre le plugin ChatGPT et votre API en fournissant une interface standardisée pour la communication. Elle gère l'accès, la sécurité et les performances de l'API, et offre d'autres fonctionnalités transversales. Supposons que vous souhaitiez créer un plugin ChatGPT pour les informations sur les réductions dans les marchés de votre ville, vous pourriez avoir différentes API pour afficher les nouveaux produits, les marchés les plus proches et les dernières offres. Dans ce contexte, la passerelle API sera une couche supplémentaire entre votre API et le plugin.
Par exemple, la passerelle API pourrait combiner ChatGPT avec d'autres API, comme une API de traitement du langage naturel autre qu'OpenAI ou une API de traduction d'autres fournisseurs, permettant aux clients d'accéder à plusieurs services avec un seul plugin via des chemins URI personnalisés et des services en amont (plusieurs serveurs API backend), acheminer les demandes vers l'API appropriée et renvoyer la réponse à ChatGPT.
Sécurité renforcée
L'un des rôles principaux d'une passerelle API dans ChatGPT est de gérer l'authentification et l'autorisation. Cela implique de vérifier l'identité de l'utilisateur d'un plugin et de déterminer s'il a les autorisations nécessaires pour accéder à l'API depuis le plugin. OpenAI peut utiliser une variété de mécanismes d'authentification, tels que OAuth, des clés API ou des protocoles d'authentification personnalisés, et transmet les informations d'identification de l'utilisateur à la passerelle API. Ensuite, la passerelle API peut effectuer une vérification d'authentification prête à l'emploi pour vérifier si l'utilisateur est authentifié ou non. Vous n'avez pas besoin d'écrire de code d'implémentation pour ce processus de validation pour chaque API.
Essentiellement, les passerelles API servent de mesure de sécurité pour se protéger contre les tentatives de piratage potentielles. La passerelle API restreint certains types de demandes, comme bloquer les demandes POST non autorisées vers une Route spécifique, sauf si l'expéditeur dispose des privilèges appropriés ou inclut un en-tête spécifique dans la demande.
Supposons qu'une entreprise dispose d'une API e-commerce qui permet aux clients de passer des commandes via un plugin ChatGPT. La passerelle API est configurée pour bloquer les demandes POST vers la Route "passer une commande" sauf si la demande inclut une clé API valide dans l'en-tête de la demande, qui agit comme un jeton d'accès privilégié. Cela signifie que seules les demandes authentifiées et autorisées avec la clé API correcte seront autorisées à créer de nouvelles commandes, tandis que les demandes non autorisées seront bloquées, protégeant ainsi contre les tentatives malveillantes potentielles de passer de fausses commandes ou de manipuler le système. Voir le résumé des autres fonctionnalités de sécurité ci-dessous.
Limitation de débit efficace
Un autre rôle important de la passerelle API est de gérer la limitation de débit. Cela garantit que le plugin ChatGPT ne submerge pas l'API avec trop de demandes à la fois, ce qui pourrait affecter ses performances ou provoquer un crash. La passerelle API peut limiter le nombre de demandes qu'un client peut effectuer dans un certain laps de temps et bloquer les demandes qui dépassent la limite.
Haute performance
La performance est un autre domaine où une passerelle API peut aider à améliorer les performances du plugin ChatGPT. Par exemple, la passerelle API peut implémenter la mise en cache pour stocker les réponses fréquemment demandées et les renvoyer rapidement sans avoir besoin d'interroger l'API réelle. La passerelle API peut également gérer la transformation des demandes/réponses pour convertir les demandes entrantes dans un format (comme convertir les demandes REST en GraphQL) que votre API peut comprendre et transformer les réponses dans un format que le plugin peut consommer.
Surveillance continue
Même si OpenAI déclare que ChatGPT n'utilise pas les données soumises par les clients via leur API pour entraîner ou améliorer leurs modèles, il est important d'activer les fonctionnalités d'observabilité pour de nombreuses autres raisons. La passerelle API peut fournir des informations sur la manière dont le plugin ChatGPT est utilisé, le type de données partagées, et identifier tout problème qui doit être résolu en surveillant en continu les demandes faites par votre plugin.
Comment utiliser Apache APISIX avec les plugins ChatGPT
Une fois que nous avons compris pourquoi la passerelle API joue un rôle crucial dans la construction de plugins ChatGPT, examinons les étapes simples pour utiliser Apache APISIX API Gateway avant de partager un nouveau plugin sur ChatGPT. Il existe de nombreuses autres passerelles API sur le marché, cet article peut vous aider à décider laquelle correspond à vos besoins.
Au moment de la rédaction de cet article, ChatGPT a un accès restreint et pour obtenir un accès alpha à OpenAI, vous devez vous inscrire sur une liste d'attente pour les plugins ChatGPT. Ils ne donneront la priorité qu'aux développeurs et aux utilisateurs de ChatGPT Plus avant de le rendre accessible au grand public.
- Installez et exécutez Apache APISIX soit localement dans un environnement de développement, soit sur un serveur distant (dans le cloud). Si vous l'exécutez localement, APISIX peut être accessible via http://localhost:9080
- Configurez une route et un upstream pour chacun de vos points de terminaison API, que vous utilisiez l'API Admin (qui fonctionne sur http://localhost:9180) ou un tableau de bord UI convivial. Vous pouvez également importer une spécification OpenAPI existante pour enregistrer automatiquement les routes et les upstream.
- Vous activez certaines fonctionnalités de la passerelle API, comme l'authentification, la limitation de débit et l'observabilité en utilisant les plugins d'APISIX.
- Vous exportez la spécification OpenAPI mise à jour pour l'utiliser dans ChatGPT. Apportez les modifications nécessaires dans le document résultant
YAML/JSON
. Placez ce fichier quelque part sur le serveur APISIX via une autre route afin que ChatGPT puisse le trouver dans ce chemin/openapi.yaml
comme[http://localhost:9080/openapi.yaml](http://localhost:9080/openapi.yaml).
Cette spécification est compilée en une invite, qui explique à ChatGPT comment il peut utiliser l'API pour améliorer ses réponses. Pensez à une invite détaillée, incluant une description de chaque point de terminaison disponible. - Les autres étapes, comme définir un fichier manifeste, exécuter un plugin, et écrire des descriptions sont à peu près les mêmes que ce qui est déjà bien documenté dans la documentation officielle d'OpenAI. Lorsque vous connectez le plugin via l'interface utilisateur de ChatGPT et exécutez le plugin, assurez-vous que l'adresse du domaine pointe vers la passerelle API APISIX.
- Enfin, l'utilisateur pose de nouvelles questions en activant le plugin sur l'interface utilisateur de ChatGPT. Si ChatGPT décide qu'il doit récupérer des informations de l'API, il fera la demande à la passerelle API et l'ajoutera au contexte avant de tenter de répondre.
Résumé de la sécurité API pour les plugins ChatGPT
Voici un résumé des offres de la passerelle API pour sécuriser l'API pour le plugin ChatGPT :
- Protocoles d'authentification : Avec la passerelle API, vous pouvez choisir un protocole d'authentification robuste et sécurisé, comme OAuth 2.0 ou JSON Web Tokens (JWT), pour authentifier les demandes API.
- Authentification à deux facteurs (2FA) : Vous pouvez implémenter la 2FA via l'intégration avec divers fournisseurs d'identité, ce qui peut ajouter une couche supplémentaire de sécurité à l'authentification API.
- Gestion sécurisée des jetons : Vous pouvez stocker les jetons de manière sécurisée en évitant de les stocker dans des applications côté client ou dans des emplacements non sécurisés, comme les cookies côté client ou le stockage local.
- Contrôle d'accès basé sur les rôles (RBAC) : Vous pouvez activer le RBAC pour contrôler les permissions et les actions que différents utilisateurs ou applications peuvent effectuer dans l'API du plugin ChatGPT.
- Sécurité de la couche de transport (TLS) : L'API a une option TLS pour chiffrer la communication entre les clients et les serveurs sur le réseau.
- Limitation de débit de l'API : La passerelle API fournit des mécanismes de limitation de débit pour prévenir les abus ou les mauvaises utilisations de l'API du plugin ChatGPT.
- Journalisation et audit : Vous pouvez utiliser la passerelle API avec d'autres plateformes d'observabilité pour des mécanismes complets de journalisation et d'audit afin de suivre et surveiller les demandes et réponses API.
Conclusion
L'introduction de l'intégration de plugins à ChatGPT est une mise à niveau pour OpenAI. C'est également un changement important dans le domaine de l'IA orientée utilisateur pour le modèle GPT. La passerelle API fournit une interface performante pour la communication afin d'exposer votre API en toute sécurité, avec des politiques de sécurité, de limitation de débit, des méthodes d'authentification et de surveillance. Sans une passerelle API, ChatGPT serait beaucoup plus difficile à intégrer dans d'autres systèmes, et les clients devraient gérer eux-mêmes l'authentification, la limitation de débit et d'autres fonctionnalités.