API Gateway para Plugins de ChatGPT
April 19, 2023
OpenAI ha lanzado recientemente una nueva versión de ChatGPT que ahora permite plugins dentro de ChatGPT. Estos plugins se pueden agregar directamente al chatbot, proporcionándole acceso a una amplia gama de conocimientos e información de sus socios de terceros a través de las APIs. Los plugins de ChatGPT pueden extender su funcionalidad y mejorar sus capacidades para acceder a información actualizada, como investigar costos de viaje, encontrar información sobre descuentos o ayudarte a reservar vuelos y pedir comida. También puedes crear tu propio plugin que permita a ChatGPT llamar a tus datos de API de manera inteligente.
¡Sí, así es! Para que tus datos sean accesibles a través de un plugin personalizado de ChatGPT, ChatGTP requiere que construyas una nueva API o utilices una existente que pueda ser consultada y recibir respuestas. Luego, genera una respuesta amigable para el usuario combinando los datos de la API y sus capacidades de lenguaje natural. En este caso, API Gateway puede ayudar a mejorar la seguridad, usabilidad y eficiencia. Este post explora cómo API Gateway puede ser beneficioso para los desarrolladores de plugins de ChatGPT para exponer, asegurar, gestionar y monitorear sus endpoints de API.
Según OpenAI: El desarrollador del plugin escribe una especificación para una API utilizando el estándar OpenAPI que permite a ChatGPT interactuar con las APIs definidas por los desarrolladores.
Objetivos de aprendizaje
A lo largo del artículo, aprenderás lo siguiente:
- Comprender el papel de API Gateway en la construcción de la API de ChatGPT Plugin.
- Cómo publicar, asegurar, observar y aplicar otras preocupaciones transversales para la API del plugin.
- Cómo usar Apache APISIX (un API Gateway de código abierto) con ChatGPT Plugins.
El papel de API Gateway
Un API Gateway actúa como el puente entre ChatGPT Plugin y tu API al proporcionar una interfaz estandarizada para la comunicación. Gestiona el acceso, la seguridad y el rendimiento de la API, y ofrece otras características transversales. Supongamos que deseas construir un plugin de ChatGPT para obtener información sobre descuentos en los mercados de tu ciudad, podrías tener diferentes APIs para mostrar nuevos productos, los mercados más cercanos y las últimas ofertas. En este contexto, el API Gateway será una capa adicional entre tu API y el plugin.
Por ejemplo, el API Gateway podría combinar ChatGPT con otras APIs, como una API de procesamiento de lenguaje natural diferente a OpenAI o una API de traducción de otros proveedores, permitiendo a los clientes acceder a múltiples servicios con un solo plugin a través de rutas URI personalizadas y servicios upstream (múltiples servidores de API backend), enrutar las solicitudes a la API adecuada y devolver la respuesta a ChatGPT.
Seguridad mejorada
Uno de los roles principales de un API Gateway en ChatGPT es manejar la autenticación y autorización. Esto implica verificar la identidad del usuario de un plugin y determinar si tiene los permisos necesarios para acceder a la API desde el plugin. OpenAI puede usar una variedad de mecanismos de autenticación, como OAuth, claves de API o protocolos de autenticación personalizados, y pasa las credenciales del usuario al API Gateway. Luego, el API Gateway puede realizar la verificación de autenticación de manera predeterminada para verificar si el usuario está autenticado o no. No necesitas escribir ningún código de implementación para este proceso de validación para cada API.
Esencialmente, los API gateways sirven como una medida de seguridad para protegerse contra posibles intentos de hacking. El API Gateway restringe tipos específicos de solicitudes, como bloquear solicitudes POST no autorizadas a una Ruta particular, a menos que el remitente tenga los privilegios adecuados o incluya un encabezado específico en la solicitud.
Supongamos que una empresa tiene una API de comercio electrónico que permite a los clientes realizar pedidos a través de un plugin de ChatGPT. El API Gateway está configurado para bloquear las solicitudes POST a la Ruta "realizar pedido" a menos que la solicitud incluya una clave de API válida en el encabezado de la solicitud, que actúa como un token de acceso privilegiado. Esto significa que solo las solicitudes autenticadas y autorizadas con la clave de API correcta podrán crear nuevos pedidos, mientras que las solicitudes no autorizadas serán bloqueadas, protegiendo efectivamente contra posibles intentos maliciosos de realizar pedidos falsos o manipular el sistema. Consulta el resumen de otras características de seguridad a continuación.
Limitación de tasa eficiente
Otro papel importante del API Gateway es manejar la limitación de tasa. Esto asegura que el plugin de ChatGPT no sature la API con demasiadas solicitudes a la vez, lo que podría afectar su rendimiento o hacer que se bloquee. El API Gateway puede limitar el número de solicitudes que un cliente puede hacer dentro de un cierto período de tiempo y bloquear las solicitudes que excedan el límite.
Alto rendimiento
El rendimiento es otra área en la que un API Gateway puede ayudar a mejorar el rendimiento del plugin de ChatGPT. Por ejemplo, el API Gateway puede implementar caché para almacenar respuestas solicitadas con frecuencia y devolverlas rápidamente sin necesidad de consultar la API real. El API Gateway también puede manejar la transformación de solicitudes/respuestas para convertir las solicitudes entrantes en un formato (como convertir solicitudes REST a GraphQL) que tu API pueda entender y transformar las respuestas en un formato que el plugin pueda consumir.
Monitoreo continuo
Incluso si OpenAI afirma que ChatGPT no utiliza los datos enviados por los clientes a través de su API para entrenar o mejorar sus modelos, es importante habilitar características de observabilidad por muchas otras razones. El API Gateway puede proporcionar información sobre cómo se está utilizando el plugin de ChatGPT, qué tipo de datos se comparten e identificar cualquier problema que deba abordarse al monitorear continuamente las solicitudes realizadas por tu plugin.
Cómo usar Apache APISIX con ChatGPT Plugins
Una vez que entendemos por qué API Gateway juega un papel crucial en la construcción de ChatGPT Plugins, echemos un vistazo a los pasos simples sobre cómo usar Apache APISIX API Gateway antes de compartir un nuevo plugin en ChatGPT. Hay muchos otros API Gateways en el mercado, este post puede ayudarte a decidir cuál se adapta a tus necesidades.
En el momento de escribir este blog, ChatGPT tiene acceso restringido y para obtener acceso alfa a OpenAI, debes registrarte en una lista de espera de plugins de ChatGPT. Sin embargo, solo priorizarán a los desarrolladores y usuarios de ChatGPT Plus antes de lanzarlo al público en general.
- Instala y ejecuta Apache APISIX localmente en un entorno de desarrollo o en un servidor remoto (en la nube). Si lo ejecutas localmente, APISIX se puede acceder a través de http://localhost:9080.
- Configura una ruta y un upstream para cada uno de tus endpoints de API, ya sea solicitando Admin API (que se ejecuta en http://localhost:9180) o un panel de control UI amigable para el usuario. También puedes importar una especificación OpenAPI existente para registrar automáticamente rutas y upstream.
- Habilita algunas características de API Gateway, como autenticación, limitación de tasa y observabilidad utilizando los plugins de APISIX.
- Exporta la especificación OpenAPI actualizada para usar en ChatGPT. Realiza los cambios necesarios en el documento resultante
YAML/JSON
. Coloca este archivo en algún lugar del servidor APISIX a través de otra ruta para que ChatGPT pueda encontrarlo en esta ruta/openapi.yaml
como[http://localhost:9080/openapi.yaml](http://localhost:9080/openapi.yaml).
Esta especificación se compila en un mensaje, que le explica a ChatGPT cómo puede usar la API para mejorar sus respuestas. Piensa en un mensaje detallado, incluyendo una descripción de cada endpoint disponible. - Otros pasos, como definir un archivo de manifiesto, ejecutar un plugin y escribir descripciones son bastante similares a lo que ya está bien documentado en la documentación oficial de OpenAI. Cuando conectes el plugin a través de la interfaz de usuario de ChatGPT y ejecutes el plugin, asegúrate de que la dirección del dominio apunte al API Gateway de APISIX.
- Finalmente, el usuario hace nuevas preguntas habilitando el plugin en la interfaz de usuario de ChatGPT. Si ChatGPT decide que debe obtener información de la API, hará la solicitud al API Gateway y la agregará al contexto antes de intentar responder.
Resumen de seguridad de API para el plugin de ChatGPT
Mira este resumen de las ofertas de API Gateway para asegurar la API del plugin de ChatGPT:
- Protocolos de autenticación: Con API Gateway, puedes elegir un protocolo de autenticación robusto y seguro, como OAuth 2.0 o JSON Web Tokens (JWT), para autenticar las solicitudes de API.
- Autenticación de dos factores (2FA): Puedes implementar 2FA a través de la integración con varios proveedores de identidad, lo que puede agregar una capa adicional de seguridad a la autenticación de la API.
- Gestión segura de tokens: Puedes almacenar tokens de manera segura evitando almacenarlos en aplicaciones del lado del cliente o en ubicaciones inseguras, como cookies del lado del cliente o almacenamiento local.
- Control de acceso basado en roles (RBAC): Puedes habilitar RBAC para controlar los permisos y acciones que diferentes usuarios o aplicaciones pueden realizar dentro de la API del plugin de ChatGPT.
- Seguridad de la capa de transporte (TLS): La API tiene una opción de TLS para cifrar la comunicación entre clientes y servidores a través de la red.
- Limitación de tasa de API: API Gateway proporciona mecanismos de limitación de tasa para prevenir el abuso o mal uso de la API del plugin de ChatGPT.
- Registro y auditoría: Puedes usar API Gateway con otras plataformas de observabilidad para mecanismos completos de registro y auditoría para rastrear y monitorear las solicitudes y respuestas de la API.
Conclusión
La introducción de la integración de plugins en ChatGPT es una actualización para OpenAI. Además, es un cambio importante en el campo de la IA orientada al usuario para el modelo GPT. API Gateway proporciona una interfaz de comunicación de alto rendimiento para exponer tu API de manera segura, junto con seguridad, políticas de limitación de tasa, métodos de autenticación y monitoreo. Sin un API Gateway, ChatGPT sería mucho más difícil de integrar en otros sistemas, y los clientes necesitarían gestionar la autenticación, la limitación de tasa y otras características por sí mismos.