PythonでChatGPTの回答をExcelへ出力する方法を知りたいときはないでしょうか。
けど、そんな中で悩むことは、
・PythonとChatGPTを連携する方法がわからない
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
もくじ
PythonでChatGPTの回答をExcelへ出力する前の下準備
xlwingsについて
xlwingsはExcelとPythonをつなぐことができるPythonライブラリで、ExcelとPythonの相互連携ができます。
xlwingsを使用すると、Excel VBAマクロの代わりにPythonコードを使用してExcelの操作ができるようになります。
今回はExcelからxlwingsを使い、Pythonを実行、ChatGPTのAPIを起動させ、その回答を元のExcelへ出力するようにします。
使い方
xlwingsを使ってExcelとPythonを連携させる場合、Excelファイル内にPythonコードを記述し、ExcelからPythonを実行します。
Excelファイルを開き、xlwingsをインストールした状態で、xlwingsの機能を使ってPythonを実行することができます。
xlwingsとOpenAIをインストール
xlwingsとOpenAIをインストールしましょう。
OpenAIとはGPTシリーズを使えるようにするツールキットです。ChatGPTを使うため併せて実装していきます。
1. コマンドプロンプトまたはターミナルを開きます。
2. pipコマンドを使用して、xlwingsをインストールします。以下のコマンドを入力してEnterキーを押します。
pipをアップグレードします。
pip install --upgrade pip
xlwingsをインストール
pip install xlwings
OpenAIをインストール
pip install openai
Pythonファイル
Pythonを実行するためのPythonファイルを用意します。
テキストファイルで空のテキストを作成し、拡張子を.pyにして任意の名前で保存します。ファイル名は半角英字にしてください。
サンプルは以下としています。
F:\test\gpt.py
回答用のExcelファイルを用意する
回答用のExcelファイルを用意しましょう。
Excelファイルを新規作成し、Pythonファイルと同じファイル名にし、同一階層に保存します。
F:\test\gpt.xlsx
質問内容はA1セルに入力してください。
ChatGPTのAPIキーを取得
今回使うChatGPTのAPIキーを取得しましょう。
API keys発行ページへアクセスします。
「Create new secret key」をクリックし、出力されたAPIキーをメモします。
ChatGPTのAPIを使う上での注意点
ChatGPTのAPIを使う上での注意点を先にお伝えします。
ChatGPTのAPIは利用していくと料金が発生する仕組みになっています。ですので、発行したAPIを数多く使ったり、第三者に共有し、不特定多数の人達に利用されたりすると知らぬ間に費用が多額になってしまっている可能性がありますので、十分注意してください。
ただ、初回登録時は18ドルの無料枠がありますので、それを超えない分量であれば料金は発生することはありません。
今どれぐらい使っているかを確認する方法はUsageページから確認することができますので、随時確認するようにしましょう。
PythonでChatGPTの回答をExcelへ出力する方法
PythonでChatGPTの回答をExcelへ出力する方法について説明をします。
ChatGPT APIと連携するPythonコード
ChatGPT APIと連携するPythonコードは以下の通りです。
import xlwings as xw
import openai
def main():
# OpenAI APIキーを環境変数から読み込みます。
openai.api_key = "sk-****************************************************"
# アクティブなブックを取得します。
book = xw.books.active
sheet = book.sheets[0]
# A1セルに入力された質問を取得します。
question = sheet.range('A1').value
# CatGPTに質問を送信し、回答を取得します。
response = openai.Completion.create(
engine="davinci",
prompt=question,
max_tokens=1024,
n=1,
stop=None,
temperature=0.5,
)
# A2セルに回答を出力します。
answer = response.choices[0].text.strip()
sheet.range('A2').value = answer
if __name__ == '__main__':
main()
Pythonコードを設定する
Pythonコードを設定していきましょう。
先ほどメモしたAPIキーを入力します。
openai.api_key = "sk-****************************************************"
Pythonコードを実装する
先ほど作成したPythonファイルへコードを貼り付け、保存します。
F:\test\gpt.py
Pythonを実行する
ExcelからPythonを実行し、ChatGPTの回答をExcelで得てみましょう。
xlwingsタブをクリックし実行ボタンをクリックします。
実行結果です。
ChatGPTの回答がA2セルへできましたね!
まあ、今回の記事のメインはPythonとChatGPTとExcelの連携方法ということで、ご了承ください…
Pythonコードの説明
Pythonコードについて説明をします。
xlwingsとopenaiの両モジュールをインポートしています。
import xlwings as xw
import openai
アクティブなExcelブックを参照し1シート目を取得します。
book = xw.books.active
sheet = book.sheets[0]
A1セルに入力された質問を取得します。
question = sheet.range('A1').value
CatGPTに質問を送信し、回答を取得するためのパラメータを設定しています。
response = openai.Completion.create(
engine="davinci",
prompt=question,
max_tokens=1024,
n=1,
stop=None,
temperature=0.5,
)
answer = response.choices[0].text.strip()
各パラメータの意味は以下の通りです。
engine | 使用するGPTモデルを指定します。上記のコードでは「davinci」と指定しています。 |
prompt | GPTモデルに入力するテキストを指定します。上記のコードでは、「question」という変数に格納されたテキストを指定しています。 |
max_tokens | GPTモデルが生成する最大トークン数を指定します。上記のコードでは、1024と指定しています。 |
n | GPTモデルが生成する回答の数を指定します。上記のコードでは、1と指定しています。 |
stop | GPTモデルが生成する回答の終了条件を指定します。上記のコードでは、Noneと指定しており、GPTモデルが自動的に回答を終了するようにしています。 |
temperature | GPTモデルが生成する回答の多様性を制御するためのパラメータです。上記のコードでは、0.5と指定しています。値が低いほど、より確信度の高い回答が生成されますが、値が高いほど、より多様な回答が生成される可能性があります。 |
A2セルに回答を出力します。
sheet.range('A2').value = answer
さいごに
いかがでしょうか。
今回は、
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す