OpenAIのAPIを使ってみた。[Postman]

2023/02/12に公開

やりたいこと

ChatGPTっぽいことを業務に組み込みたくて、OpenAIのAPIを使ってみたいけど、curlとかpythonの実行環境がないってことあると思います。
そんなときのために、Postmanを使って実行する流れを記載していきます。

この記事では、OpenAIで用意されているAPIの中で、以下を試してみたいと思います。

  • テキスト生成
  • 画像生成

事前準備

Postmanはインストールされている前提として、APIリクエストに必要なOpenAI側の事前準備をしていきます。
OpenAIのアカウントを作成し、リクエストに使用するSecret Keyを生成します。
コストについてですが、Free Trialが用意されており、3ヶ月間であれば、18USDまでAPIリクエストが試用できます。

アカウント作成

下記ページの[SIGN UP]をクリックして、OpenAIのアカウントを作成します。
※ChatGPTを使用するアカウントと同様のものです。
メールアドレスと氏名を入力し、携帯電話での2要素認証を設定します。
https://openai.com/api/

Secret Key作成

Secret Keyを作成します。
https://platform.openai.com/account/api-keys

上記のリンクより、ユーザの[API Kes]ページへ遷移して、[+Create new secret key]をクリックします。
生成されたSecret Keyが表示されるので、コピーアイコンを押し、クリップボードにコピーします。

コピーされたSecret Keyを控えておき、[OK]をクリックします。

これでAPIを使用する準備は完了です。

テキスト生成(Text completion)

テキスト生成を使ってみます。
ChatGPTでも使用されている言語モデル[GPT-3]を使用できます。
ドキュメントリンク👇
https://platform.openai.com/docs/guides/completion/text-completion

ちなみに、コストは以下に依存します。(トークンやモデルについての詳細は割愛します。)

  • 送信+生成された文章のトークン数
  • 使用したモデルの種類

早速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 返答に使用されるトークンの最大値

他にも指定できるパラメータもありますので、詳細は以下を参照してください。
https://platform.openai.com/docs/api-reference/completions/create

今回は以下を使用します。

{
    "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)

テキスト生成だけでも結構わくわくしますが、画像生成もやってみます。
ドキュメントリンク👇
https://platform.openai.com/docs/guides/images/image-generation-beta

Postmanにて、新規リクエストを作成します。

[POST]メソッドを選択し、エンドポイントを入力し、[Header]をクリックします。
画像生成リクエスト送信時のエンドポイントは、以下になります。

https://api.openai.com/v1/images/generations

[Header]を入力していきます。テキスト生成と同様のヘッダーを指定します。

次に、[Body]を入力していきます。
画像生成の場合は、以下を指定します。(一例です)

Key Value
prompt 生成したい画像を説明した文字列
n 生成する画像の数(最大10)
size 生成する画像のサイズ

他のパラメータは以下参照。
https://platform.openai.com/docs/api-reference/images

今回は以下を使用します。

{
    "prompt": "寝ている白熊",
    "n": 1,
    "size": "1024x1024"
}

jsonを入力したら、[Send]をクリックして、リクエストを送信します。

レスポンスが返ってきました。

[url]に記載のあるURLをブラウザで開くと生成された画像を確認できます。

昼寝はしていませんが、白熊の画像が生成されていました!
※筆者は画像生成分野をあまり触っていないので、知見がなくどこまでできるかわかっていません。
以上が、画像生成APIを使用する流れです。

料金について

ここまでで発生したコストは、アカウントの使用料ページにて確認できます。
https://platform.openai.com/account/usage
FreeTrialでどれだけ使えるかとかも見えるので、とても分かりやすいです。
ちなみに、この記事に記載の内容で送信すると、$0.02くらいかかりました。
※テキスト生成でカウントされた文章のトークン数、生成する画像の数/サイズ等で変わります。

まとめ

PostmanでOpenAIのAPIを2種類使ってみました。
コードや、コマンドの実行環境がない場合、やはりPostmanは便利ですね。
OpenAIのテキスト生成は、ChatGPTで使用しているモデルということもあり、かなり夢が広がりますね。チャットアプリとの統合や、RPA分野のビジネスアシスタント等でも使用できそうです。
OpenAIのAPIをお試しする際の参考にしてみてください。

それでは。よい自動化ライフを!

Discussion