OpenAIのAPIを使ってみた。[Postman]
やりたいこと
ChatGPTっぽいことを業務に組み込みたくて、OpenAIのAPIを使ってみたいけど、curlとかpythonの実行環境がないってことあると思います。
そんなときのために、Postmanを使って実行する流れを記載していきます。
この記事では、OpenAIで用意されているAPIの中で、以下を試してみたいと思います。
- テキスト生成
- 画像生成
事前準備
Postmanはインストールされている前提として、APIリクエストに必要なOpenAI側の事前準備をしていきます。
OpenAIのアカウントを作成し、リクエストに使用するSecret Keyを生成します。
コストについてですが、Free Trialが用意されており、3ヶ月間であれば、18USDまでAPIリクエストが試用できます。
アカウント作成
下記ページの[SIGN UP]をクリックして、OpenAIのアカウントを作成します。
※ChatGPTを使用するアカウントと同様のものです。
メールアドレスと氏名を入力し、携帯電話での2要素認証を設定します。
Secret Key作成
Secret Keyを作成します。
上記のリンクより、ユーザの[API Kes]ページへ遷移して、[+Create new secret key]をクリックします。
生成されたSecret Keyが表示されるので、コピーアイコンを押し、クリップボードにコピーします。
コピーされたSecret Keyを控えておき、[OK]をクリックします。
これでAPIを使用する準備は完了です。
テキスト生成(Text completion)
テキスト生成を使ってみます。
ChatGPTでも使用されている言語モデル[GPT-3]を使用できます。
ドキュメントリンク👇
ちなみに、コストは以下に依存します。(トークンやモデルについての詳細は割愛します。)
- 送信+生成された文章のトークン数
- 使用したモデルの種類
早速Postmanにて、リクエストを作成していきます。
Postmanを起動して、Workspaceから、[+]アイコンをクリックして、リクエストを作成します。
[POST]メソッドを選択し、エンドポイントを入力し、[Header]をクリックします。
テキスト生成リクエスト送信時のエンドポイントは、以下になります。
https://api.openai.com/v1/completions
[Header]を入力していきます。必要なヘッダーは以下になりますので、入力して[Body]をクリックします。
Key | Value |
---|---|
Content-Type | application/json |
Authorization | Bearer {Secret Key※} |
※事前準備にて作成したSecret Keyを指定します。
[Body]を入力していきます。jsonで記載しますので、[row]を選択し、形式にて[json]を選択します。
送信するjsonでは、以下を指定します。(一例です。)
Key | Value |
---|---|
model | 処理に使用するモデルを指定 |
prompt | 送信する文章本文 |
max_tokens | 返答に使用されるトークンの最大値 |
他にも指定できるパラメータもありますので、詳細は以下を参照してください。
今回は以下を使用します。
{
"model": "text-davinci-003",
"prompt": "このAPIは便利だなあ",
"max_tokens": 200
}
jsonを入力したら、[Send]をクリックして、リクエストを送信します。
回答されたレスポンスは以下です。
{
"id": "cmpl-6XXXXXXXXXXXXXXXXXXXXXZF",
"object": "text_completion",
"created": 16XXXXXXXX7,
"model": "text-davinci-003",
"choices": [
{
"text": "と思いました。このAPIを使用して複雑な処理を行うために、例えばプログラマなど専門家にサービスを要求でき、様々なアプリを作成できることを願っています。また、このAPIが持つ機能に関しても、業務に関係した用途で多く利用できることを期待しています。",
"index": 0,
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 161,
"total_tokens": 173
}
}
思った以上に真面目に回答してきました。
ちなみにですが、「そうだと思いました!」とかの、ませた回答をしてくることもありました。(褒めてます)
使用されたトークンの量とかも記載がありますので、参考にできそうですね。
テキスト生成はここまでにしておきます。
ざっくりChatGPTの操作をAPI経由で再現しているイメージでいいと思います。
画像生成(Image Generation)
テキスト生成だけでも結構わくわくしますが、画像生成もやってみます。
ドキュメントリンク👇
Postmanにて、新規リクエストを作成します。
[POST]メソッドを選択し、エンドポイントを入力し、[Header]をクリックします。
画像生成リクエスト送信時のエンドポイントは、以下になります。
https://api.openai.com/v1/images/generations
[Header]を入力していきます。テキスト生成と同様のヘッダーを指定します。
次に、[Body]を入力していきます。
画像生成の場合は、以下を指定します。(一例です)
Key | Value |
---|---|
prompt | 生成したい画像を説明した文字列 |
n | 生成する画像の数(最大10) |
size | 生成する画像のサイズ |
他のパラメータは以下参照。
今回は以下を使用します。
{
"prompt": "寝ている白熊",
"n": 1,
"size": "1024x1024"
}
jsonを入力したら、[Send]をクリックして、リクエストを送信します。
レスポンスが返ってきました。
[url]に記載のあるURLをブラウザで開くと生成された画像を確認できます。
昼寝はしていませんが、白熊の画像が生成されていました!
※筆者は画像生成分野をあまり触っていないので、知見がなくどこまでできるかわかっていません。
以上が、画像生成APIを使用する流れです。
料金について
ここまでで発生したコストは、アカウントの使用料ページにて確認できます。
ちなみに、この記事に記載の内容で送信すると、$0.02くらいかかりました。
※テキスト生成でカウントされた文章のトークン数、生成する画像の数/サイズ等で変わります。
まとめ
PostmanでOpenAIのAPIを2種類使ってみました。
コードや、コマンドの実行環境がない場合、やはりPostmanは便利ですね。
OpenAIのテキスト生成は、ChatGPTで使用しているモデルということもあり、かなり夢が広がりますね。チャットアプリとの統合や、RPA分野のビジネスアシスタント等でも使用できそうです。
OpenAIのAPIをお試しする際の参考にしてみてください。
それでは。よい自動化ライフを!
Discussion