LoginSignup
8
13

OpenAI APIの使い方講座【公式Quickstart】

Last updated at Posted at 2023-12-01

はじめに

本記事では、OpenAI APIの使い方を説明します。内容は、公式ドキュメントのQuickstart(+α)です。
生成AI分野の情報は急速に古くなってしまうので、情報鮮度が高い公式ドキュメントを参考にしています。

OpenAI APIをQuickstartする手順

Step 0: 事前準備

公式ドキュメントには載っていない事前準備について書きます。

アカウントの作成

OpenAIのアカウントを持っていない場合は、作成する必要があります。

APIキーの作成

OpenAI公式サイトの右上からログインします。

image.png

ChatGPTとAPIが表示されるので、APIを選びます。
image.png

左の方にあるAPI keys(鍵のマーク)を選びます。

image.png

Create new secret keyからAPIキーを作成します。

  • 一度しか表示されないので大切に保存してください。
  • 悪意のある他人に渡ってしまった場合、勝手にAPIが使用される可能性があるので流出厳禁です。
  • 流出の疑いがある場合は、先程のAPIのページから削除できます。

Billing(課金)の設定

APIを使用するためには、課金が必要です。

デフォルトの額は10$ですが、任意の額に変更できます。
(OpenAIのAPIの使い方をマスターする程度の利用であれば、0.1$もかかりません。)

image.png

Credit balanceが更新されていることを確認します。
また、OpenAIからメールが届いていると思います。

image.png

以上で公式ドキュメントには載っていない事前準備は完了です。

Step 1: Setup Python

以降は公式ドキュメントに沿って進めていきます。
トップページに戻り、左のQuickstart tutorialを選びます。

image.png

Pythonのインストール

3.7.1以上のPythonをインストールします。

仮想環境の用意(任意)

仮想環境を用意することが望ましいです。公式ドキュメントはvenvを用いていました。

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

下記のコマンドでOpenAIのライブラリをインストールします。

pip install --upgrade openai

Step 2: Setup your API key

先程取得したAPIキーを環境変数に埋め込みます。
OSによって方法が異なるので公式ドキュメントに従ってください。

APIキーをソースコード内ではなく、環境変数に埋め込むことで、意図しない流出を防ぎます。

Step 3: Sending your first API request

最後のステップは動作確認です。

openai-test.pyを作成します。

openai-test.py
from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."},
    {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."}
  ]
)

print(completion.choices[0].message)

実行結果例

python openai-test.py
ChatCompletionMessage(content="In the realm of code, where logic abounds...

以上でOpenAI APIの公式Quickstartは終了です。

補足

日本語バージョン

先ほどのsystemuserには英語の文字列を渡しましたが、日本語の文字列を渡すことも可能です。

openai-test-japanese.py
from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "一人称が「オラ」で、口癖は「ワクワクすっぞ!」です。"},
    {"role": "user", "content": "明日の天下一武道会の意気込みをお願いします!"}
  ]
)

print(completion.choices[0].message)

実行結果例

python openai-test-japanese.py
[結果省略]

ソースコードの解説

systemuserはOpenAIのChat APIで使用されるロールです。これらは、ChatGPTシステムとユーザーの役割を表します。具体的には以下の通りです。

  • system: AIモデルが遵守すべき指示やガイドラインを提供します。これにより、モデルの応答の方向性やトーンを定めることができます。これを変更することで、色んな種類のChatGPTを作ることができます。
  • user: 実際のユーザー(またはユーザーを模倣するスクリプト)からの入力を表します。ユーザーの質問やリクエストに基づいて、モデルが応答を生成します。

このように、systemuserのロールを使って、チャットセッションの流れとAIの振る舞いをコントロールすることができます。

その他のOpenAI API

今回使用したChat Completions API(ChatGPT API)以外にも様々なAPIが用意されています。

OpenAI API一覧

image.png

おわりに

本記事では、公式ドキュメントに沿ってOpenAI APIの使い方を説明しました。
明日の記事は、「Chat Completions APIで京都旅行プランを考える」です。

カレンダーの購読や、QiitaとTwitterをフォローしてくださると励みになります!

ソースコード

本記事で使用したソースコードは、下記のGitHubレポジトリに格納しています。

8
13
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
8
13