【2026年版】OpenAI APIの始め方 — APIキー取得からChatGPT連携まで完全ガイド
- APIキーの取得と安全な管理方法
- Chat Completions APIの基本的な使い方
- system/user/assistantロールの概念
- トークンとコスト管理の基本
セットアップ手順
# OpenAI Pythonライブラリのインストール
pip install openai python-dotenv
# 環境変数の設定(.envファイル)
echo "OPENAI_API_KEY=sk-your-key-here" > .env
はじめてのAPI呼び出し
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI() # OPENAI_API_KEY環境変数を自動読み込み
# シンプルな呼び出し
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "あなたは親切なIT教育者です。"},
{"role": "user", "content": "Pythonの特徴を3行で教えてください"}
]
)
print(response.choices[0].message.content)
print(f"使用トークン数: {response.usage.total_tokens}")
# 会話履歴を保持する例
messages = [{"role": "system", "content": "日本語で回答してください"}]
user_input = "機械学習とは何ですか?"
messages.append({"role": "user", "content": user_input})
response = client.chat.completions.create(model="gpt-4o-mini", messages=messages)
messages.append({"role": "assistant", "content": response.choices[0].message.content})
よくある詰まりポイント
Q: AuthenticationError: No API key provided が出る
→ 環境変数 OPENAI_API_KEY が設定されていません。.env ファイルに書いて python-dotenv で読み込むか、export OPENAI_API_KEY='sk-...' でターミナルに設定してください。
Q: APIキーをGitHubにpushしてしまった
→ すぐにOpenAIのダッシュボードでそのキーを無効化・削除してください。.gitignore に .env を追加して、今後は環境変数で管理しましょう。
Q: レスポンスが遅い
→ stream=True オプションを使うと、生成されるたびに少しずつテキストが返ってきて体感速度が改善します。for chunk in client.chat.completions.create(..., stream=True) の形式で実装できます。
使い始めるためにまず何をすればいいの?
Pythonからはどうやって使うの?
messagesの「role」って何の役割があるの?
messagesはAIとの会話履歴を表すリストで、3種類のロールがあるよ。「system」はAIへの指示(キャラクター設定や回答の制約)、「user」は人間の入力、「assistant」はAIの過去の回答を表すんだ。たとえばsystemに「あなたは日本語で答える親切なIT教育者です」と設定すると、それ以降の全ての回答がそのキャラに沿ったものになるよ。会話の文脈を保持するには、過去のuser/assistantメッセージをリストに追加していけばいいんだ。
トークンってよく聞くけど、何のこと?
コストが積み重なるのは怖いな…使いすぎないようにする方法はあるの?
プロンプトエンジニアリングって何?うまく指示するコツがあるの?
プロンプトエンジニアリングはAIへの指示(プロンプト)を工夫してより良い出力を引き出す技術だよ。コツをいくつか紹介するね。まず「具体的に」指示する—「要約して」より「3行以内の箇条書きで要約して」の方が精度が上がるよ。次に「役割を設定する」—「あなたはシニアエンジニアです」と設定すると技術的な回答の精度が上がる。また「例を見せる(Few-shot)」—「例えばこういう形式で答えてください」と例示すると出力形式が安定するよ。