【実践】OpenAI APIの使い方と実践!JupyterからChatGPTと会話しよう!

Python

PythonでChatGPT APIを使い、コードを記述することで人工知能との対話が可能です。
本記事ではライブラリのインストール方法から、簡単な単発の会話から複数回の連続した会話までを解説します。

環境構築

requirements

python >= 3.7.1

手順

  1. OpenAIのAPI Keyを取得する
    OpenAIに会員登録の後、Personal(右上のアイコン) > View API Keys
    OpenAI - API keys

  2. リポジトリ openai-python をローカルにクローンする
    GitHub OpenAI-Python

  3. 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の使用量の単位)を無駄に消費しているのかもしれない。
トークンについては次回詳しく調べることとする。

参考にしたサイト

GitHub OpenAI-Python

OpenAI - Documentation

[初心者向き] OpenAI APIを使ってPythonでChatGPT遊びするための最初の三歩くらい

タイトルとURLをコピーしました