ChatGPTのAPIとは
言わずと知れた対話型のAIであるChatGPTの使い方として、Web上で直接やりとりをする方法が主流ですが、そのAPIを活用すれば、ソフト開発者が自身のソフトウェア上でChatGPTを活用することも可能です。
本記事では、そのChatGPT APIの概要を説明するとともに、実際の使い方を図を交えて分かりやすく解説していきます。
APIとは?
まず、そもそもAPIとはどのような意味なのでしょうか。APIは「Application Programming Interface」の略語であり、その名の通りソフトウェア同士を繋ぐインターフェースを表しています。
より具体的に言えば、あるソフトウェアの機能を他の開発中のソフトウェアで利用したい時、それを可能にするための機能を表します。APIはChatGPTのようなAI分野だけでなく、Web開発を始めとしたソフトウェア開発全般で広く使われています。
ChatGPT APIでできること
そんなAPIですが、ChatGPT APIを使うとどのようなことができるのでしょうか。APIはソフトウェア間をつなぐことができるインターフェースですから、ChatGPTの対話機能を自身で開発したソフトウェアに組み込むことが可能です。そのイメージとしては下図のような形です。
こうしたことが可能になれば、例えば以下のようなアプリケーションを作成することができるでしょう。
- 会社案内用のチャットボット
- 企業のSNSアカウントの運用と管理
- 特定分野に特化した翻訳アプリ・要求に応じた自動ソフトウェアコード生成
通常Web上で使用するChatGPTと異なり、特定分野へ特化させることや応答傾向をカスタマイズすることが可能です。それらを自作ソフトウェア上でコントロールできる点が特徴と言えるでしょう。
ChatGPT APIの料金
ChatGPTのWeb版は無料で使うことができますが、ソフトウェアに実装可能なChatGPT APIは基本的に有料です。ChatGPT APIでは、AIとのやりとりに使用した言葉の数に応じて料金が加算されていきます。この言葉の数はトークンと呼ばれ、公式サイトではトークン単位での料金が提示されています。
英語圏では1単語が1トークンですが、日本語ではひらがな1文字で1トークン以上が消費され、より費用が掛かりやすいため、注意しましょう。
また、やりとりするトークンは質問と回答を合わせた形であり、精度の高い回答を得るために過去のやりとりを利用する設定にすると、一気にトークン消費量が増えるため注意が必要です。肝心のトークンごとの費用について、最も安価な4kコンテキスト版で1000トークンにつき質問文は0.0015ドル、回答文は0.002ドルです。
円換算したとしても1円を下回るため、一見するとかなり安価に利用できるように見えます。しかし前述したように、日本語はトークン数が大きくなりがちなこと、過去のやり取りを利用して精度を上げること、を考えるとすぐに利用料金が上がってしまうので注意しましょう。
無料利用の条件
上記で述べたようにChatGPT APIは有料ですが、無料で利用できる枠があります。
アカウント作成をした時点で5ドル分のクレジットが付与されるため、この分に関しては無料枠として利用することが可能です。トークン数で考えれば、1000トークンを1000回分で質問と回答合わせて3.5ドルであるため、それなりのやりとりは無料で行うことができるでしょう。
ただし、この5ドル分も3カ月で期限切れとなりますので、アカウント作成からあまり間を空けずに使いたいところです。
ChatGPT API使用のための準備
ChatGPT APIについて、その概要を説明してきましたが、実際にどのようにして使えばよいのでしょうか。実際にAPIを使っていく前に、準備段階で行うことを図説していきます。
APIサイトへのアクセス
ChatGPT APIを使うためにはOpenAIのサイトへ行き、ユーザごとのSecret Keyを生成しなければなりません。この時点でChatGPTを使うためのアカウント作成ができていない場合、まずはアカウント作成から始めます。アカウント作成方法については以下の参考サイトを参照するとよいでしょう。
アカウント作成が完了したら、下記サイトにてログインを行います。
すると、下図の画面が現れますので、API用のサイトへアクセスします(①)。
移行先の下図のサイトがChatGPT APIを使うためのポータルサイトであり、このページからSecret Key生成ページに行けるだけでなく、様々なドキュメント(②)やアカウント設定(③)にアクセスすることもできます。
Secret Keyの生成
ChatGPT APIのポータルサイトからSecret Key生成ページに移行するためには、下図のようにまずはユーザアカウント(①)をクリックし、「View API keys」を選択(②)しましょう。
アカウント設定画面に移行したら、Secret Key生成ページへ移行し、「Create new secret key」ボタンを押下(③)します。そして名称を設定し、生成ボタンを押下します。
ここで表示されるSecret Keyは個人のアカウントに紐付いた重要な文字列であるので、誤って流出しないよう細心の注意を払いましょう。特にソースコードへKeyを直接記載する際は、ソースコードの流出にも気をつけましょう。
無料枠と使用量の確認
ChatGPT APIは前述したように、基本的には有料であり、トークンの使用量で料金が決まります。実際にAPIを使用する前に、トークンの使用量を確認できるページにアクセスしておきましょう。同ページはアカウント設定ページから下図のUsageを選択する(①)ことで移行することができます。
使用量確認画面ではアカウント作成時に付与された5ドルとその使用量(②)も確認可能です。使用量は日ごとに記録されるため、どれだけ費用がかかりそうかの目安にもしましょう。
Python上での使い方
ChatGPT APIを使用する準備が整ったところで、実際に使用する方法を解説していきます。ここではPythonのコード上でチャットボットを実装する方法を例として紹介していきます。
ライブラリのインポートとAPIの登録
まず、使用しているPython環境にOpenAIのライブラリをインストールする必要があります。使用しているIDEのターミナル画面から以下のコマンドを実行し、インストールを行いましょう。
pip install openai
問題なく完了したら、いよいよ本体コードの作成です。まずは以下のコードでOpenAIのライブラリをインポートします。
import openai
ここまでは一般的なPythonのプログラム作成と同じです。次にChatGPT APIを使用するためのAPIキーをコード上で定義します。ここで、前述したSecret Keyを入力することになります。コード上の記述では、インポートしたOpenAIのモジュールのメンバーに登録する形です。
openai.api_key = <ここにSecret Keyを入力>
ChatGPTの実装と設定
次にChatGPT本体をコードに実装します。まずはChatGPTに投げたい質問内容を定義します。
msg=”ChatGPTとは何でしょうか?”
上記で定義した質問内容を与える形でChatGPT本体を実装します。例として以下のように実装をしていきます。
res = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": msg},
],
)
モデルの選択に関しては各モデルごとに料金が異なるので注意しましょう。最も重要なChatGPTへの入力文を表すmessageに関しては以下のような意味を持ちます。
"role"は入力文がどのような意味を持つかを表します。"system"で設定すればCHatGPTそのものへのシステム指示となり、どのように回答をしてほしいのか、言語は何かなどを指定することができます。
"user"で設定するとユーザからの質問という扱いで主な用途と言えるでしょう。"assistant"と設定すれば、ChatGPTが精度の高い回答を提示できるよう知識や前提条件を教える入力文として扱われます。
ChatGPTからの応答は戻り値をprintで出力することで表示することができます。
print(res["choices"][0]["message"])
応用に向けたパラメータ設定
ChatGPTの本体を実装する際、追加で引数を設定すれば、AIの挙動をカスタマイズすることも可能です。
・temperature このパラメータはAIの回答のランダム性を決めており、高いほど回答がランダムになります。0〜2.0の範囲で決められ、デフォルトは1.0です。
・max_tokens AIの回答に使用するトークンの数を制限することができます。予期せずAIの回答が長文になることも考えられるので、基本的には料金から逆算してある程度大きい値を設定しておきましょう。
・n AIの返答数を決めることができます。通常は1ですが、2や3にすると複数パターンの回答を提示してくれるようになります。
・presence_penalty AIの回答の多様性を調整することができます。具体的には同じ単語やフレーズを繰り返す頻度が変わる形です。大きくすれば多様な回答が得られやすくなりますが、小さくすると同じような回答が得られやすくなります。-2.0から2.0の間で設定でき、デフォルトは0です。
ChatGPT APIを使いこなすため
以上が簡単な使い方の説明です。次に、さらにChatGPT APIを使いこなすための方法を紹介していきます。
cURLの活用
curlとはインターネット上のリソースとやりとりをするためのコマンドです。ChatGPT APIはこのcurlコマンドを使用しても利用することが可能です。
curlコマンドはインストールさえできれば、各OSのターミナルから入力ができるため、コーディングを行わずともChatGPTを利用できます。気軽に設定を変えてAIを試すことができるため、とりあえず試してみたいという方におすすめです。Pythonなどのコードで実装していたAPIキーの設定もcurlコマンドから実行可能です。
公式ドキュメントの活用
上記で述べたような簡単なチャットボットではなく、より高度な機能をAPIとして使っていきたい、もしくはさらに細かいAIの設定を編集したい場合には、公式ドキュメントを参照することが最も近道です。
通常、APIはその公開元が最も詳細な仕様を提供しており、バージョンアップに伴う変更内容も即座に反映されるため、公式ドキュメントを手元に設計を進めることが基本です。ChatGPT APIの公式ドキュメントも下図のようにポータルサイトから移行(①)することができます。
APIの仕様が書いてあるだけでなく、丁寧なチュートリアルもあるので是非とも参照しましょう。ただ、英語のみ対応しているため、Web版のChatGPTを使って翻訳するなど使い方は工夫しましょう。
ChatGPT APIを使いこなして独自のAIを設計してみよう
本記事ではChatGPT APIについてその概要を説明しつつ、具体的な使い方についても図説してきました。
アカウント作成からPythonコードの作成まで、その手順がイメージできたのではないでしょうか。APIをさらに使いこなしたいと思う方は公式ドキュメントのチュートリアルを参考にしつつ、様々な設定を試してみるとよいでしょう。
APIはチャット用のAIだけではありません。画像生成AIなどもAPIが公開されており、独自の画像生成AIを作ることもできます。もちろん、トークンごとの料金は異なるので、使うのもよいですが、使用量は常にチェックしておきましょう。
まだまだ出できたばかりのChatGPT AIを上手く活用すれば、エンジニアとしてもビジネスとしても先駆けた行動として大きなスキルアップになるはずです。