HAL_DATA_techBlog

HALDATAの技術ブログです。

オリジナルAPIを利用したGPTsの作成

はじめに

近年、AI技術の発展と共に、GPTsを活用したシステムが注目を集めています。弊社では、自社で提供するREST APIをGPTsから呼び出すことで、より柔軟かつ高機能なサービス実現を試みました。

本記事では、GPTsに自前で用意したREST APIを使わせる方法や注意点を解説します。また、実際に弊社のレビュー分析結果をGPTsに読み込ませたデモ事例について詳述します。

注意事項: 本記事は2025/02/15時点の環境に基づき作成されております。

システム概要と連携の全体像

GPTsとは

GPTsは、OpenAIが提供する最新の自然言語処理技術を活用した対話型AIプラットフォームです。ユーザーからの問い合わせに基づき、学習済みの大規模言語モデルを利用して適切な回答を生成します。さらに、外部のREST APIと連携することで、動的なデータ取得や処理を実現し、単なるテキスト生成にとどまらない実用的なサービスを提供します。

GPTsのアクション機能とは

GPTsのアクション機能は、ユーザーの意図を解析して、事前に登録された外部API呼び出しなどのアクションを自動で実行する仕組みです。具体的には、自然言語の問い合わせを解析し、適切なAPIエンドポイントや処理を割り当てることで、実際の業務処理やデータ操作をシームレスに連携させることが可能です。

アクションの呼び出しの仕組み

アクションの呼び出しは以下の流れで決定されます。

  1. ユーザー入力の解析:
    ユーザーからの自然言語入力をGPTsが受け取り、その意図や必要な処理内容を解析します。

  2. アクションマッピング:
    解析結果に基づき、あらかじめ登録されたアクション(OpenAPI仕様に沿ったREST APIエンドポイントなど)の中から最適なものが選定されます。ここでは、エンドポイントの定義やパラメータ、必須条件(例:HTTPSの利用)などが重要なポイントとなります。

  3. API呼び出し:
    選定されたアクションに従って、対象のREST APIに対して必要なパラメータや認証情報を付与したリクエストが送信されます。パラメータは、アクションマッピング時に、ユーザー入力から動的に生成されます。

  4. 結果の統合と応答生成:
    APIからのレスポンスを受け取り、GPTsはその結果を元に最終的な回答を生成し、ユーザーへ返します。

この連携仕組みにより、GPTsはユーザーの要求に応じた動的な処理を実現し、柔軟かつ実用的なシステムとして機能します。

GPTsのアクション機能の登録方法

GPTsのアクションは、以下のような画面から作成することができます。

認証形式として、認証があるAPIの場合、APIキーとOAuthに対応しています。

また、スキーマは、OpenAPI形式(3.1.0以上)で登録します。正確な情報の登録がシステム全体の動作に直結するため、以下のポイントを押さえて設定する必要があります。

  • アクション定義の設定:
    各アクションには一意の名称と明確な説明を設定し、どのようなユーザー入力で呼び出すかの条件(トリガー条件)を定義します。
  • エンドポイント情報の設定:
    呼び出し対象のAPIエンドポイントURL、HTTPメソッド(GET、POSTなど)を正確に記述します。GPTsの場合、エンドポイントはhttpsに対応している必要があります。
  • パラメータの詳細設定:
    アクション呼び出しに必要なパラメータについて、型、必須項目、デフォルト値、フォーマットなどを詳細に定義し、GPTsが正確なリクエストを組み立てられるようにします。
  • レスポンスの取り扱い:
    APIから返されるデータ形式を定義し、GPTsが受け取ったレスポンスをどのように処理しユーザーへの回答に反映するかを設定します。

OpenAIが用意しているスキーマ例は以下のようになります。

{
  "openapi": "3.1.0",
  "info": {
    "title": "Get weather data",
    "description": "Retrieves current weather data for a location.",
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "https://weather.example.com"
    }
  ],
  "paths": {
    "/location": {
      "get": {
        "description": "Get temperature for a specific location",
        "operationId": "GetCurrentWeather",
        "parameters": [
          {
            "name": "location",
            "in": "query",
            "description": "The city and state to retrieve the weather for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": false
      }
    }
  },
  "components": {
    "schemas": {}
  }
}

自社で提供するREST APIと連携させるには、httpsでアクセスできるエンドポイントとともに、上記のスキーマを用意してGPTsアクションに登録する必要があります。

最後に、実際にGPTsを公開する場合には、入力された情報に関するプライバシーポリシーを用意して、GPTsに登録しておく必要があります。個人利用の時には必要ありません。

実際のデモ紹介

実際のデモとして、弊社で開発している分析済みの商品レビューとその統計情報を応答するAPIをGPTsに登録して動かしてみました。なお、実際のヘッドホン商品名を入力しているため、商品名部分は黒塗りにしております。また、API部分も実際のAPIドメインが表示されているため、黒塗りにしております。

この画像の例では、問い合わせ内容から弊社のAPIと3回通信を行い、(1)競合商品の一覧、(2)レビューの統計情報、(3)対象商品の生レビューを取得して、考察を生成しております。

現状の課題と今後の展望

現時点では以下の課題が認識されています。

  • reasoning modelの指定不可: GPTsの現行仕様では、特定のreasoning modelを明示的に指定できず、最新のモデルの性能を活用できない場合があります。
  • 抽象度の高い問い合わせへの探索打ち切り: 抽象的な質問に対して、どれだけ深掘りするかは、モデルに判断を委ねられているため、有用なAPIが提供されていても、それを利用しない可能性があります。デモの例でも、競合商品の生レビューや売り上げの時系列情報を提供しているAPIをアクションに登録していました。しかし、GPTsは、質問に対する回答にはレビューの統計情報と対象商品の生レビューだけで十分として、それらのAPIを呼ぶことはありませんでした。

これらの課題に対しては、今後のアップデートでの解消が期待されます。

 

まとめ

本記事では、オリジナルREST APIを活用し、GPTsとの連携を実現するための具体的な手法を解説しました。今後は、AIを使っての分析が一般的になると考えられます。AIの考察に有用な情報を提供できる仕組みを整え、AIを使ってお客様の課題を解決できる技術ノウハウを弊社としても蓄積していきたいと考えています。