ChatGPTプラグイン用API Gateway
April 19, 2023
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とプラグインの間に追加のレイヤーとして機能します。
例えば、API Gatewayは、ChatGPTをOpenAI以外の自然言語処理APIや他のプロバイダーの翻訳APIなど、他のAPIと組み合わせることができます。これにより、クライアントは単一のプラグインを通じて、カスタム定義されたURIパスとアップストリームサービス(複数のバックエンドAPIサーバー)を使用して、複数のサービスにアクセスし、適切なAPIにリクエストをルーティングし、応答をChatGPTに返すことができます。
強化されたセキュリティ
ChatGPTにおけるAPI Gatewayの主な役割の1つは、認証と認可を処理することです。これには、プラグインのユーザーの身元を確認し、プラグインからAPIにアクセスするための必要な権限を持っているかどうかを判断することが含まれます。OpenAIは、OAuth、APIキー、またはカスタム認証プロトコルなど、さまざまな認証メカニズムを使用する場合があり、ユーザーの認証情報をAPI Gatewayに渡します。その後、API Gatewayは、ユーザーが認証されているかどうかを確認するための認証検証をすぐに行うことができます。各APIに対してこの検証プロセスの実装コードを書く必要はありません。
基本的に、API Gatewayは、潜在的なハッキングの試みから保護するためのセキュリティ対策として機能します。API Gatewayは、特定の種類のリクエストを制限します。例えば、送信者が適切な権限を持っていないか、リクエストに特定のヘッダーが含まれていない限り、特定のルートへのPOSTリクエストをブロックします。
例えば、ある企業がChatGPTプラグインを通じて顧客が注文をできるようにするeコマースAPIを持っているとします。API Gatewayは、リクエストヘッダーに有効なAPIキーが含まれていない限り、「注文を実行する」ルートへのPOSTリクエストをブロックするように設定されています。これは、認証され、適切なAPIキーを持つリクエストのみが新しい注文を作成できることを意味し、不正なリクエストはブロックされます。これにより、偽の注文を出したり、システムを操作しようとする悪意のある試みから効果的に保護されます。以下の他のセキュリティ機能の概要を参照してください。
効率的なレート制限
API Gatewayのもう1つの重要な役割は、レート制限を処理することです。これにより、ChatGPTプラグインが一度に多くのリクエストをAPIに送りすぎて、パフォーマンスに影響を与えたり、クラッシュさせたりすることを防ぎます。API Gatewayは、クライアントが一定の時間枠内にできるリクエストの数を制限し、制限を超えたリクエストをブロックすることができます。
高性能
パフォーマンスも、API GatewayがChatGPTプラグインのパフォーマンスを向上させるのに役立つ分野です。例えば、API Gatewayはキャッシュを実装して、頻繁にリクエストされる応答を保存し、実際のAPIにクエリを実行する必要なく、迅速に返すことができます。API Gatewayは、リクエスト/レスポンスの変換も処理し、受信したリクエストをAPIが理解できる形式に変換し(例えば、RESTリクエストをGraphQLに変換)、プラグインが消費できる形式に応答を変換します。
継続的な監視
OpenAIが、APIを通じて顧客が送信したデータをモデルのトレーニングや改善に使用しないと述べているとしても、他の多くの理由から、監視機能を有効にすることが重要です。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のプラグインを使用して、認証、レート制限、監視などのAPI Gateway機能を有効にします。
- 更新されたOpenAPI仕様をエクスポートして、ChatGPTで使用します。結果のドキュメント
YAML/JSON
に必要な変更を加えます。このファイルをAPISIXサーバーの別のルートに配置し、ChatGPTがこのパス/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トークン(JWT)などの堅牢で安全な認証プロトコルを選択し、APIリクエストを認証できます。
- 二要素認証(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を他のシステムに統合するのははるかに難しくなり、クライアントは認証、レート制限、その他の機能を自分で管理する必要があります。