TiDB User Day 2024のアーカイブ動画を公開中!詳細を見る
TCDS-Crypto-ETF-Insights-banner

※このブログは2024年3月22日に公開された英語ブログ「Building an AI-Powered Crypto ETF Insights App with GPTs and TiDB Cloud Data Service 」の拙訳です。

暗号通貨市場におけるデータの複雑性と情報過多の状況では、投資家は迅速かつ効果的な意思決定を行うための、洗練された暗号ETFのインサイトアプリを必要としています。従来の価格追跡ウェブサイト、例えばCoinMarketCapは市場のスナップショットを提供するものの、特に投資家が膨大なデータからより深くパーソナライズされた戦略を必要とする場合、このようなアプリは、暗号通貨投資の効率性を高めるための鍵となるでしょう。

このブログでは、TiDB Cloudデータ サービス (ベータ版) の概要とOpenAIのGPT (generative pre-trained transformers) を使用して、AIを活用した暗号ETFインサイトアプリを構築します。これらのテクノロジーの力を活用し、投資家が進化し続ける暗号ランドスケープにおいて、今後の可能性のあるETFについて、より深い見識を得られるような、ユーザーフレンドリーで適応性のあるツールを作成する方法を解説します。

注:本シリーズで開発したツールは、あくまで説明のためのものであり、リアルタイムの取引価格を保証するものではありません。AIによるデータ分析技術の可能性を紹介することに主眼を置いており、実用的な取引アドバイスを提供するものではありません。

暗号ETFインサイトアプリを構築するための前提条件

作業を始める前に、以下の設定を行う必要があります:

データ環境の構築

このセクションでは、データ基盤の構築について説明します。crypto_demo データベースを作成し、その中にcrypto_trends テーブルを作成。さらに、過去2年間のトレンド上位5種類の暗号通貨の価格情報をcrypto_trendsテーブルにインポートします。

データベース接続情報の取得

  1. TiDB Serverlessクラスタコンソールでクラスタの概要ページに移動し、右上の「Connect」ボタンをクリックします。
  2. 接続情報ページのパラメータタブにデータベース接続パラメータがあります。

注意:TiDB Serverlessはデフォルトでパスワードが設定されていません。「Generate Password」ボタンをクリックして新しいパスワードを設定する必要があります。

暗号通貨データの設定と読み込み

  1. ターミナル (Windowsユーザーの場合はコマンドプロンプト) で以下のコマンドを実行して、プロジェクトリポジトリをクローンします:
    git clone https://github.com/tidbcloud/ccxt-web3-bot.git
  2. プロジェクトのルート・ディレクトリccxt-web3-botに移動します:
    cd ccxt-web3-bot 
  3. requirements.txtに記載されているプロジェクトの依存関係をインストールします:
    python3 -m pip install -r requirements.txt
  4. お好きなエディタでconfig.jsonファイルを開きます。例では「vi」を使用しています。前のステップ で取得した接続情報を入力し、ファイルを保存します。
     % vi config.json {     "db_host":"",     "db_port": 4000,     "db_user": "",     "db_password" : "" } 
  5. ターミナルウィンドウで以下のコマンドを実行し、対象のデータとテーブルを作成し、データセットをインポートします:
     python3 ./main.py  

上記のコマンドは、 crypto_demoデータベースとcrypto_trendsテーブルを作成します。また、過去2年間の暗号通貨価格トレンドトップ5のデータを、データベースにインポートします。完了すると、データのインポートが成功したことを示す確認メッセージがターミナルに表示されます。

データアプリ (Data App) の作成

このステップでは、TiDB Cloud Data Service内にData Appをセットアップします。Data Appは、バックエンドサービスを整理するフレームワークとして機能し、インポートした暗号通貨データと効率的にやり取りするためのRESTエンドポイントの生成を可能にします。

データアプリを作成するには:

  1. TiDB Cloudコンソールに移動し、左のナビゲーションメニューからData Serviceを選択し、「Create Data App」ボタンをクリックします。
  2. 以下のように標準データアプリを設定します:
    • App Name: Data App Nameフィールドにweb3-demoと入力します。
    • Data Sources: アプリに関連付けるクラスタを選択します。この例では「Cluster2」を選択します。
    • Description: 「暗号資産の価格を取得するためのアプリApp for retrieving cryptocurrency prices」と入力します。
    • Data App Type:このフィールドはデフォルト設定のままにしておきます。
  3. 「Create」ボタンをクリックして、Data Appの作成を確定します。データアプリのホームページにリダイレクトされます。

初めてデータサービスを利用するユーザーのために、チュートリアルがポップアップ表示されます。しかし、このチュートリアルではそれを無視して、アプリのエンドポイントを手動で作成する方法を詳しく説明します。

HTTPS GETエンドポイントの作成

このセクションでは、必要なHTTPS GETエンドポイントの設定について説明します。エンドポイントの作成と管理について詳しく知りたい方は、以前のブログ記事「TiDB Cloudデータサービスを使いこなす:データ駆動型バックエンド構築のための究極ガイド」を参照することをお勧めします。

GET /list_cryptos

GET /list_cryptosエンドポイントは、すべての暗号通貨を一覧表示します。以下の手順に従って、エンドポイントを作成してください:

  1. web3-demoアプリの左ナビゲーションバーで「+」マークをクリックし「Create Endpoint」オプションを選択します。
  2. Propertiesタブに移動して、エンドポイントのプロパティを設定します:
    • Path: Enter /list_cryptosを入力して、エンドポイントのアクセス・パスを定義します。
    • Request Method: このエンドポイントが処理するリクエストのタイプを指定するには、GETに設定します。
    • Endpoint Name: デフォルトではパスの値に基づいて自動的に生成されます。エンドポイントの機能を正確に反映していることを確認してください。
    • Description: 「利用可能なすべての暗号を一覧表示」などの簡単な説明を入力します。
  3. エンドポイントのビジネス・ロジックを定義するSQLを設定します:
    SELECT DISTINCT crypto FROM crypto_demo.crypto_trends;
  4. エンドポイントをデプロイして、外部クライアントからアクセスできるようにします:
    1. エンドポイントをクリックして詳細を開きます。
    2. 右上の「Deploy」ボタンをクリックします。Review Changeダイアログがポップアップします。
    3. エンドポイント設定の最終確認を行います。
    4. 「Deploy」ボタンをもう一度クリックして、エンドポイントを公開します。

GET /trading_data_by_crypto

GET /trading_data_by_crypto エンドポイントは、特定の暗号通貨および価格のトレンドデータを取得します。 GET /list_cryptos エンドポイントと同様の手順に従います:

  1. エンドポイントの作成を開始します。
  2. エンドポイントのプロパティを設定します:
    • Path: trading_data_by_cryptoと入力します。
    • Request Method:メソッドをGETに設定します。
    • Endpoint Name: 自動生成されます。
    • Description:「暗号の価格動向データを取得」と入力します。
  3. SQLを設定する:
    SELECT * FROM crypto_demo.crypto_trends
    WHERE `crypto` = ${crypto} and
    `time` between ${start_datetime} and ${end_datetime};
  4. GET /list_cryptosエンドポイントで行ったのと同じようにデプロイプロセスを繰り返し、エンドポイントを公開する。

DataAppとGPTの統合

エンドポイントをGPTと統合するには、JSONまたはYAML形式のAPIドキュメントと、エンドポイントにアクセスするためのエンコードされたAPIキーが必要です。

Get Configuration for GPT Integration

TCDSは、GPTとのインテグレーション関連の情報にアクセスするために、Data Appのホームページ内にコンフィギュレーションタイルを提供しています。設定を取得するには:

  1. TCDSインターフェイスの左側のナビゲーションパネルで、データアプリ名 (ここでは web3-demo)をクリックします。次に、右側の「Integration with GPTs」タイルの「Get Configuration」ボタンをクリックします。
  2. Integration with GPTsポップアップウィンドウで以下を行います:
    1. 次のステップのためにAPI Specification URLをコピーします。これはAPIドキュメントのURLです。
    2.  新しいAPIキーを生成するには「Create API Key」ボタンをクリックします。これにより、エンコードされたAPIキーも自動的に作成されます。
    3. 次のステップのためにAPI Key Encodedの値をコピーします。

GPTの作成と設定

APIドキュメントのURLとエンコードされたAPIキーを使用して、データアプリのエンドポイントをGPTとインテグレーションできます。

  1. ChatGPTに移動し、Explore GPTsオプションを選択し、右側のCreateボタンを押してGPTの設定を開始します。

    注意:この機能はChatGPT Plusユーザーのみ利用可能です。

  2. ConfigureタブでこのGPTアプリケーションの共通パラメータを設定します。Createタブでは、ChatGPTにこれらの自動生成を促すことができます。
  3. ページ下部にある「Create new action」ボタンをクリックします。Add Actionsウィンドウがポップアップします。
  4. Add Actionsウィンドウで、以下の指示に従ってアクションを設定します:
    1. 「Import from URL」ボタンをクリックしGET Configuration for GPTs Integration ステップで取得した API Specification URLを貼り付け、「Import」ボタンをクリックします。これでAPIドキュメントが自動的に「Schema」フィールドに入力されます。
    2.  Authenticationセクションの右側にある歯車アイコンをクリックします。認証設定ウィンドウがポップアップ表示されます。
    3. 認証を設定します:
      • 認証タイプをAPIキーに設定する
      • GPTとのインテグレーションの インテグレーションのアクセス設定 ステップで取得したエンコードされたAPIキーを貼り付けます。  
      • 「Save」ボタンをクリックして、Authenticationを保存します。
  5. 最後のステップとして、インターフェイスの右上隅にある「Save」ボタンをクリックし、パブリッシュタイプとして「Only me」を選択し、「Confirm」ボタンをクリックしてGPTをパブリッシュします。

GPTがセットアップされ、データアプリとインテグレーションされた状態で、簡単な質問でその機能をテストしてみましょう。

ご覧のように、GPTはRESTエンドポイントへのクエリを試み、分析可能な5つの暗号通貨のリストを提供してくれました。同じような結果が表示されたなら、おめでとうございます!このツールを使って、暗号通貨に関するインサイトや潜在的な取引傾向を探ることができます。

GPT in Action – 暗号ETFインサイト・アプリを試す

さて、いよいよGPTを実践してみましょう。Web3コミュニティーの新参者として、あなたは潜在的な投資対象暗号通貨と最適な購入価格に注目するかもしれません。それでは、あなたに必要な分析結果を与えてくれるかもしれない3つの質問について説明しましょう。

質問1:利用可能な暗号が揃ったので、すべての暗号のボラティリティを並べて比較できますか?チャートにプロットしてください。

Crypto ETF insights app sample response.

GPTは以下のステップでクエリーにアプローチしました:

  1. データの取得l:DataService APIを使用して必要なデータを取得し、特に暗号通貨の過去の価格データに焦点を当てます。
  2. 分析:このデータを加工してボラティリティを算出します。ボラティリティは通常、特定期間の日次リターンの標準偏差として測定されます。
  3. 可視化:MatplotlibやSeabornのようなライブラリを活用し、各暗号通貨のボラティリティを可視化する棒グラフを作成するPythonコードを生成します。

この棒グラフは、BNB、BTC、ETH、SOL、XRPの相対的なボラティリティを示しており、それぞれのリスクプロファイルに関する知見を提供しています。高い棒グラフで表されるボラティリティの高い暗号通貨は、価格変動が大きく、投資リスクが潜在的に高い一方で、リターンの機会も大きいことを示唆しています。これを踏まえると、BTCとETHが最も安全な投資先と考えられます。

質問2:ヒストリカル・ボラティリティ分析に基づき、今後6ヶ月以内に見られる可能性のある価格変動の最小値と最大値を教えてください。棒グラフにプロットしてください。

Crypto ETF insights app sample response.

こちらがGPTがその質問にアプローチする方法です:

  • 過去からの継続性の仮定:財務予測におけるこのアプローチの限界にもかかわらず、将来のボラティリティが過去のパターンを反映すると仮定。
  • スイングの計算:ヒストリカルボラティリティは、今後6ヶ月間の潜在的な価格変動の最小値と最大値を推定するために使用。
  • 予測をグラフ化:棒グラフによる予測の視覚化。

質問3:上記の分析に基づいて、投資対象として考えられる暗号通貨はどれで、その適切な購入価格は何でしょうか?

この質問に対処する際、GPTは次のようなことを行います:

  • 要因分析:暗号通貨の可能性に影響を与える主な要因を分析することから始め、安定性と成長の可能性のバランスに注目します。
  • 提案:これらの分析に基づき、GPTはETHとXRPをリスクとリターンのバランスが効果的な暗号通貨として注目し、潜在的な投資機会として提案します。

結論

AIをGPTやTCDSを通じてインテグレーションすることは、暗号ETFインサイトアプリのようなAIおよびデータ駆動型アプリケーションの開発において、効率性と効果性を大きく向上させる重要な一歩となります。GPTの力を利用してデータの取得、分析、可視化を行うことで、開発者は広大なデータセットから迅速に意味のある洞察を導き出し、手間をかけずに生データを実行可能な情報に変換することができます。

TCDSは、AIやデータ駆動型アプリケーションの多様なシナリオで重要な役割を果たす態勢を整えています。TCDSは、AIやデータ駆動型アプリケーションの多様なシナリオにおいて、極めて重要な役割を果たすことが期待されています。TiDB Serverlessのスムーズな開発者体験を備えたTCDSをぜひご活用いただき、その便利さとアプリケーション開発における利点を実感してください。


Try TiDB Serverless

  • 25 GiB Free
  • Auto-Scale with Ease
  • MySQL Compatible
Start Now

Have questions? Let us know how we can help.

Contact Us

TiDB Cloud Dedicated

TiDB Cloudのエンタープライズ版。
専用VPC上に構築された専有DBaaSでAWSとGoogle Cloudで利用可能。

TiDB Cloud Serverless

TiDB Cloudのライト版。
TiDBの機能をフルマネージド環境で使用でき無料かつお客様の裁量で利用開始。