ライブラリを使わずにOpenAI API を呼び出す

概要

一般的には、pythonで開発している人は、OpenAIのChatGPTをAPIで使いたいとき、pythonであれば、```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))

実行結果は↓。

この記事が気に入ったらサポートをしてみませんか?