AIコーディング 2026.05.16

OpenAI APIエラーの解決方法|ChatCompletion廃止・GPT-4アクセス・画像アップロード完全ガイド

タグ:OpenAI API / ChatGPT / エラー対処 / GPT-4 / 画像アップロード

このやり方で何ができるか

OpenAI APIを使う開発者がよく直面する3つの問題を解決できます。それは、古い書き方のコードが動かなくなる「ChatCompletion廃止エラー」、GPT-4モデルにアクセスできない問題、そして画像ファイルを送信する方法です。これらを一つずつ対処することで、APIを使った自動処理(メール文案の生成・資料の要約・画像の説明など)が正常に動くようになります。

準備するもの

  • パソコンのターミナル(コマンド入力画面)
  • OpenAIアカウント(有料プランに登録済み)
  • APIキー(OpenAIの公式サイトから取得)
  • Python 3.7以上がインストールされた環境
  • テキストエディタ(メモ帳など)

手順

1. エラーの原因を確認する(所要時間:5分)

OpenAI APIは1.0.0以降のバージョンで大きく変わりました。古いコード例のように openai.ChatCompletion.create() という書き方は使えなくなっています。エラーメッセージが「you tried to access openai.ChatCompletion, but this is no longer supported in openai>=1.0.0」と表示される場合、これが原因です。

最初にターミナルで、現在インストールされているOpenAIライブラリのバージョンを確認しましょう。

pip show openai

Version が1.0.0以上なら、コードの書き方を新しい形に変更する必要があります。

2. OpenAIライブラリを最新版に更新する(所要時間:3分)

古いバージョンを使っている場合は、最新版に更新します。

pip install --upgrade openai

更新後、改めてバージョン確認をします。

3. コードの書き方を新しい形に変更する(所要時間:10分)

新しいバージョン(1.0.0以降)では、クライアント(OpenAIに話しかける部品)を作ってから使う形に変わりました。以下が新しい書き方です。

from openai import OpenAI

client = OpenAI(api_key="sk-xxxx")  # APIキーを入力

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": "こんにちは"}
    ]
)

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

古い書き方(使えない):

import openai
openai.api_key = "sk-xxxx"
response = openai.ChatCompletion.create(...)  # これはエラーになる

ポイントは、client = OpenAI() で箱を作ってから、client.chat.completions.create() のように使うことです。

4. GPT-4にアクセスできない場合の原因を確認する(所要時間:5分)

GPT-4モデルを使おうとすると「You exceeded your current quota」や「The model ‘gpt-4’ does not exist」というエラーが出ることがあります。これは以下の3つのどれかが原因です。

  1. アカウントがGPT-4へのアクセス権を持っていない → OpenAIの公式サイトで有料プランが必要です。無料試用版ではGPT-4が使えません。
  2. APIキーが無効になっている → キーの有効期限を確認し、必要に応じて新しいキーを作成します。
  3. モデル名が間違っている → 正しい名前は「gpt-4」や「gpt-4-turbo」などです。

アカウント設定でGPT-4が使える状態なら、コード例を以下のように書きます。

from openai import OpenAI

client = OpenAI(api_key="sk-xxxx")

response = client.chat.completions.create(
    model="gpt-4",  # GPT-4を指定
    messages=[
        {"role": "user", "content": "日本語で5行の物語を書いてください"}
    ]
)

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

5. 画像をアップロードして分析させる(所要時間:15分)

ChatGPTでは画像ファイルをアップロードして内容を説明させることが出来ます。APIでも同じようなことができます。

まず、ファイルを準備します。JPGやPNG形式の画像をパソコンに保存しておきましょう。

次に、以下のようにコードを書きます。ファイルをBase64という形式に変換して、APIに送信するやり方です。

from openai import OpenAI
import base64

client = OpenAI(api_key="sk-xxxx")

# 画像ファイルをBase64に変換
with open("image.jpg", "rb") as f:
    image_data = base64.b64encode(f.read()).decode("utf-8")

response = client.chat.completions.create(
    model="gpt-4-vision",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{image_data}"
                    }
                },
                {
                    "type": "text",
                    "text": "この画像に何が写っていますか?日本語で説明してください"
                }
            ]
        }
    ]
)

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

「image.jpg」の部分をあなたの画像ファイルの名前に変えて、実行します。

別のやり方として、すでにネット上にある画像のURLを直接渡すこともできます。

response = client.chat.completions.create(
    model="gpt-4-vision",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/image.jpg"
                    }
                },
                {
                    "type": "text",
                    "text": "この画像について説明してください"
                }
            ]
        }
    ]
)

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

6. 実際に試してみる(所要時間:5分)

テキストエディタに上の例を貼り付けて、APIキーをあなたのものに変更して保存します。ファイル名を「test.py」として保存しましょう。

ターミナルで以下を実行します。

python test.py

APIへの要求が成功すれば、生成されたテキストが画面に表示されます。

7. つまずきやすいところで確認する(所要時間:5分)

もしエラーが出た場合は、以下をチェックします。

APIキーのエラー → 「Authentication failed」と表示される場合は、キーをコピペする際に空白が混じっていないか確認します。OpenAIのサイトから改めてコピーして貼り付けます。

モデル名のエラー → 「The model does not exist」が出たら、モデル名の綴りを確認します。大文字と小文字が混じっていないか見直します。

インポートエラー → 「No module named ‘openai’」と出たら、openaiライブラリがインストールされていません。pip install openai で再度インストールします。

ファイルが見つからない → 画像ファイルを使う場合、ファイル名のスペルが完全に一致しているか、ファイルがPythonスクリプトと同じフォルダに入っているか確認します。

つまずきやすいところ

古い書き方のコードをネットで見つけてコピーしてしまう → 2023年以前の記事には古い「openai.ChatCompletion」の書き方が載っていることが多いです。記事の日付を確認してから試します。

APIキーを誤って公開してしまう → GitHubなどにコードをアップロードする時は、APIキーを環境変数に移してからアップロードします。誤って公開したら、OpenAIのサイトからキーを削除して新しいものを作り直します。

GPT-4が使えるはずなのに「does not exist」と言われる → 無料試用版では使えません。有料プランへのアップグレードが必要です。またはGPT-3.5-turboなどの別のモデルで試してみます。

画像の形式に対応していない → JPG、PNG、GIF、WebPが対応形式です。BMP形式などは変換が必要な場合があります。

慣れてきたら試したいこと

エラーハンドリングを追加する → APIが失敗した時に自動で再試行したり、分かりやすいエラーメッセージを出すように工夫します。本番環境で使う時は重要です。

複数の画像を一度に分析させる → messages内に複数の画像を入れて、「これらの画像の共通点は?」といった質問をさせることができます。

の記憶を保つ会話を作る → 前回のやり取りをmessagesに入れておくことで、会話の流れを保つことができます。例えば「さっき説明した画像について、さらに詳しく説明してください」といった質問ができます。

費用を監視する仕組みを入れる → APIの使用量はお金がかかります。定期的にopenai.usageを確認したり、ログを記録する工夫をします。

参考ソース