【Postman】chatGPTのAPIを叩いてみた!function_callも解説!

開発ツール

はじめに

こちらの記事で紹介したPostmanの深堀りです。

Postmanは、APIの開発やテストを効率化するために、多くのエンジニアに愛用されている必須ツールです。
本記事では、このPostmanを活用して、今注目を集めているChatGPT APIを効果的に利用する方法を解説します。APIキーの取得といった基礎から、function_callを駆使した高度な操作まで、初心者でもステップバイステップで実践できる内容をお届けします。この記事を読めば、ChatGPT APIの活用スキルも確実にレベルアップできます!

APIとは

API(Application Programming Interface)は、アプリケーション間でデータや機能をやり取りするための仕組みです。
ユーザーがChatGPTを使うときはブラウザから聞きたい内容を入力すると、ChatGPTのアプリケーションにリクエストされChatGPTがそれに対する返答を生成して、ブラウザにレスポンスが返されユーザーに届きます。
APIの場合は、自分で開発したアプリ(今回はPostmanから)ChatGPTのアプリケーションに直接決まった形でリクエストを送り、レスポンスが返されます。

Postmanのセットアップ

1. Postmanのインストール

以下の手順でPostmanをインストールしましょう:

  1. 公式サイト(https://www.postman.com/downloads/)にアクセス
  2. お使いのOSに合わせたバージョンをダウンロード
  3. インストーラーを実行

2. アカウント作成

無料アカウントで十分な機能が使えます。メールアドレスで簡単に登録できます。

ChatGPT APIを利用する準備:APIキー取得

1. OpenAIダッシュボードにログイン

OpenAIのウェブサイト(https://platform.openai.com/settings/organization/general)かログインします。アカウントを持っていない方はサインアップを押してアカウントを作成します。

2.「API keys」セクションを選択

左のメニューバーから「API keys」を選択して、左上の「Create new seacret key」ボタンを押下

3.「Create new secret key」からAPIキーを作成

APIキーの名前(なんでもよい)などを入力して、「Create seacret key」ボタンを押下
表示されたAPIキーを保存する。(1回しか表示されないので注意!)

4. 使用料をチャージ

左メニューの「Biling」をクリックして、「add to credit balance」からチャージ
先にPayment methodsから支払方法を登録かも(今アカウント作成した人は無料クレジットがあるので不要かも)

実践:PostmanでChatGPT APIを叩く具体例

1. Postmanを開く

postmanを開いて、左上の+ボタンをクリックしてコレクションを作成(ディレクトリみたいなもの)
collectionの右側にカーソルを合わせて、3点ボタンからAdd requestから新しいリクエストを作成

1. 基本的なリクエスト設定

Postmanを開いて、新しいリクエストを作成し、以下の設定を行います:

  • Method: POST
  • URL: https://api.openai.com/v1/chat/completions
  • Headers:
    • Authorization: Bearer <YOUR_API_KEY>
    • Content-Type: application/json

2. リクエストボディの設定

リクエストに以下の内容をコピペして、右上のSendボタンを押します!

{
    "model": "gpt-4o-mini",
    "messages":  [
          {
            "role": "user",
            "content": "こんにちは"
          }
    ]
}

すると以下のようなレスポンスが返ってきます!
[“choices”][0][“message”][“content”]内に返答が格納されてますね!

{
    "id": "chatcmpl-Ak25hAvDAIwUgxW6owgLCIBWj0kmA",
    "object": "chat.completion",
    "created": 1735534489,
    "model": "gpt-4o-mini-2024-07-18",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "こんにちは!どんなことをお手伝いできますか?",
                "refusal": null
            },
            "logprobs": null,
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 8,
        "completion_tokens": 14,
        "total_tokens": 22,
        "prompt_tokens_details": {
            "cached_tokens": 0,
            "audio_tokens": 0
        },
        "completion_tokens_details": {
            "reasoning_tokens": 0,
            "audio_tokens": 0,
            "accepted_prediction_tokens": 0,
            "rejected_prediction_tokens": 0
        }
    },
    "system_fingerprint": "fp_0aa8d3e20b"
}

応用. function_callの使用例

function_callを使用すると、特定の形式で回答を得ることができます。以下は材料から料理を出力してくれる例です!

{
    "model": "gpt-4o-mini",
    "messages":  [
          {
            "role": "system",
            "content": "あなたは世界一のシェフです"
          },
          {
            "role": "user",
            "content": "1. 牛肉 2. 玉ねぎ 3. ジャガイモ"
          }
    ],
    "max_tokens": 1500,
    "tools": [
        {
            "type": "function",
            "function": {
                "name": "AICook",
                "description": "料理を提案する",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "menu": {"type": "string", "description": "提案した料理名"},
                        "cooking": {"type": "string", "description": "提案した料理の調理工程"}
                    }
                },
                "required": ["menu", "cooking"]
            }
        }
    ],
    "tool_choice": {"type": "function", "function": {"name": "AICook"}}
}

以下のようなレスポンスが返ってきます。
Json形式で返してくれるので、システムに組み込みやすいですよね!

{
    "id": "chatcmpl-Ak27uzlM1HUP90pZhZSVwcLIJHUwy",
    "object": "chat.completion",
    "created": 1735534626,
    "model": "gpt-4o-mini-2024-07-18",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": null,
                "tool_calls": [
                    {
                        "id": "call_ef2fW4PGgA1MCMMvuvUWtVhq",
                        "type": "function",
                        "function": {
                            "name": "AICook",
                            "arguments": "{\"menu\":\"牛肉とジャガイモの煮込み\",\"cooking\":\"1. 牛肉を一口大に切り、玉ねぎは薄切り、ジャガイモは皮をむいて一口大に切る。  \\n2. 鍋に油を熱し、玉ねぎを炒めて透明になるまで炒める。  \\n3. 牛肉を加えて色が変わるまで炒める。  \\n4. ジャガイモを加え、全体をよく混ぜる。  \\n5. 水を入れて、煮立ったらアクをとり、蓋をして弱火で約30分煮込む。  \\n6. 味を見て、必要に応じて塩とコショウで調整する。  \\n7. お皿に盛り付けて、完成。\"}"
                        }
                    }
                ],
                "refusal": null
            },
            "logprobs": null,
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 104,
        "completion_tokens": 207,
        "total_tokens": 311,
        "prompt_tokens_details": {
            "cached_tokens": 0,
            "audio_tokens": 0
        },
        "completion_tokens_details": {
            "reasoning_tokens": 0,
            "audio_tokens": 0,
            "accepted_prediction_tokens": 0,
            "rejected_prediction_tokens": 0
        }
    },
    "system_fingerprint": "fp_0aa8d3e20b"
}

まとめ

今回は、Postmanを使ってChatGPT APIを実際に叩く方法について解説しました。以下のポイントを押さえておくと良いでしょう:

  • APIキーの取得と安全な管理が重要
  • Postmanの基本的な使い方を理解する
  • function_callを使うことで、構造化されたレスポンスを得ることができる

参考文献

コメント

Verified by MonsterInsights
タイトルとURLをコピーしました