PHPで作ったREST APIを生成AIと連携する方法:【後編】Custom GPTとAPIを繋ぐ仕様と設定方法

前編では、SlimやLaravelを使わずに、純粋なPHPのみで動作するシンプルなREST APIを構築しました。今回はそのAPIをChatGPTのCustom GPT機能を通じて生成AIと連携し、自然言語の入力からAPIを自動で呼び出す仕組みを解説します。 作成したCustom GPTを通じて、ユーザーが「商品一覧を表示して」や「○○の金額と特徴を教えて」と入力するだけで、GPTが自社のAPIを自動で呼び出し、該当データを取得して自然言語で返答することが可能になります。その鍵となるのが「OpenAPI仕様」と「GPTsのActions設定」です。
前編はこちら
目次
OpenAPI仕様とは?
OpenAPI(旧Swagger)は、REST APIの仕様を機械可読なフォーマット(YAMLやJSON)で記述するための標準仕様です。これにより、以下のようなメリットがあります:
- APIのエンドポイントやパラメータの構造を自動でドキュメント化できる
- クライアントアプリや生成AIが、API仕様を解析して自動的にリクエストを生成できる
- テストやUIの生成に使える(例:Swagger UI)
なぜ生成AIとOpenAPIは相性が良いのか?
たとえばChatGPTのCustom GPTs(GPT Builder)では、OpenAPI仕様のURLを指定することで、そのGPTが自動的にAPIの仕様を学び、適切な使い方を判断できるようになります。OpenAPIはまさに「生成AIにとってのAPIマニュアル」となるのです。
このように、REST APIは生成AIが外部情報を取得・操作するための標準的かつ柔軟な手段として広く活用されています。
今回のAPIに対応するOpenAPI仕様のサンプル
以下は、前編で構築した /api/products
に対応するOpenAPI YAMLファイルの例です。
openapi: 3.1.0
info:
title: Product API
version: 1.0.0
servers:
- url: https://api.example.com
paths:
/api/products:
get:
operationId: getProducts
summary: 商品一覧を取得
parameters:
- in: query
name: id
schema:
type: integer
required: false
description: 商品IDで絞り込み
responses:
'200':
description: 正常なレスポンス
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
price:
type: integer
このYAMLファイルを生成AIが読み込むことで、パラメータの構造やレスポンス形式を理解できます。
OpenAPI仕様ファイルを設置する
上記の openapi.yaml
を以下のようにAPIサーバーの公開ディレクトリへ設置しましょう:
project/
├── public/
│ └── openapi.yaml
そして、ChatGPTがアクセス可能なURLで公開します:
https://api.example.com/public/openapi.yaml
localhost
やVPN内のURLではGPTが読み込めないため、パブリックにアクセスできる場所に設置してください。
ChatGPTやGPTsからAPIを呼び出す設定方法
1. GPT BuilderでCustom GPTを作成
ChatGPT(有料版)で、左側メニュー「GPT」→右上「作成する」をクリックし、カスタムGPTの作成を開始します。
2. 構成(Configure)画面で設定
- 名前:株式会社○○ 商品検索GPT など
- 説明:株式会社○○の商品情報を取得するためのAIアシスタント
- 指示:ユーザーの入力から商品名や条件を抽出し、必要に応じてAPIを呼び出してください。
上記はあくまでも入力例ですので、実際の状況に併せて入力してください。
3. 「Actions」タブでOpenAPI仕様を設定
- 「新しいアクションを追加」ボタンをクリック
- スキーマを「URLからインポートする」欄に、以下のように記述(yamlファイルを設置したURLを入力):
https://api.example.com/public/openapi.yaml
- 認証が不要であればそのまま「保存」
GPTはこのYAMLファイルを解析し、エンドポイントの使い方を学習します。
Custom GPTを一般ユーザーに使ってもらうには?
上記の手順でGPTがAPIを呼び出せる状態になったとしても、他のユーザーに利用してもらうには「公開」または「リンク共有」設定が必要です。
方法①:GPTを公開する(推奨)
- GPT Builderで「公開」設定を選択すれば、他のユーザーが自由に利用できます。
- GPTsの検索にも表示され、より多くのユーザーに活用してもらえます。
方法②:リンクを共有する
- 公開せず、特定のユーザーにURLを配布することも可能です。
- テストや社内利用、限定公開に適しています。
いずれの場合も、GPTが裏側でAPIを使って応答してくれるため、ユーザーはAPIの存在を意識せず、自然な言葉で問い合わせができます。
また、通常のChatGPTでユーザーが質問した際に、Custom GPTへの誘導をしてくれる場合もあります。 そのため、商品名や企業名などに関連するプロンプトを含めておくと発見されやすくなります。
動作確認:ユーザーからの自然な質問に反応するか?
作成したGPTを開き、次のような自然文を入力してみます:
商品一覧を表示して
または
5000円以上の商品を表示して
すると、GPTが GET /api/products
にアクセスし、取得したレスポンスを元に以下のような結果を返してくれました。

今回、API自体には金額での検索機能は実装していませんが、簡易的な条件であれば、GPTが取得したデータをもとに自動的にフィルタリングして返答することができます。
とはいえ、より複雑で正確な検索に対応するためには、API側で検索条件(価格帯、カテゴリ、キーワードなど)を柔軟に指定できるように設計しておくことが重要です。そうすることで、生成AIによる応答の精度やユーザー体験をさらに向上させることが期待されます。
今後の展望:Custom GPTのウェブサイト埋め込みは可能か?
現時点(2025年7月時点)では、作成したCustom GPTをWebサイトに直接埋め込む公式手段は提供されていません。そのため、ユーザーにCustom GPTを利用してもらうには、GPTの共有リンクを提示したり、Webサイトやアプリ内から専用の導線を設けてアクセスしてもらう形になります。
ただし、OpenAIの動向からは将来的に以下のような展望が期待されています:
- Custom GPTのウィジェット化やiframe埋め込みなど、Webサイト内に自然に統合する方法の提供
- Web APIやアクション連携の拡張により、GPTが外部UIから呼び出せる可能性の拡大
- GPTsをLINEやSlackなどのチャットUIに直接組み込むプラグインの登場
これにより、近い将来「自社サイトにチャットボットとしてGPTをそのまま組み込む」ような体験が、より簡単に実現できるようになると考えられます。
今のうちにREST APIとOpenAPI仕様を整備しておくことで、将来の技術展開にもスムーズに対応できる土台が築けるでしょう。
まとめ:OpenAPIでAIを商品検索インターフェースに
OpenAPIを活用すれば、PHPで作成したREST APIをChatGPTのCustom GPT機能と連携させ、自然言語で操作できるようになります。
たとえば、ユーザーが「商品一覧を見せて」や「○○の価格は?」と入力すると、GPTがAPIを自動で呼び出してデータを取得・表示してくれますので、APIの存在を意識せずに使える自然なUXが実現できるのが大きな特徴です。
また、作成したCustom GPTを「公開」しておけば、通常のChatGPT利用時にも関連する質問から誘導される可能性があり、より多くのユーザーにリーチできます。この仕組みを利用する事で、自然言語での商品検索をはじめFAQ応答など、さまざまな用途で活用が期待できます。

Contact
ウェブサイトの制作や運用に関わる
お悩みやご相談
お気軽にお問い合わせ下さい
ウェブサイトと一口に言っても、企業サイトやECサイト、ブログ、SNSなど、その“カタチ”は目的に応じてさまざまであり、構築方法や使用する技術も大きく異なります。株式会社コナックスでは、お客様のご要望やブランドの個性を丁寧に汲み取り、最適なウェブサイトの“カタチ”をご提案いたします。
デザイン、ユーザビリティ、SEO対策はもちろん、コンテンツ制作やマーケティング戦略に至るまで、あらゆるフェーズでお客様のビジネスに寄り添い、成果につながるウェブサイトづくりをサポートいたします。私たちは、ウェブサイトの公開をゴールではなくスタートと捉え、お客様のビジネスの成功に向けて共に伴走してまいります。