見出し画像

GPTsで外部APIを使って株価データを取得する

GPTs(GPT Builder)とは?

GPTs(GPT Builder)とは、OpenAIが開発したChatGPTを目的に合わせてカスタマイズできるサービスです。現時点、ChatGPT Plusという有料プランに登録しないと使用できません。

要するに、自分だけのオリジナルのGPTを作れる神機能ということですね。

例えば、ボードゲームのルールを教えてくれるGPTや、子供に数学を教えてくれるGPT、ステッカーをデザインしてくれるGPTなど、色々なGPTを作ることができます。しかも、コーディングの知識は一切必要ありません。

対話しながら、必要な機能や知識を設定していくだけです。作ったGPTは自分だけで使うこともできますし、リンクを知っている人や一般に公開することもできます。


APIとは?

アプリケーション・プログラミング・インターフェースの略で、ソフトウェアやプログラム、Webサービスなどが互いに情報をやり取りするための窓口のことです。

要するに、他の人が作った便利な機能を借りて、自分のプログラムやサービスをパワーアップできるということですね。

GPTsには、他の人(外部)が作った便利な機能を借りることができます。


APIを使って株価データを取得

ChatGPTに「外国株も含めて株価情報を取得できる無料で使える(オープンソースで公開されている)API」を調べてもらうと以下の3つを提案してくれました。

・Alpha Vantage
・MarketStack
・Twelve Data


今回は、その中の「Alpha Vantage」のAPIを使用します。

Alpha Vantageとは?

Alpha Vantageは、世界中の株式市場のデータにアクセスできる無料のAPIサービスです。株価や為替、仮想通貨などの価格やニュース、指標などを取得できます。

例えば、

  • 株価チャートや分析ツールの開発

  • 投資判断のためのデータ収集

  • ニュースアプリやウェブサイトへのデータ連携

など、さまざまな用途に活用できます。

Alpha Vantageのメリットは、

  • データの豊富さ

  • データの正確性

  • APIの使いやすさ

です。

Alpha VantageのAPIキーを発行する

GPTsでAlpha VantageのAPIを利用するには、APIキーが必要になります。Alpha VantageのサイトからFREEのAPIキーを発行します。

APIキー取得方法については以下が参考になりました。


GPTsを作成する

ChatGPTにログイン⇒左のチャット欄から「Explore」⇒「Create a GPT」 をクリックしてGPTsを開きます。
(2023年11月21日時点での手順なのでアップデートにより変更の可能性があります)

Createのタブにいる「GPT Builder」と会話しながらオリジナルのGPTを作っていきます。


Createタブ


Google翻訳をしながら進めていけばいいですが、
簡単に説明すると会話の流れは以下のようなイメージです。

GPT Builder:何作りたいの?
私:株価データ収集ボット作りたい
GPT Builder:アイコン作ったよ。これでいい?
私:いいよ。
GPT Builder:どんなボットにするのか詳しく教えて。
私:外部API使ってAI関連の株価を取得したい。
GPT Builder:ボットの話し方はどんなのにする?
私:カジュアルでいいよ。
GPT Builder:へい。

こんな感じで進めていけば、オリジナルGPTの出来上がりです。


GPTsのActionsを使ってAPIを呼び出す

一通りGPT Builderとの会話でオリジナルGPTの設定が完了しましたら、APIを導入する設定に移ります。

Configureタブをクリックして下にスクロールすると、Actionsがあります。Create new actionをクリックしてactions追加画面を開きます。


Configure画面


右上の「Example」から「Wether(JSON)」をクリック。SchemaにJSON形式のコードが記入されていますが、これ自体はダミーのAPIです。このコードを参考にして、Alpha VantageのAPIを呼び出すコードに修正します。


Add actions画面


※Wether(JSON)を参考にして作成してみたのですが、うまく動作しませんでした。しかし、以下のSchemaでは動作しました。


Alpha VantageのAPIを呼び出すために、Schemaを以下に置き換えてください。(注意:先ほど取得したAPIキーはここでは使用しません)
コードの意味がわからなければそのままコピペでOK。

openapi: 3.1.0
info:
  title: Get stock prices data
  description: Collect stock price data from Alpha Vantage's API.
  version: v1.0.0
servers:
- url: https://www.alphavantage.co
paths:
  /query:
    get:
      description: Get stock price data for a specific symbol
      operationId: GetStockData
      parameters:
      - name: function
        in: query
        description: The time series of the stock data
        required: true
        schema:
          type: string
          default: TIME_SERIES_DAILY_ADJUSTED
      - name: symbol
        in: query
        description: The stock symbol to retrieve data for
        required: true
        schema:
          type: string
      - name: apikey
        in: query
        description: Your Alpha Vantage API key
        required: true
        schema:
          type: string
      deprecated: false
      responses:
        200:
          description: A successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Meta Data:
                    type: object
                    additionalProperties:
                      type: string
                  Time Series (Daily):
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        1. open:
                          type: string
                        2. high:
                          type: string
                        3. low:
                          type: string
                        4. close:
                          type: string
                        5. adjusted close:
                          type: string
                        6. volume:
                          type: string
                        7. dividend amount:
                          type: string
                        8. split coefficient:
                          type: string
        default:
          description: An error response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Note:
                    type: string
                  Information:
                    type: string
                  Error Message:
                    type: string



パラメータの詳しい説明については公式サイトのドキュメントから確認できます。



AuthenticationにAPIキーを入力する


Schemaの設定が完了したら、下にスクロールして「Authentication」の設定画面を開き、先ほどのAPIキーを入力して「Save」をクリックします。


Authentication画面


最後に「Privacy policy」には以下のURLを記述します。

https://www.alphavantage.co/privacy/

以上で設定は完了です。


Previewでテスト

Preview画面でAPIが読み込めているか確認します。

特定の株価データを取得するには以下の情報を与えます。

  1. 株式のシンボル: どの企業の株価データが必要ですか?(例:AAPL、MSFT、GOOGLなど)

  2. データの種類: 日次、週次、月次のどの時系列データを希望しますか?


Preview画面


ちゃんとAPIを使って取得していますね。


今回使用したAlpha VantageのFree APIだとリアルタイムで取得できなかったり、1日に取得できるデータに制限があったりしますが、予測モデルの開発といったデータ分析等には使えるのではないでしょうか。


ちなみに、Capabilitiesのチェックは全て外しているのでWebブラウジング機能で取得してはいないはずです。


まとめ

GPTsで外部APIを使って株価データを取得するボットを作成できました。APIを使用せずとも様々なボットを作ることができますが、外部APIを使用することでさらに用途が広がると思います。




参考記事

GPTsのカスタムGPTをActionsで外部APIを呼び出す|斉藤 滋 (note.com)

この記事が気に入ったらサポートをしてみませんか?