OpenAI社が開発した生成AI「ChatGPT」は、その自然な会話能力で日本国内でも広く浸透しました。
そして、その技術を自分のアプリに活かせるのが「OpenAI API」です。興味はあるものの、利用料金や使い方が分からずお悩みの方も多いのではないでしょうか。
本稿では「OpenAI API」をテーマに、基本をまとめてお伝えします。OpenAI APIの導入を検討している方は、ぜひ参考にしてください。
- もくじ
1. OpenAI APIとは:ChatGPTの頭脳をアプリで使える仕組み
OpenAI APIとは、OpenAI社が提供するAIモデル(GPTシリーズなど)を、自社や個人が開発するアプリで使えるようにするAPIです。「AIモデル」と「API」の意味を整理しておきましょう。
- AIモデル:AIにより入力を処理し、出力を返す仕組み。生成AIの頭脳にあたる部分。
- API:アプリの機能やデータを公開し、外部から使えるようにする窓口。
ChatGPTでプロンプト(指示文)を入力・送信すると、内部では「GPT-4」などのAIモデルが指示内容を解釈し、回答を生成しています。OpenAI社は、このAIモデルを外部のアプリでも使えるように、OpenAI APIを通して公開しています。
つまり、OpenAI APIを使えば、ChatGPTのような対話機能を自分のアプリに組み込むことができます。
1-1. OpenAI APIでできること
ChatGPTでできることは、基本的にOpenAI APIを通しても実現できます。代表的なものとして「テキスト生成」と「画像生成」の2つがあります。それぞれ簡単に見ていきましょう。
テキスト生成
テキスト生成は、GPTシリーズが提供する基本的な機能です。OpenAI APIを通して「商品紹介文を考えて」「この文章を要約して」などのプロンプトを送ると、それに応じた自然な文章が返ってきます。
たとえば、ユーザーの問い合わせをOpenAI APIに送り、その回答をアプリ画面に表示すれば、簡単な自動応答機能を実現できます。ほかにも文章作成や要約、翻訳など、幅広い用途に活用できます。
画像生成
現在のOpenAI APIは、ChatGPTと同じく画像生成にも対応しています。画像生成に特化したAIモデル「DALL·E 3(ダリ・スリー)」などを用いることで、プロンプトに応じた画像を生成できます。
たとえば、自社メディアの記事に使うアイキャッチ画像を用意したい場合、記事タイトルやテーマをOpenAI APIに送れば、内容に合った画像を手軽に生成できます。ほかにも広告のビジュアル案やSNS投稿用の画像など、視覚的要素が必要なシーンで便利です。
ただし、テキスト生成と画像生成では、APIに送るリクエスト(要求)の形式が異なります。事前にAPI仕様を確認しておきましょう。
1-2. 料金体系
OpenAI APIは従量課金制で、使った分だけ課金される仕組みです。
利用料金は、使用するAIモデルと、トークン(文章を構成する最小単位)の消費量によって変わります。高性能なAIモデルほど、1トークンあたりの単価が高いです。また、やり取りの量が多くなるほどトークン消費が増える分、料金も増大します。
トークンには、次の3区分があり、それぞれが課金対象です。上に記載したものほど単価が高く設定されています。
- 出力(OpenAI APIからのレスポンスに含まれるトークン数)
- 入力(OpenAI APIへのリクエストに含まれるトークン数)
- キャッシュされた入力(過去のプロンプトから再利用したトークン数)
具体的な課金額はAIモデルによって細かく定められています。詳しくは公式サイトをご覧ください。
1-3. ChatGPTとの違い
ChatGPTとOpenAI APIの違いを下表にまとめました。
項目 | ChatGPT | OpenAI API |
---|---|---|
利用方法 | ブラウザで操作 | プログラムから呼び出し |
UI(アプリ画面) | あり(公式提供) | なし(自作が必要) |
学習利用設定 | デフォルトで「使用する」 | デフォルトで「使用しない」 |
カスタマイズ性 | 制限あり | 高い |
ChatGPTもOpenAI APIも、内部でGPTシリーズなどのAIモデルを使用している点は同じです。ただし、ChatGPTのような専用のアプリ画面は、OpenAI APIにはありません。アプリ側でAPIとのやり取りや、表示処理などの実装が必要です。
また、データの扱い方にも大きな違いがあります。ChatGPTでは、ユーザーが送信したプロンプトをAIの学習に使用する設定が、初期状態で有効になっています。設定をオフにすることもできますが、手動での設定変更が必要です。
一方、OpenAI APIで送信したデータは、デフォルトで学習に使用されません。これは、公式サイトにも明記されています。つまり、ユーザーのデータが意図せずAI学習に使用されるリスクを回避できます。
2. OpenAI APIを利用するメリット
OpenAI APIの利用は、企業や開発者に多くのメリットをもたらします。OpenAI APIを利用する主なメリットは、次の3つです。
2-1. 最先端のAI技術を簡単に組み込める
OpenAI APIを利用すると、最先端のAIモデルを自社のアプリへ簡単に組み込めます。
一般的に、AIモデルの構築には大規模なデータ収集や学習、高度な専門知識が必要です。これには、多大な手間やコストがかかります。その点、OpenAI APIを通してAIモデルの機能を借りれば、自社でゼロからAIを開発する必要がありません。
OpenAI APIの料金体系や利用方法に問題がなければ、高度なAI機能を導入できます。つまり、リソースや技術に関する障壁を大幅に緩和できるということです。
2-2. サービス品質やユーザー体験の向上を図れる
OpenAI APIにより便利なAI機能を追加することで、サービス品質やユーザー体験の向上を図れます。
たとえば、ECサイトに商品レビューのAI要約機能を実装すれば、ユーザーはレビュー全体を読まなくても商品の大まかな評判を把握できます。結果として、ユーザーの購入検討がスムーズになり、離脱の防止にもつながるでしょう。
もちろん、サービス品質やユーザー体験が実際に向上するかどうかは、活用方法や設計次第です。しかし、AI機能のハードルが下がることで、新たな可能性が大きく広がります。
2-3. 自由なカスタマイズが可能
OpenAI APIは前述のように、決まったアプリ画面がなく、アプリ開発者が必要な機能や表示を設計する必要があります。その分、画面仕様や送信するプロンプトの形式などを、アプリに合わせて自由にカスタマイズすることができます。
また、OpenAI APIに送るリクエストには、さまざまなパラメータ(追加条件)を付加できます。たとえば、文体や口調の指定、応答の文字数制限といった細かい設定を行えます。パラメータによって、AIの回答を自社のニーズに合わせて微調整できます。
3. OpenAI APIを利用する際の注意点
OpenAI APIは便利ですが、不用意に使うと思わぬトラブルにつながることもあります。OpenAI APIを利用する際の注意点3つを押さえておきましょう。
3-1. 利用料金に気をつける
OpenAI APIのように従量課金制のAPIは、使いすぎると利用料金が膨らみやすい点に注意が必要です。「気づいた時には予算を大きく超えていた」というケースもあります。
OpenAI APIの利用料金は、基本的にチャージ方式です。つまり、チャージした金額の範囲内でのみ利用できるため、上限管理がしやすい仕組みといえます。
ただし、自動チャージ設定が有効になっている場合、残高が不足すると自動的にチャージが繰り返されます。そうなれば、上限なしに課金し続けてしまいかねません。
予算のコントロールが必要な場合は、自動チャージ設定を必ずオフにしておきましょう。設定内容は、OpenAIのアカウント管理画面から確認・変更できます。
3-2. プログラミングの知識が必要
OpenAI APIの利用には、基本的なプログラミングの知識が必要です。具体的には、アプリ内からOpenAI APIへリクエストを送り、そのレスポンスを加工してWebページなどに反映させる、といった一連の処理をコードで記述する必要があります。
前述のとおり、ゼロから生成AIを開発するよりはハードルが低いです。とはいえ、まったくのプログラミング初心者では、正確なコードの実装は難しいでしょう。そのため、アプリの開発言語(PHPやJavaなど)に精通した人材の確保が必要です。
3-3. APIキーの管理に気をつける
OpenAI APIの利用には、「APIキー」と呼ばれる認証情報が必要です。このAPIキーは、外部に漏えいしないよう、管理に気をつけましょう。APIキーが第三者に漏えいすると、不正利用され、高額な請求につながる恐れがあります。
特に、プログラムの中にAPIキーを直接書き込む「ハードコーディング」は、絶対に避けましょう。コードが共有・公開された場合、そこからキーが漏えいする恐れがあります。
とはいえ、APIを使用するためには、APIキーをプログラムから読み込んで使用しなければなりません。この場合は、環境変数(実行環境に設定する非公開の変数)や、安全に管理された外部ファイルを使う方法が一般的です。
4. OpenAI APIの基本的な使い方【5ステップ】
OpenAI APIを利用してAI機能をアプリに組み込むためには、大まかに5つのステップを踏む必要があります。ここでは、OpenAI APIの基本的な使い方を見ていきましょう。
導入目的と対象アプリを明確にする
大前提として、明確にしておくべきは「何のためにOpenAI APIを導入するのか」と「どのアプリに組み込むのか」です。たとえば「ユーザー対応の自動化」「画像生成によるコンテンツの品質向上」など、さまざまな導入目的が考えられます。導入目的や対象アプリを明確にすることで、使用するAIモデルや想定コストなどを把握しやすくなります。不要な課金や実装の手戻りが発生しないよう、導入前にしっかり整理しておきましょう。
4-1. 開発環境を整える
まずは、プログラムを作るための開発環境を整えます。OpenAI APIをアプリに組み込むにあたって、コードの記述や実行、テストなどが行える開発環境が大前提です。
また、APIの利用を効率化するライブラリ(補助的なソフトウェア部品)も導入しておくと良いでしょう。たとえば、アプリの開発言語がJavaの場合は、APIとの通信に使われる「JSON形式」のデータを扱いやすくする「Jackson」などが代表的です。
4-2. OpenAIアカウントを作成する
OpenAI APIを利用するためには、「OpenAI開発者プラットフォーム」でのアカウント作成が必要です。登録は、メールアドレスとパスワードによる方法のほか、Googleアカウントなどの外部サービスを使う方法もあります。アカウント作成は、画面右上の「Sign up」から、画面の指示に従って進めましょう。
アカウントの作成が完了すると、APIキーの発行や利用状況の確認、料金の管理などが可能になります。これらの設定は、すべてこのアカウントから操作します。
4-3. APIキーを取得する
次に、作成したアカウントでAPIキーを取得します。OpenAI開発者プラットフォームにログインした状態で、「Dashboard」→「API keys」→「Create new secret key」からAPIキーの取得手続きが可能です。
前述のとおり、このAPIキーは厳重な管理が求められます。ハードコーディングは避け、安全に扱いましょう。
4-4. 支払い情報を登録する
OpenAI APIの利用を開始するためには、クレジットカードなどの支払い情報を登録する必要があります。OpenAI開発者プラットフォームにログインした状態で、右上の歯車アイコン→「Billing」から支払い情報を登録します。
なお、登録の途中で表示される「Would you like to set up automatic recharge?」といったチェック項目は、自動チャージ設定を意味します。使いすぎが不安な方は、オフにするのがおすすめです。
4-5. プログラムでAPIを利用する
最後に、取得したAPIキーを用い、プログラムでOpenAI APIを利用します。大まかな実装の流れは下記のとおりです。具体的なコードは、使用するプログラミング言語やライブラリによって異なります。
- APIキーを安全に読み込む処理を実装する
- OpenAI APIに送るリクエストを構築する(APIキーを含める)
- OpenAI APIにリクエストを送信する
- OpenAI APIからのレスポンスを取得する
- レスポンスを必要に応じて加工し、アプリ画面などに反映する
このようなステップを踏むことで、自社のアプリとOpenAI APIを連携させることが可能になります。
参考までに、PythonによるOpenAI APIの使用例は次のとおりです。実際の処理はアプリの仕様や使用技術によるため、あくまで参考としてご覧ください。
import openai
import os
from dotenv import load_dotenv
# [1] APIキーを安全に読み込む
load_dotenv()
api_key = os.getenv('OPENAI_API_KEY')
if api_key is None:
print('APIキー未設定です。環境変数にOPENAI_API_KEYを追加してください。')
exit()
openai.api_key = api_key
# [2] OpenAI APIに送るリクエストを構築する
messages = [
{'role': 'system', 'content': 'あなたは親切なアシスタントです'},
{'role': 'user', 'content': 'APIとは何か教えてください'}
]
# [3] OpenAI APIにリクエストを送信する
# [4] OpenAI APIからのレスポンスを取得する
response = openai.ChatCompletion.create(
model='gpt-4',
messages=messages
)
# [5] レスポンスを加工して出力
generated_text = response.choices[0].message['content']
print(f'AIの回答:{generated_text}')
まとめ
OpenAI APIとは、OpenAI社のAIモデルを自分のアプリで使えるようにする窓口のことです。OpenAI APIを使うことで、高度なAI機能を比較的手軽に実現でき、用途に応じた柔軟なカスタマイズも可能となります。
ただし、OpenAI APIを利用する際には利用料金やAPIキーの管理に注意が必要です。これからOpenAI APIの導入を考えている方は、今回の内容をぜひ参考にしてください。