PythonでChatGPT APIを使い、コードを記述することで人工知能との対話が可能です。
本記事ではライブラリのインストール方法から、簡単な単発の会話から複数回の連続した会話までを解説します。
環境構築
requirements
python >= 3.7.1
手順
-
OpenAIのAPI Keyを取得する
OpenAIに会員登録の後、Personal(右上のアイコン) > View API Keys
OpenAI - API keys -
リポジトリ openai-python をローカルにクローンする
GitHub OpenAI-Python -
OpenAI用にライブラリをアップグレード
リポジトリに記載のコマンドをポチポチやる。
オプションで必要ということでデータベース関連のライブラリもインストール
pip install --upgrade openai
python setup.py install
pip install openai[datalib]
単発の会話
import openai
openai.api_key = "sk-hogehogeMVG" #自身のAIPKeyy
completion = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello world!"}])
print(completion.choices[0].message.content)
連続した会話
import openai
openai.api_key = "sk-hogehogeMVG" #自身のAIPKeyy
messages = []
question = "wagnerの式を使って飽和蒸気圧を算出するvbaコード教えて"
messages.append({"role": "user", "content": question})
completion = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)
print(completion.choices[0].message.content)
messages.append({"role": "assistant", "content": completion.choices[0].message.content})
質問と回答をmessagesに追記して渡すことで、文脈を考慮した回答になります。
回答
print(messages[i]["content"]) #i:参照したい回答のリスト内の番号
以下はVBAでWagnerの式を使用して飽和蒸気圧を計算するサンプルコードです。
Public Function CalculateSVP(Temperature As Double) As Double
Dim A As Double, B As Double, C As Double
Dim logP As Double, P As Double
A = 8.07131
B = 1730.63
C = 233.426
logP = A - B / (Temperature + C)
P = 10 ^ logP
CalculateSVP = P
End Function
このサンプルコードでは、関数CalculateSVPに温度値を渡すと、Wagnerの式を用いて飽和蒸気圧を計算しています。関数内で定義されているA、B、CはWagnerの式の定数で、この値が蒸気圧計算に使用されます。温度値は摂氏で渡す前提で書かれている関数なので、必要に応じて華氏・ケルビン単位に変換する必要があります。
懸念事項
過去の質疑をmessageとして毎回与えているので、トークン(APIの使用量の単位)を無駄に消費しているのかもしれない。
トークンについては次回詳しく調べることとする。