PythonからOpenAIのAPIを使う方法を解説!
Pythonをブラウザで実行しながら実践的に学ぶ
Pythonの基礎からソフトウェアアーキテクチャ,アルゴリズムなどの応用的な内容まで幅広く学べます。
ブラウザ上で直接Pythonコードを試すことができ、実践的なスキルを身につけることが可能です。
プログラミングを学び始めた人の中には、「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キーの取得手順は以下の通りです。
- OpenAI公式サイトにアクセス
- アカウントを作成またはログイン
- 画面右上の設定アイコン(歯車のマーク)をクリック
- 「View API Keys」を開く
- 「Create new secret key」をクリック
- 表示されたキーをコピー(※一度しか表示されないので注意)
コピーしたキーは後で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-4o 、gpt-4o-mini 、gpt-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を使う方法を初心者向けに解説してきました。 振り返ってみると、思ったより手軽に使えそうだと思いませんか?
- APIキーを取得する
openai
ライブラリをインストールするclient.chat.completions.create()
で呼び出す
たったこれだけで、ChatGPTと同じAIを自分のプログラムで扱えるようになります。 私自身、これをきっかけに業務効率化ツールや自動文章生成サービスをいくつも作ってきました。
今は「AIを使える人」と「使えない人」で、大きな差がつく時代です。 この記事があなたにとって、AI活用の最初の一歩になれば嬉しいです。
ここまでお読みいただき、ありがとうございました!