PythonからOpenAIのAPIを使う方法を解説!

公開日: 2025-10-14

プログラミングを学び始めた人の中には、「ChatGPTみたいなAIを自分のプログラムで使ってみたい!」と思ったことがある人も多いのではないでしょうか。 私も最初にOpenAIのAPIに触れたとき、「こんなに簡単にAIを使えるのか」と驚いたのを覚えています。

この記事では、PythonからOpenAIのAPIを使う方法を、IT初心者でも理解できるように丁寧に解説します。 サンプルコードや実際に私が開発で使ってきた経験談も交えて、手を動かしながら学べる内容です!

まずは「OpenAIのAPI」とは何かを理解しよう

いきなりコードを書く前に、まず「APIとは何か?」を簡単に整理しておきましょう。

APIとは?

API(Application Programming Interface)とは、「他のサービスの機能を自分のアプリから呼び出すための仕組み」です。 たとえば、ChatGPTを作っているOpenAIは、自社のAIモデルをAPIとして公開しています。 つまり、あなたがPythonからAPIを呼び出すことで、ChatGPTと同じAIを使えるわけです。

OpenAI APIでできること

OpenAIのAPIでは、さまざまなことができます。主な機能をまとめると次のようになります。

機能名 内容 使用例
Chat(GPT系) 会話型AI(ChatGPTのような応答) 自動チャットボット、質問応答システム
Completions テキストの続きを生成 文章生成、メール文テンプレート作成
Embeddings 文章を数値化して類似検索などに利用 検索エンジンやレコメンド
Audio 音声→テキスト変換 音声認識アプリ
Images 画像生成(DALL·E) アイキャッチ画像の自動生成

こうして見ると、「AIで何ができるのか」がぐっとイメージしやすくなりますね。

事前準備:OpenAIのAPIキーを取得しよう

さて、実際にPythonから使うためには、APIキーが必要です。 APIキーとは、OpenAIのサービスを利用するための「あなた専用の鍵」です。

APIキーの取得手順

APIキーの取得手順は以下の通りです。

  1. OpenAI公式サイトにアクセス
  2. アカウントを作成またはログイン
  3. 画面右上の設定アイコン(歯車のマーク)をクリック
  4. 「View API Keys」を開く
  5. 「Create new secret key」をクリック
  6. 表示されたキーをコピー(※一度しか表示されないので注意)

コピーしたキーは後でPythonコードで使います。 紛失しないよう、.env ファイルや環境変数で安全に保管しておきましょう。

Python環境を準備しよう

次にPythonでAPIを扱うための準備をします。 すでにPythonが使える人も、念のため環境を整理しておきましょう。

必要なもの

必要なものは、以下の通りです。

  • Python(3.8以上推奨)
  • openai パッケージ(公式ライブラリ)

ターミナルで以下のコマンドを実行します。

pip install openai

これで準備完了です。
もし「pipコマンドが見つからない」と出た場合は、Pythonのインストールがうまくいっていない可能性があるので、python3 -m ensurepipなどで確認しましょう。

実際にAPIを呼び出してみよう

ここからが本題です! 最初の例として、「ChatGPTに文章を生成してもらう」プログラムを書いてみましょう。

from openai import OpenAI

# APIキーを設定
client = OpenAI(api_key="あなたのAPIキーをここに")

# ChatGPTに質問を送る
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "あなたは親切なアシスタントです。"},
        {"role": "user", "content": "Pythonのfor文を初心者向けに説明して"}
    ]
)

# 結果を表示
print(response.choices[0].message.content)

このコードを実行すると、ChatGPTがPythonのfor文についてわかりやすく説明してくれます。 「たったこれだけ?」と思うかもしれませんが、本当にこれだけでAIが動きます。

ChatGPTのモデル選びについて

OpenAIのAPIでは、いくつかのモデルが用意されています。
どのモデルを選ぶかで、精度・スピード・コストが変わります。

モデル名 特徴 向いている用途
gpt-5 高性能だがコストがかかる 高品質な文章生成、アプリ開発
gpt-4o 高精度・マルチモーダル(画像や音声も) 高品質な文章生成、アプリ開発
gpt-4o-mini 軽量・高速・低コスト チャットボット、試作段階
gpt-3.5-turbo 高速で安価 シンプルな会話やタスク処理

私の開発経験上、日常的な自動化やチャット機能には「gpt-4o-mini」で十分なことが多いです。
一方で、文章の品質を重視する場面では「gpt-4o」を選ぶと良いでしょう。 最近出た、gpt-5はまだコストが高いので、使用用途は限られてくるでしょう。

実務でよく使うテクニック

実際にアプリやツールでOpenAIのAPIを使うとき、次のような工夫をすると便利です。

1. 環境変数でAPIキーを管理

コード内にAPIキーを直書きするのは危険です。 以下のように.envファイルを使うと安全です。

# .envファイル
OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxx

Python側ではこう読み込みます。

from openai import OpenAI
import os
from dotenv import load_dotenv

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

2. 例外処理で安定した動作を

API呼び出しは、ネットワークエラーなどで失敗することがあります。 そのため、try-exceptでエラーハンドリングするのがおすすめです。

try:
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": "今日の天気を教えて"}]
    )
    print(response.choices[0].message.content)
except Exception as e:
    print("エラーが発生しました:", e)

よくあるエラーと対処法

初心者の方がつまずきやすいエラーをまとめました。

エラー内容 原因 対処法
openai.error.AuthenticationError APIキーが無効 APIキーを確認
ModuleNotFoundError: No module named 'openai' ライブラリ未インストール pip install openai を再実行
Rate limit reached APIの呼び出し制限超過 時間をおいて再試行
InvalidRequestError モデル名の指定ミス 最新モデル名に修正

私自身も最初は「モデル名のタイプミス」で何度もハマりました。 焦らず、エラーメッセージを読んで一歩ずつ解決していきましょう。

パラメーター解説:client.chat.completions.create(...) に使える主な設定

まずは表で「どのパラメーターが何を制御するか」を俯瞰しておきましょう。

パラメーター名 デフォルト相当/備考 意味/用途 運用上のポイント・注意点
model str 必須 利用するモデル名(例:gpt-4ogpt-4o-minigpt-3.5-turbo 等) 高性能モデルはコストも高く応答速度も遅くなることがあるので、用途に応じて選ぶ
messages List[dict] 必須 会話履歴を表すメッセージ一覧。各要素は { "role": ..., "content": ... } 形式 system メッセージで振る舞いを指示しておくと応答の安定性が上がる
temperature float 1.0 相当 応答の“創造性/バラツキ”を制御するパラメーター 0~1 の範囲で調整。0 に近いと決定的、1 に近いと多様性が高くなる
top_p float 1.0 相当 nucleus sampling(上位確率の語のみを使う方式)の制御 temperature と併用すると挙動が複雑になるので注意
max_tokens int モデルの上限以内 応答で生成可能な最大トークン数を制限 日本語ではトークン数と文字数の比率に注意。応答が途中で切れる原因になりやすい
presence_penalty float 0.0 応答に「新しいトピック/語句を使おうとする」傾向を制御 値をプラスにすると多様な話題を出しやすくなる
frequency_penalty float 0.0 既に使われた語の再出現頻度を抑える制御 同じ単語ばかり繰り返す応答が出る場合に調整する
stop str or List[str] None 特定の文字列で応答を途中で打ち切るための停止トークン フォーマット制約を持たせたい場合に有効
n int 1 同じプロンプトに対する複数応答の生成数 複数パターンを比較したい時に使えるがコストがかかる
stream bool False 応答をストリーミング取得するかどうか 長い応答を少しずつ表示したい UI で便利
logit_bias dict None 特定トークン(ID)に対する出現確率を強制調整 高度な用途向け。禁止語句制御などに使える

ChatGPT APIを活用した便利なサンプル

ここからは、実際に私が作って便利だったスクリプトを紹介します。

パラメーター付きサンプルコード:実践でどう使うか

以下のコード例は、「今日の天気を教えて」というシンプルな問いに対して、各種パラメーターを付けて呼び出す例です。

まず、ベーシックな呼び出し例:

from openai import OpenAI

client = OpenAI(api_key="あなたのAPIキー")

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "あなたはとても丁寧なAIアシスタントです。"},
        {"role": "user", "content": "今日の天気を教えて"}
    ],
    temperature=0.0,
    top_p=1.0,
    max_tokens=100,
    presence_penalty=0.0,
    frequency_penalty=0.0,
    n=1,
    stream=False
)

print(response.choices[0].message.content)

この例では temperature = 0.0 にしており、最も確率の高い応答を返しやすくしています。
応答のばらつきを抑えたい用途には、このような設定が適しています。

次に、少し創造性を持たせたり複数応答を得たりするパターン:

response2 = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "あなたはとても丁寧なAIアシスタントです。"},
        {"role": "user", "content": "今日の天気を教えて"}
    ],
    temperature=0.7,
    max_tokens=100,
    n=3
)

for i, choice in enumerate(response2.choices):
    print(f"=== 応答バージョン {i+1} ===")
    print(choice.message.content)
    print()

このようにすると、3パターンの異なる応答を取得でき、「どれが適切か」をプログラムや人が選べるようになります。

料金の仕組みについても理解しておこう

APIを使うときに気になるのが「料金」ですよね。 OpenAIのAPIは従量課金制で、使った分だけ支払う仕組みです。

モデル名 1Kトークンあたりの入力コスト 出力コスト
gpt-4o 約$0.005 約$0.015
gpt-4o-mini 約$0.00015 約$0.0006

1トークンはだいたい日本語で0.75文字程度なので、普通のチャット1回なら数円以下で済むことが多いです。

まとめ:Python×OpenAIでAI活用をもっと身近に

ここまで、PythonからOpenAI APIを使う方法を初心者向けに解説してきました。 振り返ってみると、思ったより手軽に使えそうだと思いませんか?

  1. APIキーを取得する
  2. openaiライブラリをインストールする
  3. client.chat.completions.create()で呼び出す

たったこれだけで、ChatGPTと同じAIを自分のプログラムで扱えるようになります。 私自身、これをきっかけに業務効率化ツールや自動文章生成サービスをいくつも作ってきました。

今は「AIを使える人」と「使えない人」で、大きな差がつく時代です。 この記事があなたにとって、AI活用の最初の一歩になれば嬉しいです。

ここまでお読みいただき、ありがとうございました!

Pythonの基礎から応用まで学べる
Python WebAcademy

Python WebAcademyでは、Pythonの基礎からアーキテクチャなどの応用的な内容まで幅広く学べます。
また、ブラウザ上で直接Pythonコードを試すことができ、実践的なスキルを身につけることが可能です。

Pythonの学習を始める