概要
一般的には、pythonで開発している人は、OpenAIのChatGPTをAPIで使いたいとき、openai
ライブラリを使いますよね。
(どんな状況かはわかりませんが)ライブラリを使わずにOpenAIのAPIを呼び出して、ChatGPTを利用するためのコードを作成したので、その共有です。
コード解説
早速コード解説です。
コードそのものは、『コードの中身』で書いているので、コードが気になる方はそちらを見てください。
コードを作ろうと思った理由
OpenAIのChatGPTをライブラリ経由で使うときは実はAPIという仕組みを利用しています。細かいことを言うと、これはライブラリを使ってみなさんのパソコンの中でChatGPTが動いているわけではなく、OpenAI社のサーバに皆さんが入力したプロンプトがインターネット経由で飛ばされています(もちろん、OpenAI社側もセキュリティ対策を取っているので、あまり心配に思う必要は無いですが、自分が入力したデータやプロンプトがOpenAI社にインターネット経由で飛んでいるのです)。
これは、"API"という仕組みであり、一般的によく使われているモノです(OpenAI社独自のモノではない)。
したがって、ChatGPTをAPI経由で呼び出して使うためには、正直、openai
ライブラリを使う必要は実はありません。便利だから使っているというだけです。
だったら、ライブラリを使わずにChatGPTをAPI経由で使ってやろうではないか!ということで今回はコードを作ってみました。
コードの中身
import json
import requests
API_KEY = 'sk-' # ご自分のAPIキーに書き換えてください
API_URL = 'https://api.openai.com/v1/chat/completions'
# プロンプト
PROMPT = '最初に学習するプログラミング言語のおすすめを理由付きで3つ教えて'
MESSAGE = [{'role':'user', 'content':PROMPT}]
# ヘッダの設定
headers = {'Content-Type': 'application/json'
,'Authorization': f'Bearer {API_KEY}'}
# POSTするデータ
data = {
'model': 'gpt-3.5-turbo-16k'
,'messages': MESSAGE
}
# POSTメソッドでAPIをコール
response = requests.post(API_URL
,data = json.dumps(data)
,headers = headers)
# ステータスコードチェック
if response.status_code == 200:
result = response.json()
result = result["choices"][0]["message"]["content"]
print(result)
#print(response.json()) # レスポンスがJSON形式の場合
else:
print('Error: ' + str(response.status_code))
実行結果は↓。