0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめてのChatGPT API 〜API呼び出し編〜

Last updated at Posted at 2023-10-04

はじめに

ChatGPTを使ったクイズアプリを作るにあたって、
前回はChatGPT APIについて得た情報をまとめたので、今回は実際にAPIを呼び出していきたいと思います!

また、開発中のあれこれについては以下のサイトでまとめています。
https://zenn.dev/kitaji12/scraps/a115ff66546e65

事前情報

  • OpenAI / ChatGPT 初心者
  • クイズアプリは React + Flask で作成

開発環境

  • macOS Monterey 12.5
  • Visual Studio Code 1.46.1
  • Python 3.10.6
  • Flask 2.3.2

準備

  • 前回の記事で紹介したアカウントの作成からAPIキーの作成まで行う

OpenAI ライブラリをインストール

Pythonのサンプルプロジェクトを作成し、OpenAIのライブラリをインストールします。
ターミナルを開き、以下のコマンドを実行します。

$ pip install openai

APIキーを環境変数へ設定

次に、APIキーを環境変数にセットアップしておきます。
以下のコマンドのAPI_KEYの部分に、取得したAPIキーを置き換えて実行します。

$ export OPENAI_API_KEY = "API_KEY"

ChatGPT APIを呼び出してみる

今回は最小構成でプロジェクトを作成し動かしてみます。

.
├── requirements.txt
├── test.http
├── test.py

必要なライブラリをまとめているテキストファイルです。

requirements.txt
Flask==2.3.2
requests==2.31.0
Flask-Cors==3.0.10
openai==0.27.8

.httpファイルで指定した HTTP 要求を送信します。

test.http
###
GET http://localhost:5000/

Pythonコードはこんな感じです。

test.py
from flask_cors import CORS
from flask import Flask
import openai
import os

app = Flask(__name__)
CORS(app)

@app.route("/")
def test():
  openai.api_key = os.environ["OPENAI_API_KEY"]

  ## ChatGPTに投げる質問を記載する
  response = openai.ChatCompletion.create(
    model = "gpt-3.5-turbo",
    messages = [
      {"role": "user", "content": "ハリーポッターの最新作は"},
    ],
  )

  return response.choices[0]["message"]["content"].strip()

if __name__ == "__main__":
  app.run(debug=True)
  • model:今回は gpt-3.5-turbo を使用
  • messages:ChatGPTに投げる質問を記載する
    • role:どこからの問い合わせなのかを明記する
      • user:人間からの問い合わせ
      • assistant:GPTからの返答(以前の応答を保存するのに役立つ)
      • system:ChatGPTに与える役を設定するために使用
    • content:問い合わせや返答の文章を記載する

実行結果

■ test.py
ターミナルからtest.pyを実行した結果です。
サーバーがたったことが確認できました。
test.py実行結果.png

■ test.http
VSCodeからtest.httpを叩いた結果です。
精度は微妙ですが「ハリーポッター」に関する答えが返ってきました!
test.http実行結果.png

さいごに

ChatGPT APIを実際に叩いて結果が返ってくることが確認できました。
メッセージオブジェクトのroleパラメータを変えることでどんな目的で送ってきているかを判断できることを学びました!
クイズアプリの作成に向けて一歩前進したかなと思います。

参考サイト

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?