ChatGPT 플러그인을 위한 API Gateway

Bobur Umurzokov

Bobur Umurzokov

April 19, 2023

Technology

OpenAI는 최근 **ChatGPT 내부 플러그인**을 허용하는 새로운 버전의 ChatGPT를 출시했습니다. 이러한 플러그인은 챗봇에 직접 추가될 수 있으며, API를 통해 다양한 지식과 정보에 접근할 수 있게 해줍니다. ChatGPT 플러그인은 여행 비용 조사, 할인 정보 찾기, 항공편 예약 및 음식 주문과 같은 최신 정보에 접근하는 기능을 확장하고 향상시킬 수 있습니다. 또한 자신만의 플러그인을 구축하여 ChatGPT가 API 데이터를 지능적으로 호출할 수 있도록 할 수도 있습니다.

맞습니다! ChatGPT 사용자 정의 플러그인을 통해 데이터에 접근하려면, ChatGTP는 새로운 API를 구축하거나 기존 API를 사용하여 쿼리하고 응답을 받을 수 있도록 해야 합니다. 그런 다음 API 데이터와 자연어 처리 능력을 결합하여 사용자 친화적인 답변을 생성합니다. 이 경우 API Gateway는 보안, 사용성 및 효율성을 향상시키는 데 도움을 줄 수 있습니다. 이 글은 API Gateway가 ChatGPT 플러그인 개발자에게 API 엔드포인트를 노출, 보호, 관리 및 모니터링하는 데 어떻게 유용한지 탐구합니다.

OpenAI에 따르면: 플러그인 개발자는 OpenAPI 표준을 사용하여 API에 대한 사양을 작성하여 ChatGPT가 개발자가 정의한 API와 상호 작용할 수 있도록 합니다.

학습 목표

이 글을 통해 다음을 배우게 됩니다:

  • ChatGPT 플러그인 API 구축에서 API Gateway의 역할 이해
  • 플러그인 API를 게시, 보호, 관찰 및 기타 교차 관심사 적용 방법
  • Apache APISIX (오픈소스 API Gateway)를 ChatGPT 플러그인과 함께 사용하는 방법

API Gateway의 역할

API Gateway는 ChatGPT 플러그인과 API 간의 통신을 위한 표준화된 인터페이스를 제공하여 다리 역할을 합니다. API의 접근, 보안 및 성능을 관리하며 기타 교차 기능을 제공합니다. 예를 들어, 도시 내 시장의 할인 정보를 위한 ChatGPT 플러그인을 구축하려는 경우, 새로운 제품, 가장 가까운 시장 및 최신 거래를 보여주는 다양한 API가 있을 수 있습니다. 이 경우 API Gateway는 API와 플러그인 사이의 추가 계층이 됩니다.

ChatGPT 플러그인을 위한 API Gateway

예를 들어, API Gateway는 OpenAI 외의 자연어 처리 API 또는 다른 제공자의 번역 API와 같은 다른 API와 ChatGPT를 결합할 수 있으며, 클라이언트가 단일 플러그인을 통해 여러 서비스에 접근할 수 있도록 합니다. 이를 통해 사용자 정의 URI 경로 및 업스트림 서비스(여러 백엔드 API 서버)를 통해 요청을 적절한 API로 라우팅하고 응답을 ChatGPT로 반환할 수 있습니다.

강화된 보안

ChatGPT에서 API Gateway의 주요 역할 중 하나는 인증 및 권한 부여를 처리하는 것입니다. 이는 플러그인 사용자의 신원을 확인하고 플러그인에서 API에 접근할 수 있는 필요한 권한이 있는지 결정하는 것을 포함합니다. OpenAI는 OAuth, API 키 또는 사용자 정의 인증 프로토콜과 같은 다양한 인증 메커니즘을 사용할 수 있으며, 사용자 자격 증명을 API Gateway로 전달합니다. 그런 다음 API Gateway는 사용자가 인증되었는지 여부를 확인하기 위해 기본적으로 인증 검증을 수행할 수 있습니다. 각 API에 대해 이 검증 프로세스를 위한 구현 코드를 작성할 필요가 없습니다.

기본적으로 API Gateway는 잠재적인 해킹 시도로부터 보호하기 위한 보안 조치로 작동합니다. API Gateway는 특정 유형의 요청을 제한합니다. 예를 들어, 특정 헤더를 포함하지 않은 POST 요청을 특정 경로에 대해 차단할 수 있습니다.

예를 들어, 회사가 ChatGPT 플러그인을 통해 고객이 주문을 할 수 있는 전자상거래 API를 가지고 있다고 가정해 보겠습니다. API Gateway는 요청 헤더에 유효한 API 키가 포함되지 않은 경우 "주문하기" 경로에 대한 POST 요청을 차단하도록 구성됩니다. 이 API 키는 권한 있는 접근 토큰 역할을 합니다. 이는 인증되고 권한이 부여된 요청만이 새로운 주문을 생성할 수 있도록 하며, 권한이 없는 요청은 차단되어 가짜 주문을 시도하거나 시스템을 조작하려는 악의적인 시도를 효과적으로 방어합니다. 아래는 다른 보안 기능의 요약입니다.

효율적인 속도 제한

API Gateway의 또 다른 중요한 역할은 속도 제한을 처리하는 것입니다. 이는 ChatGPT 플러그인이 너무 많은 요청을 한 번에 처리하지 않도록 하여 성능에 영향을 미치거나 충돌을 일으키는 것을 방지합니다. API Gateway는 특정 시간 내에 클라이언트가 할 수 있는 요청 수를 제한하고 제한을 초과하는 요청을 차단할 수 있습니다.

고성능

성능은 API Gateway가 ChatGPT 플러그인의 성능을 향상시키는 데 도움을 줄 수 있는 또 다른 영역입니다. 예를 들어, API Gateway는 캐싱을 구현하여 자주 요청되는 응답을 저장하고 실제 API를 쿼리할 필요 없이 빠르게 반환할 수 있습니다. API Gateway는 또한 요청/응답 변환을 처리하여 들어오는 요청을 API가 이해할 수 있는 형식으로 변환하고(예: REST 요청을 GraphQL로 변환) 응답을 플러그인이 소비할 수 있는 형식으로 변환할 수 있습니다.

지속적인 모니터링

OpenAI가 ChatGPT가 고객이 제출한 데이터를 사용하지 않는다고 명시하더라도, 다양한 이유로 관찰 기능을 활성화하는 것이 중요합니다. API Gateway는 ChatGPT 플러그인이 어떻게 사용되는지, 어떤 종류의 데이터가 공유되는지, 그리고 해결해야 할 문제가 있는지에 대한 통찰력을 제공할 수 있습니다.

ChatGPT 플러그인과 함께 Apache APISIX 사용 방법

ChatGPT 플러그인 구축에서 API Gateway가 중요한 역할을 하는 이유를 이해했다면, ChatGPT에 새로운 플러그인을 공유하기 전에 Apache APISIX API Gateway를 사용하는 간단한 단계를 살펴보겠습니다. 시장에는 많은 다른 API Gateway가 있으며, 이 글은 어떤 것이 당신의 필요에 맞는지 결정하는 데 도움을 줄 수 있습니다.

이 블로그 글을 작성하는 시점에서, ChatGPT는 제한된 접근을 가지고 있으며 OpenAI의 알파 접근을 얻으려면 ChatGPT 플러그인 대기자 명단에 등록해야 합니다. 그들은 개발자와 ChatGPT Plus 사용자를 우선적으로 고려할 것이며, 이후에 일반 대중에게 공개할 예정입니다.

  • Apache APISIX를 설치하고 실행하세요. 로컬 개발 환경이나 원격 서버(클라우드)에서 실행할 수 있습니다. 로컬에서 실행하는 경우, APISIX는 http://localhost:9080을 통해 접근할 수 있습니다.
  • Admin API (이는 http://localhost:9180에서 실행 중) 또는 사용자 친화적인 UI 대시보드를 통해 각 API 엔드포인트에 대한 경로 및 업스트림을 구성하세요. 기존 OpenAPI 사양을 가져와 자동으로 경로와 업스트림을 등록할 수도 있습니다.
  • APISIX의 플러그인을 사용하여 인증, 속도 제한 및 관찰 기능을 활성화하세요.
  • ChatGPT에서 사용할 수 있도록 업데이트된 OpenAPI 사양을 내보내세요. 결과 문서 YAML/JSON에서 필요한 변경을 수행하세요. 이 파일을 APISIX 서버의 다른 경로에 배치하여 ChatGPT가 이 경로 /openapi.yaml에서 찾을 수 있도록 하세요. 예: [http://localhost:9080/openapi.yaml](http://localhost:9080/openapi.yaml). 이 사양은 프롬프트로 컴파일되어 ChatGPT가 API를 사용하여 답변을 향상시킬 수 있는 방법을 설명합니다. 사용 가능한 각 엔드포인트에 대한 설명을 포함한 상세한 프롬프트를 생각해 보세요.
  • 매니페스트 파일 정의, 플러그인 실행, 설명 작성과 같은 다른 단계는 이미 OpenAI 문서에 잘 문서화되어 있습니다. ChatGPT UI를 통해 플러그인을 연결하고 실행할 때, 도메인 주소가 APISIX API Gateway를 가리키는지 확인하세요.
  • 마지막으로, 사용자는 ChatGPT UI에서 플러그인을 활성화하여 새로운 질문을 합니다. ChatGPT가 API에서 정보를 가져와야 한다고 결정하면, API Gateway에 요청을 보내고 응답을 시도하기 전에 컨텍스트에 추가할 것입니다.

ChatGPT 플러그인을 위한 API 보안 요약

ChatGPT 플러그인을 위한 API를 보호하기 위한 API Gateway 제공 사항 요약:

  • 인증 프로토콜: API Gateway를 사용하면 OAuth 2.0 또는 JSON Web Tokens (JWT)와 같은 강력하고 안전한 인증 프로토콜을 선택하여 API 요청을 인증할 수 있습니다.
  • 2단계 인증 (2FA): 다양한 ID 제공자와의 통합을 통해 2FA를 구현하여 API 인증에 추가 보안 계층을 추가할 수 있습니다.
  • 안전한 토큰 관리: 클라이언트 측 애플리케이션이나 클라이언트 측 쿠키 또는 로컬 스토리지와 같은 안전하지 않은 위치에 토큰을 저장하지 않고 토큰을 안전하게 저장할 수 있습니다.
  • 역할 기반 접근 제어 (RBAC): RBAC를 활성화하여 ChatGPT 플러그인 API 내에서 다른 사용자 또는 애플리케이션이 수행할 수 있는 권한과 작업을 제어할 수 있습니다.
  • 전송 계층 보안 (TLS): API는 네트워크를 통해 클라이언트와 서버 간의 통신을 암호화하는 TLS 옵션을 가지고 있습니다.
  • API 속도 제한: API Gateway는 ChatGPT 플러그인 API의 남용 또는 오용을 방지하기 위해 속도 제한 메커니즘을 제공합니다.
  • 로깅 및 감사: API Gateway를 다른 관찰 플랫폼과 함께 사용하여 API 요청 및 응답을 추적하고 모니터링하기 위한 포괄적인 로깅 및 감사 메커니즘을 사용할 수 있습니다.

결론

ChatGPT에 플러그인 통합을 도입하는 것은 OpenAI의 업그레이드입니다. 또한 GPT 모델을 사용자에게 제공하는 AI 분야에서 중요한 변화입니다. API Gateway는 API를 안전하게 노출하고 보안, 속도 제한 정책, 인증 방법 및 모니터링과 함께 통신을 위한 고성능 인터페이스를 제공합니다. API Gateway 없이는 ChatGPT를 다른 시스템에 통합하는 것이 훨씬 어려워지며, 클라이언트는 인증, 속도 제한 및 기타 기능을 직접 관리해야 합니다.

추천 콘텐츠

Tags: