【応用】ChatGPT API「Function Call」でトレンド分析

ChatGPT FunctionCall API
チャットGPT,API,ChatGPT,FunctionCall
~市場分析・報告書作成・経営計画策定・英文作成・財務・統計~
¥1,320 (2023/05/14 00:23時点 | Amazon調べ)

人工知能が手助けする革新的なトレンド分析手法について解説します。特に、ChatGPT API「Function Call」とPythonライブラリ「pytrends」を使用した、実用的で自動化された手法です。

ChatGPTとは、人間のように自然なテキストを生成する能力を持った生成AIです。2023年6月13日にChatGPTにFunctionCallという新機能が追加されました。これによりChatGPTは必要であれば、外部の関数を自ら選択して呼び出し、関数の実行に必要な情報を提供することができるようになりました(下記の図②)。その関数の実行結果を追加で受け取ることで、最終の回答にその内容組み込むことができます(下記の図④)。この機能により、GPTの可能性は大きく広がり、より多くの利用シーンで活用することが可能となりました。

このChatGPTのFunctionCallを活用し、あらかじめ用意しておいた自作関数でGoogle Trendsからトレンド情報を取得し、トレンド分析を行うPythonプログラムの作成について詳しく解説します。具体的には、ユーザーからの指示をChatGPTが理解し、それに従ってGoogle Trendsで特定のキーワードのトレンド情報を検索する、という処理を行います。

このスクリプトは、ビジネス戦略の策定やマーケティングの視点から見ても非常に有用です。例えば、特定の商品やサービスに関連するキーワードのトレンドが急上昇している場合、その情報をChatGPTが必要の都度、関数を呼び出して分析し、新たなマーケティング戦略を適宜立案または提案し、ビジネスの方向性をリアルタイムで見直すきっかけにすることが可能です。

ChatGPTとpytrendsを用いたこの革新的なトレンド分析手法を通じて、次世代のビジネスインテリジェンスに触れてみていただけると幸いです。データ駆動型の意思決定を、より簡単に、そしてより正確に行えるようになると期待できます。

もし、下記のプロンプトを他で転載される場合には、出展元として当サイトのリンク(https://bizproch.com/)を掲載いただけるとありがたいです。商用でご利用される場合には、本サイトの問い合わせフォームにてお知らせください。

1.(基礎)ChatGPTのAPIの使い方

OpenAIのAPIを使う方法について学びましょう。これは初心者向けのガイドです。既にAPIをご利用いただいている方は「2.ソースコード(Python)」からお読みください。なお、ChatGPTのAPIは、登録から3ヶ月間、5ドル分は無料ですが、その後は有料となりますので、お気を付けください。

Step 1:OpenAIアカウントの作成

まず最初に、OpenAIの公式ウェブサイトに移動して新規アカウントを作成します。ウェブサイトの右上にある「サインアップ」ボタンをクリックし、必要な情報を入力します。

Step 2:APIキーの取得

アカウントを作成したら、ダッシュボードに移動します。そして、「API Keys」のセクションを見つけ、「新しいキーを生成」ボタンをクリックします。このキーはあなたのアプリケーションがChatGPT APIと通信するために必要なものです。このキーは非常に重要で、他人に見せないように注意しましょう。

Step 3:開発環境の設定

Google Colaboratoryですと、プログラムの開発環境をすぐに利用できます。特段の設定は不要、および、基本は無料ですので、ぜひご活用ください。ここでは、Python言語で記述したスクリプトを利用します。スクリプトに記載のあるAPIを通して、ChatGPT とデータをやり取りします。まず、OpenAIのPython用のライブラリをGoogle Colaboratory上にインストールします。下記のスクリプトをGoogle Colaboratoryのコードブロックに貼り付けます。

!pip install openai

Step 4:APIの利用

次に、PythonのスクリプトからChatGPT APIを呼び出します。以下はその基本的なコードです。’YOUR-API-KEY’の部分を、STEP2で取得したAPIキーに置き換えて、Google Colaboratoryのコードブロックに貼り付けて実行してください。

import openai

# APIキーの設定 ★ここにご自分のAPIキーをいれてください。
openai.api_key = 'YOUR-API-KEY'

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo-0613",
  messages=[
        {"role": "system", "content": "あなたは優秀なアシスタントです。"},
        {"role": "user", "content": "ChatGPTのAPIの活用方法を教えてください。"},
    ]
)

print(response['choices'][0]['message']['content'])

このコードは「ChatGPTのAPIの活用方法を教えてください。」を尋ねるユーザーと、その応答を返すアシスタントとの対話をシミュレートします。

以上が基本的な使い方です。詳細な設定やカスタマイズの方法などについては、公式のOpenAIドキュメンテーションをご参照ください。APIの基本的な利用は下記のサイトが分かりやすいのでご参照ください。

(1)Colaboratory で ChatGPT の API を使い方

(2)初心者向けOpenAIのAPIの使い方

2.ChatGPT「Function Call」でトレンドを分析するスクリプト(Python)

下記のプロンプトを右上のボタンでコピーしていただき、Pythonの開発環境に貼り付けてご利用ください。なお、Google Colaboratoryの開発環境ですと、すぐに利用できますのでお勧めです。

!pip install openai
!pip install pytrends

import os
import openai
import json
from pytrends.request import TrendReq

# APIキーの設定 ★ここにご自分のAPIキーをいれてください。
openai.api_key = 'YOUR-API-KEY'

# モデルの設定
model_name = "gpt-3.5-turbo-0613"

user_input= "2023年6月のChatGPTのトレンドを分析し、MarkDown形式で報告してください。"
gtrend_list = ['gtrend']

# Step 1, Google Trendで検索する関数を定義

def chk_gtrend(gtrend):
    startday = gtrend["startday"]
    endday = gtrend["endday"]
    keyword = gtrend["gtrend"]

    pytrends = TrendReq(hl='ja-JP', tz=-540)
    kw_list = [keyword]
    pytrends.build_payload(kw_list, timeframe=f"{startday} {endday}", geo='JP')
    q = pytrends.related_queries()
    if q[kw_list[0]]['rising'] is not None:
        rising_data = q[kw_list[0]]['rising'].values.tolist()
    else:
        rising_data = []  # 'rising' のデータが存在しない場合、rising_data は空のリストになります
    gtrend_info = {
        "status": "success",
        "gtrend": gtrend,
        "rising": rising_data
    }
    gtrend_list.append(gtrend)
    return json.dumps(gtrend_info)

# Step 2, プロンプトと同時に関数の説明をChatGPTのモデルに渡して、関数を使うかをChatGPTが判断する。

def run_conversation():
    response = openai.ChatCompletion.create(
        model = model_name,
        messages=[{"role": "user", "content": user_input}],
        functions=[
            {
                "name": "chk_gtrend",
                "description": "Google Trendで検索します。",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "gtrend": {
                            "type": "string",
                            "description": "トレンド",
                        },
                        "startday": {
                            "type": "string",
                            "format": "date",
                            "pattern": "yyyy-mm-dd",
                            "description": "開始日",
                        },
                        "endday": {
                            "type": "string",
                            "format": "date",
                            "pattern": "yyyy-mm-dd",
                            "description": "終了日",
                        }
                    },
                    "required": ["gtrend"],
                },
            },
        ],
        function_call="auto",
    )

    message = response["choices"][0]["message"]
    print(message)

    # Step 3, ChatGPTが関数を使うとリプライがあったかを判別する。
    if message.get("function_call"):
        function_name = message["function_call"]["name"]
        gtrend = json.loads(message["function_call"]["arguments"])


    # Step 4, ChatGPTからの指定された実際の関数を呼び出す。
    if function_name == "chk_gtrend":
        function_response = chk_gtrend(gtrend=gtrend)

        print(gtrend_list)

    # Step 5, 関数の実行結果をChatGPTのモデルに渡して、ChatGPTから回答を得る。
        second_response = openai.ChatCompletion.create(
            model = model_name,
            messages=[
                {"role": "user", "content": user_input},
                message,
                {
                    "role": "function",
                    "name": function_name,
                    "content": function_response,
                },
            ],
        )
        return second_response

print(run_conversation()["choices"][0]["message"]["content"])

3.スクリプト(Python)の解説

このプログラムはGoogleトレンドのデータを分析してその結果を報告するということを目的としています。それでは、各ステップについて詳細に説明しましょう。

  1. ライブラリのインストール: プログラムは最初に、必要なライブラリ(openaiとpytrends)をインストールします。これらのライブラリは、このプログラムがChatGPTとGoogleトレンドデータにアクセスするために必要です。
  2. APIキーの設定: OpenAIのAPIキーを設定します。このキーはOpenAIのサービスにアクセスするための認証情報となります。
  3. モデルの設定: 使用するAIモデルのバージョンを設定します。このプログラムでは”gpt-3.5-turbo-0613″というバージョンのモデルを使用しています。
  4. 質問の設定: プログラムがChatGPTに対して出す質問を設定します。この例では、”2023年6月のChatGPTのトレンドを分析し、MarkDown形式で報告してください。”という質問が設定されています。
  5. Googleトレンド検索関数の定義: ‘chk_gtrend’という名前の関数を定義します。この関数は、Googleトレンドのデータを取得して分析する役割を果たします。この関数は期間(開始日と終了日)とキーワードをパラメータとして受け取り、そのキーワードに関するGoogleトレンドの情報を取得します。
  6. 会話の開始: ‘run_conversation’という名前の関数を定義します。この関数は、ユーザーの質問と’chk_gtrend’関数の説明をChatGPTに送信します。ChatGPTでは、関数の説明から、ユーザの質問に答えるために関数を実行するかを自ら判断します。関数を実行する必要があった場合には、関数を動かすために必要なデータを作成し、JSON形式で、Pythonに返信します。(冒頭の図②)
  7. レスポンスの解析: ChatGPTからの応答を解析します。ChatGPTが関数を使う指示を出した場合(”function_call”を含む場合)、その関数名と引数を取得します。
  8. 関数の実行: ChatGPTから指定された関数(この例では’chk_gtrend’)を実行します。そして、その実行結果を取得します。
  9. 関数の実行結果をChatGPTに渡す: 関数の実行結果を再度ChatGPTに渡します。そして、ChatGPTからの最終的な応答を得ます。(冒頭の図④)

以上がこのプログラムの動作の詳細です。このプログラムを使えば、特定のキーワードについてのGoogleトレンドを簡単に分析し、その結果を自動的に取得することができます。

¥950 (2023/05/29 00:30時点 | Amazon調べ)
~市場分析・報告書作成・経営計画策定・英文作成・財務・統計~
¥1,320 (2023/05/14 00:23時点 | Amazon調べ)
タイトルとURLをコピーしました