1
1

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

Last updated at Posted at 2023-10-02

概要

一般的には、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))

実行結果は↓。

Untitled.png

1
1
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
1
1