LoginSignup
3
3

More than 1 year has passed since last update.

GPT-3(≒ChatGPT) を Python で簡単に叩く

Last updated at Posted at 2022-12-13

最近、世間では、ChatGPT が話題になっています。

自分も色々と触ってみましたが、

  • ユーザー数が多いのもあってアクセスできない時がある
  • 簡単にcsvなどに保存できない
  • アプリに組み込めない

などがあったので、簡単にアクセスできるようにコードを書いてみました。

※今回アクセスするのは「ChatGPT」そのものではなく、OpenAIが作成しているほぼ同じ機能を持つモデルです。

OpenAI API の free trial のクレジットを利用します。
実行に関しては全て自己責任でお願いします。

準備

API KEY の取得

まず初めに、https://beta.openai.com/account/api-keys にアクセスして、アカウントを作成し、「Create new secret key」というボタンからAPIを取得してください。

ここは詳しく書いてある記事がたくさんあるので省略します。

ライブラリのインストール

pip install openai

openai の api に簡単にアクセスできるようにするためのライブラリです。

コード

以下のようなコードで簡単に使えます。
csvへの保存や配列の使い方などはお好きにどうぞ!

import os
import openai
import csv

# API_KEY は直書きしてしまうことが多いですが、環境変数に設定することを推奨。
openai.api_key = os.getenv("OPENAI_API_KEY")

# 対話モデルを設定(多分これがGPT-3)
engine = "text-davinci-003"

def interact_gpt3_once(prompt):
    response = openai.Completion.create(
        engine=engine,
        prompt=prompt,
        temperature=0.5, # 0〜1。大きいほどクリエイティブで小さいほど明確な応答をする。
        max_tokens=1024, # 生成されるトークン(文字列をトークンに変換して処理しているらしく、英語ならword数の3/4程度の値になるそう)の最大数

        # ここの引数は様々あります。
        # https://beta.openai.com/docs/api-reference/completions/create を確認してください。
    )

    # 結果を取得
    result_text = response.choices[0]["text"]
    print(result_text)

    # csvに保存(任意)
    with open("data/chat-gpt.csv", "a", encoding="utf-8", newline="") as f:
        writer = csv.writer(f)
        writer.writerow([prompt, result_text])

if __name__ == "__main__":
    # 今回は一つの prompt を 10 回繰り返しているが、ここはお好きにどうぞ!
    prompts = [ """エンジニアの心構えを教えて。""" for _ in range(10)]
    
    for prompt in prompts:
        interact_gpt3_once(prompt)
        print("\n〜〜〜〜〜〜〜〜\n")

参考

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3