はじめに
本記事では、OpenAI APIの使い方を説明します。内容は、公式ドキュメントのQuickstart(+α)です。
生成AI分野の情報は急速に古くなってしまうので、情報鮮度が高い公式ドキュメントを参考にしています。
OpenAI APIをQuickstartする手順
Step 0: 事前準備
公式ドキュメントには載っていない事前準備について書きます。
アカウントの作成
OpenAIのアカウントを持っていない場合は、作成する必要があります。
APIキーの作成
OpenAI公式サイトの右上からログインします。
左の方にあるAPI keys(鍵のマーク)を選びます。
Create new secret keyからAPIキーを作成します。
- 一度しか表示されないので大切に保存してください。
- 悪意のある他人に渡ってしまった場合、勝手にAPIが使用される可能性があるので流出厳禁です。
- 流出の疑いがある場合は、先程のAPIのページから削除できます。
Billing(課金)の設定
APIを使用するためには、課金が必要です。
デフォルトの額は10$ですが、任意の額に変更できます。
(OpenAIのAPIの使い方をマスターする程度の利用であれば、0.1$もかかりません。)
Credit balanceが更新されていることを確認します。
また、OpenAIからメールが届いていると思います。
以上で公式ドキュメントには載っていない事前準備は完了です。
Step 1: Setup Python
以降は公式ドキュメントに沿って進めていきます。
トップページに戻り、左のQuickstart tutorialを選びます。
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
を作成します。
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は終了です。
補足
日本語バージョン
先ほどのsystem
とuser
には英語の文字列を渡しましたが、日本語の文字列を渡すことも可能です。
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
[結果省略]
ソースコードの解説
system
とuser
はOpenAIのChat APIで使用されるロールです。これらは、ChatGPTシステムとユーザーの役割を表します。具体的には以下の通りです。
-
system
: AIモデルが遵守すべき指示やガイドラインを提供します。これにより、モデルの応答の方向性やトーンを定めることができます。これを変更することで、色んな種類のChatGPTを作ることができます。 -
user
: 実際のユーザー(またはユーザーを模倣するスクリプト)からの入力を表します。ユーザーの質問やリクエストに基づいて、モデルが応答を生成します。
このように、system
とuser
のロールを使って、チャットセッションの流れとAIの振る舞いをコントロールすることができます。
その他のOpenAI API
今回使用したChat Completions API(ChatGPT API)以外にも様々なAPIが用意されています。
OpenAI API一覧
おわりに
本記事では、公式ドキュメントに沿ってOpenAI APIの使い方を説明しました。
明日の記事は、「Chat Completions APIで京都旅行プランを考える」です。
カレンダーの購読や、QiitaとTwitterをフォローしてくださると励みになります!
ソースコード
本記事で使用したソースコードは、下記のGitHubレポジトリに格納しています。