サイトロゴ

シェルからChatGPTを呼び出す!OpenAI APIの使い方

著者画像
Toshihiko Arai
シェルからChatGPTを呼び出す!OpenAI
APIの使い方

OpenAI APIとは

OpenAIが提供するChatGPTなどのモデルを、curlなどからAPI経由で使うにはAPIキーの取得と有料クレジットの購入が必要です。

今回は試しに10ドル分のクレジットを購入してみました。
APIの料金は「トークン単位で消費」され、使用するモデルによって1回あたりの料金が異なります。

OpenAI APIキー取得手順

1. OpenAIのサイトにアクセス

👉 https://platform.openai.com/

2. アカウントを作成(またはログイン)

GoogleやAppleアカウントでもOKです。
すでにChatGPTを使っている人は、そのアカウントでログインできます。

3. ダッシュボードに移動

https://platform.openai.com/account/api-keys にアクセス

4. 「+ Create new secret key」をクリック

APIキー(例: sk-xxxxxxxxxxxxxxxx)が発行されます。

5. 発行されたキーを保存

※このキーは一度しか表示されないため、必ずコピーして安全な場所に保管してください。

🔐 自動課金設定をオフにしておこう

試用段階では、クレジット残高がゼロになったら自動で課金されないように設定しておくと安心です。


(automatic recharge のチェックを外す)

curlでOpenAI APIにリクエストする

以下のようなシェルスクリプトを使えば、ターミナルからChatGPTに直接質問できます。

#!/bin/bash

API_KEY="sk-..."  # OpenAIのAPIキーをここに入力
ENDPOINT="https://api.openai.com/v1/chat/completions"
MODEL="gpt-4o"

read -p "質問: " QUESTION

RESPONSE=$(curl -s "$ENDPOINT" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "model": "'"$MODEL"'",
    "messages": [{
      "role": "system",
      "content": "あなたは日本語で答えるAIアシスタントです。"
    },{
      "role": "user",
      "content": "'"$QUESTION"'"
    }],
    "temperature": 0.7
  }')

echo "回答:"
echo "$RESPONSE" | jq -r '.choices[0].message.content'

上記の対話型インターフェースだと、シェルの肝である梃子の力を使えないので、パイプで連結できるように以下のように書き換えました。

#!/bin/bash

API_KEY="sk-..."  # OpenAIのAPIキー
ENDPOINT="https://api.openai.com/v1/chat/completions"
MODEL="gpt-4o"

INPUT=$(cat)

ESCAPED_INPUT=$(printf '%s' "$INPUT" | jq -Rs .)

JSON=$(cat <<EOF
{
  "model": "$MODEL",
  "messages": [
    {
      "role": "system",
      "content": "あなたは日本語で答えるAIアシスタントです。"
    },
    {
      "role": "user",
      "content": $ESCAPED_INPUT
    }
  ],
  "temperature": 0.7
}
EOF
)

RESPONSE=$(curl -s "$ENDPOINT" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  -d "$JSON")

if echo "$RESPONSE" | jq -e '.error' > /dev/null; then
  echo "エラー: $(echo "$RESPONSE" | jq -r '.error.message')" >&2
  exit 1
fi

echo "$RESPONSE" | jq -r '.choices[0].message.content'

使い方(標準入力に対応)

echo "ChatGPTとは何ですか?" | ./chatgpt.sh

または:

cat q.txt | ./chatgpt.sh

料金システムについて

以下、ChatGPTによる回答のため、情報が不正確の恐れがあります。

💬「10ドルで何回質問できるの?」

トークン数はやや分かりづらいので、以下にモデル別のざっくりした質問回数の目安を記載します。

✅ 2025年3月時点の OpenAI API モデル料金

モデル 入力(Prompt) 出力(Response)
gpt-3.5-turbo $0.0005 / 1,000トークン $0.0015 / 1,000トークン
gpt-4-turbo $0.01 / 1,000トークン $0.03 / 1,000トークン
gpt-4o(おすすめ) $0.005 / 1,000トークン $0.015 / 1,000トークン

💡 トークンとは?

  • 1トークン = 英語で約4文字、日本語だと1〜2文字程度
  • たとえば「こんにちは、調子はどう?」→ 約10トークン前後
  • 質問+回答をあわせて1,000〜2,000トークンが平均的です

✅ 実際の「質問可能回数」の目安

gpt-4o を使った場合

  • 1回あたり ≒ $0.005(入力) + $0.015(出力) = 約 $0.02
  • $10 ÷ $0.02 = 約 500回 質問可能!

※ 長文の質問や返答になると1回のコストはもう少しかかります。

モデル別ざっくり質問回数

モデル 回答の長さが普通なら(目安)
gpt-3.5-turbo 3,000〜5,000回
gpt-4o(おすすめ) 500回前後
gpt-4-turbo 250回前後

🔍 節約ポイント

  • 短い質問+短い返答 → 消費トークンが少なく、安くすむ
  • 長文を処理させるとコスト増加
  • gpt-4o は高性能で価格も抑えめなので、コスパ重視ならおすすめ