API活用入門(コードからChatGPTを呼ぶ)
このモジュールで学ぶこと
- OpenAI APIキーの取得と保管
- Python から ChatGPT を呼ぶ最小コード
- モデル選択・パラメータ(temperature・reasoning_effort)の使い分け
- ストリーミング応答
- 業務自動化への組み込み観点
学習目標
- 自分のPCから Python で ChatGPT を呼べる
- temperature・reasoning_effort を業務目的に応じて設定できる
- APIキーを 安全に保管 できる
- 業務でAPIを使うべきか判断できる
目次
- セクション1: APIを使うべきか
- セクション2: APIキーの取得
- セクション3: 最小サンプルコード
- セクション4: 主要パラメータ
- セクション5: ストリーミング応答
- セクション6: コスト管理
- まとめ
セクション1: APIを使うべきか
ChatGPT(Web UI)と OpenAI API は別物だ。APIを使うべき場面 を最初に整理する。
APIを使うべき場面
- 同じ処理を 1日何百回・何千回 実行する
- 出力をシステムに自動連携する
- 自社の業務システムに組み込む
- 自社サービスの中でAI機能を提供する
Web UI で十分な場面
- 個人の対話的な利用
- 1日数回〜数十回の手作業
- 試行錯誤しながらの設計検討
「APIを使った方がカッコいい」「自動化すれば速い」だけで判断しない。 回数と再現性 で判断する。
セクション2: APIキーの取得
手順
- https://platform.openai.com にログイン
- 左メニュー「API keys」
- 「Create new secret key」をクリック
- キーをコピー(この画面でしか全文表示されない)
- パスワードマネージャー等に安全に保管
APIキーの保管原則
- コードに直書きしない
- 環境変数(
.envファイル)に保管 - リポジトリにコミットしない(
.gitignoreに.envを追加) - 共有が必要な場合はチーム用シークレット管理サービスを使う
漏洩したらすぐ無効化
万一キーが漏洩したら、すぐに platform.openai.com で Revoke(無効化)し、新しいキーを発行する。漏洩キーが第三者に使われると 自分のアカウントで課金 されてしまうので、対応は秒単位で動く。
セクション3: 最小サンプルコード
Python で ChatGPT を呼ぶ最小コードを示す。
環境準備
pip install openai python-dotenv
.env ファイル
OPENAI_API_KEY=sk-...your_key_here...
main.py
import os
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
response = client.chat.completions.create(
model="gpt-5-main",
messages=[
{"role": "system", "content": "あなたは丁寧な日本語のビジネスアシスタントです。"},
{"role": "user", "content": "ChatGPT API入門という記事のタイトル候補を3つ提案してください。"},
],
)
print(response.choices[0].message.content)
実行
python main.py
これが基本形だ。messages の配列に system / user / assistant ロールでメッセージを積み重ねるのが対話の表現方法である。
セクション4: 主要パラメータ
model
呼び出すモデル名。2026-05時点で利用可能な代表モデル:
gpt-5-main— 高速応答(Fast系)gpt-5-thinking— 推論(Thinking系)gpt-5-thinking-nano— API向け軽量推論
出典: Wikipedia "GPT-5" Architecture & Model Variants(取得日: 2026-05-20・URL: https://en.wikipedia.org/wiki/GPT-5 )
※ 利用可能なモデル名は公式の最新仕様で都度確認すること。本コースの記載は2026-05-20時点のものだ。
temperature
応答のランダム性を制御するパラメータ(多くの実装で0-2の範囲で受け付ける)。
| 値 | 性質 |
|---|---|
| 0.0 - 0.3 | 決定的・再現性高い(分類・抽出・コード生成向き) |
| 0.5 - 0.7 | バランス型(一般的な業務文書) |
| 0.8 - 1.2 | 創造的(アイデア出し・キャッチコピー) |
「業務で再現性が欲しい」場面は 0.2-0.3 にする。「発想を広げたい」場面は 0.8 以上にする。
reasoning_effort(GPT-5系)
GPT-5系で推論の強度を調整するパラメータ。
| 値 | 性質 |
|---|---|
| minimal | ほぼFast応答 |
| low | 軽い推論 |
| medium | デフォルト |
| high | 重い推論(時間がかかる) |
出典: Wikipedia "GPT-5"(取得日: 2026-05-20・URL: https://en.wikipedia.org/wiki/GPT-5 )
複雑な意思決定は high、定型タスクは low か minimal で十分なケースが多い。
max_tokens
応答の最大長を指定するパラメータ。長すぎる応答を防ぐためにも、業務スクリプトでは明示することを勧める。
セクション5: ストリーミング応答
長い応答を待たずに 少しずつ表示 したい場合、ストリーミングを使う。
stream = client.chat.completions.create(
model="gpt-5-main",
messages=[
{"role": "user", "content": "桜の歴史について500字で書いてください。"},
],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
業務システムに組み込むときに、ユーザーが応答を待つUIで体感速度を上げられる。
セクション6: コスト管理
APIは 使った分だけ課金 される。業務で使うときはコスト感を必ず把握する。
課金の構造
- 入力トークン(プロンプト)
- 出力トークン(応答)
の合計に対して、モデルごとに単価が設定されている。Thinking 系は通常 Fast 系より高い。
正確な単価は OpenAI 公式の料金ページで都度確認すること(仕様変更が頻繁にあるため)。
コスト管理の習慣
- 開発中は 安いモデル(mini / nano)で試す
- 本番でも、用途に応じて 適切なモデル を選ぶ
- 無限ループでAPIを呼び出すバグに注意(実装ミスで数万円〜数十万円の課金事故が起こり得る)
- プラットフォーム側で 月次の上限金額(Hard limit)を設定
開発中の事故防止
- ローカルでスクリプトを実行する前に 入力件数を限定 する(最初は5件など)
- ループ内で
time.sleep()を入れて連続リクエストを抑制する - エラー時に リトライを無限に繰り返さない 実装にする
まとめ
- API利用は 回数と再現性 で判断する
- APIキーは環境変数に保管し、コードに直書きしない
- 最小サンプルは
messages配列 +model指定で動く temperatureで再現性と創造性を調整reasoning_effortで推論の強度を調整- ストリーミングで体感速度を上げる
- コスト管理は 安いモデルから試す・上限金額設定・連続リクエスト抑制 が基本
次のモジュールでは、業務利用で必須となる安全・著作権・社内ガイドラインを扱う。