【ExcelVBA】OpenAIのAPI(GPT-3)を使用して表形式で情報収集する方法
OpenAIのAPIを使用してみたい人
OpenAIのAPIを使用して情報収集したい人向けに書いています。
本記事の内容
ExcelVBA(マクロ)でOpenAIのAPI(GPT-3「text-davinci-003」)を使用して表形式で情報収集する方法
OpenAIのAPI(GPT-3「text-davinci-003」)を使用して表形式で情報収集する方法
以下のようなExcelに、OpenAIのAPI(GPT-3「text-davinci-003」)を使用して表形式で情報を収集する方法を紹介します。
今回は会社の情報を収集してみます。
シートのA列に情報収集したい対象を入力し、1行目に情報収集したい対象の情報収集項目を入力するとその情報を自動で取得できるプログラムです。
会社情報以外にも他の情報収集でも試してみてください。
OpenAIのAPI(GPT-3「text-davinci-003」)を使用するにはOpenAIのアカウント作成とAPIキー発行が必要です。
以下で手順と方法を説明します。
OpenAIのアカウント作成
OpenAIのアカウント作成方法はこちらのリンクで説明しています。
OpenAIのAPIキー発行
OpenAIのAPIの発行方法はこちらのリンクで説明しています。
ExcelVBAでOpenAIのAPI(GPT-3「text-davinci-003」)を使用して表形式で情報収集するプログラム
本プログラムには「Microsoft XML v6.0」の参照設定が必要になります。
参照設定
1.ツールをクリックして、参照設定をクリックする
2.「Microsoft XML v6.0」にチェックしてOKボタンを押す
プログラム
今回のプログラムはGPT-3「text-davinci-003」のAPIを使用しています。
- Sub GatInformation()
- Dim url As String 'リクエスト先URL
- Dim APIkey As String 'APIキー
- Dim KeyWord As String 'プロンプトキーワード
- Dim i As Long 'レコードカウント
- Dim j As Long '列カウント
- Dim k As Long '配列カウント
- Dim Proess_Start As Long 'セルスタート行
- Dim Proess_Sheet As String '処理対象シート
- Dim http As MSXML2.XMLHTTP60 'XMLHTTPオブジェクト
- Dim requestBody As String 'リクエスト文
- Dim strResponse As String 'リクエスト文テキスト文字列型
- Dim temp As Variant '
- Dim temp2 As Variant '
- 'リクエスト先URL
- url = "https://api.openai.com/v1/completions "
- 'APIキー
- APIkey = "発行したAPIキー"
- '処理対象シート
- Proess_Sheet = "Sheet1"
- 'データ存在確認列
- Data_Exist_Cow = 1
- Data_Exist_Row = 1
- '処理開始行
- Proess_Start = 2
- With ThisWorkbook.Sheets(Proess_Sheet)
- 'シートを上部から処理(データが存在する行まで処理)
- For i = Proess_Start To .Cells(Rows.Count, Data_Exist_Cow).End(xlUp).Row
- 'シートを左から処理(データが存在する列まで処理)
- For j = Proess_Start To .Cells(Data_Exist_Row, Columns.Count).End(xlToLeft).Column
- '入力
- KeyWord = .Cells(i, Data_Exist_Cow).Value & "の" & .Cells(Data_Exist_Row, j).Value & "を簡潔に端的に教えてください。見やすく書いてください。"
- 'XMLHTTPオブジェクトをセット
- Set http = New MSXML2.XMLHTTP60
- requestBody = "{""model"":""text-davinci-003"",""prompt"":""" & KeyWord & """,""max_tokens"":2000,""temperature"":0}"
- Call http.Open("POST", url, False)
- Call http.setRequestHeader("Content-Type", "application/json")
- Call http.setRequestHeader("Authorization", "Bearer " & APIkey)
- Call http.send(requestBody)
- Do
- If http.readyState = 4 Then Exit Do
- DoEvents
- Loop
- strResponse = http.responseText
- 'Json形式データの回答テキストがある位置から分割
- temp = Split(strResponse, "\n\n")
- '配列数を取得
- intCount = UBound(temp)
- '配列分処理を繰り返す
- For k = 1 To intCount
- If k = intCount Then
- '最後の回答をセルに出力します。
- temp2 = Split(temp(k), """,""")
- .Cells(i, j).Value = Replace(Replace(temp2(0), "\n", Chr(10)), "\", "")
- Else
- '最後の回答以外をセルに出力します。
- .Cells(i, j).Value = Replace(Replace(temp(k), "\n", Chr(10)), "\", "")
- End If
- Next k
- Next
- Next
- End With
- End Sub
実装内容
以下が実装の際に使用したインプットのシートです。
以下が実装後のアウトプットのシートです。
まとめ
ExcelVBAでOpenAIのAPI(GPT-3「text-davinci-003」)を使用して表形式で情報収集する方法を紹介しました。
最後までご覧いただき、ありがとうございました。
以下のリンクでChatGPTの始め方・登録(アカウント作成)方法、ログイン方法をまとめた記事を書いています。
もし、こちらも興味があればご覧ください。
→「【ChatGPT】始め方・登録(アカウント作成)方法、ログイン方法を解説《画像付き》」
以下のリンクで新しいBingチャットAIの始め方・使い方をまとめた記事を書いています。
もし、こちらも興味があればご覧ください。
→「【Bing】AIチャットの始め方・使い方を徹底解説《Microsoft版ChatGPT検索エンジンの使用方法》」
他にも
「ハイブリッドワークにおすすめ便利・快適アイテム」
「オフィスワーカーがすべきWindowsPC設定」
「VBAでOutlookから自動メール送信する方法」
「【Amazon定期おトク便】おすすめ商品《日用品・食品・子育て用品》」
も紹介していますので、もしよろしければこちらもご覧ください。
最近のコメント