OpenAI モデルリストアップツール

プログラムの動作

list_openai_models.py は、OpenAI APIを介して現在利用可能なAIモデルの一覧を取得し、標準出力に表示するPythonプログラムです。 このプログラムの主な機能は以下の通りです。

  • APIキーの読み込み: 環境変数 OPENAI_API_KEY からOpenAI APIの認証キーを読み込みます。

  • モデルリストの取得と表示: 読み込んだAPIキーを使用してOpenAI APIに接続し、利用可能なすべてのモデルのIDを列挙します。

  • エラーハンドリング: APIキーが設定されていない場合や、API認証に失敗した場合(キーが無効など)には、具体的なエラーメッセージと対処法をユーザーに提示します。

  • 完了報告: 取得したモデルの総数を表示して処理の完了を報告します。

このプログラムは、どのようなOpenAIモデルが現在のAPIキーで利用可能であるかを簡単に確認したい開発者やユーザーが、APIキーの有効性チェックやモデル選定のために利用することを想定しています。

原理

本プログラムは、OpenAIが提供するPythonライブラリ openai を使用して、OpenAI APIと通信します。 基本的なアルゴリズムは以下の手順で進行します。

  1. APIキーの取得: Pythonの標準ライブラリ os を用いて、プログラムが実行される環境の環境変数 OPENAI_API_KEY からAPIキーを読み込みます。

  2. OpenAIクライアントの初期化: 取得したAPIキーを用いて openai.OpenAI クライアントオブジェクトをインスタンス化します。このクライアントオブジェクトがOpenAI APIとのすべての通信を仲介します。

  3. モデルリストのリクエスト: 初期化されたクライアントオブジェクトの client.models.list() メソッドを呼び出します。このメソッドは、内部的にOpenAI APIの /v1/models エンドポイントに対してHTTP GETリクエストを送信し、APIで利用可能なすべてのモデルのリスト(厳密にはイテレータ)を取得します。

  4. モデルIDの表示: 取得したモデルのリストをループ処理し、各モデルオブジェクトの id 属性(例: gpt-4o, gpt-3.5-turbo など)を標準出力に出力します。

  5. エラー処理: APIキーの認証に失敗した場合は AuthenticationError を捕捉し、それ以外の予期せぬエラーが発生した場合は一般的な Exception を捕捉して、適切なエラーメッセージを表示してプログラムを終了します。

このプログラムでは、特定の数式や物理式は使用されていません。APIとの通信とデータ構造の処理が主な処理内容となります。

必要な非標準ライブラリとインストール方法

本プログラムの実行には、以下の非標準ライブラリが必要です。

  • openai: OpenAI APIと連携するための公式Pythonライブラリ。

これらのライブラリは、Pythonのパッケージマネージャーである pip を使用してインストールできます。

pip install openai

必要な入力ファイル

本プログラムは、直接的な入力ファイルを必要としません。 しかし、OpenAI APIと通信するためのAPIキーを、実行環境の環境変数 OPENAI_API_KEY として設定しておく必要があります。

環境変数の設定方法の例:

  • Linux / macOS (Bash / Zsh):

    export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    
  • Windows (Command Prompt):

    set OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    
  • Windows (PowerShell):

    $env:OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    

sk- から始まる実際のAPIキーは、OpenAIのウェブサイト(通常はアカウントのAPI Keysページ)で取得できます。

生成される出力ファイル

本プログラムは、いかなる出力ファイルも生成しません。 すべての結果は、プログラムを実行したコンソール(標準出力)にテキスト形式で直接表示されます。

コマンドラインでの使用例 (Usage)

list_openai_models.py をコマンドラインから実行する基本的なコマンドは以下の通りです。 本プログラムはコマンドライン引数を一切受け付けません。

python list_openai_models.py

注意点: 上記のコマンドを実行する前に、必ず環境変数 OPENAI_API_KEY に有効なOpenAI APIキーを設定しておく必要があります。APIキーが設定されていない場合、または無効なキーの場合、プログラムはエラーメッセージを表示して終了します。

コマンドラインでの具体的な使用例

1. 正常にモデル一覧を取得する場合

OPENAI_API_KEY 環境変数を設定した後、プログラムを実行します。

# 環境変数を設定(例: macOS/Linux)
export OPENAI_API_KEY="sk-YOUR_VALID_OPENAI_API_KEY_HERE"

# プログラムの実行
python list_openai_models.py

実行結果の例: (出力されるモデルIDのリストは、時期によって異なる場合があります)

--- OpenAI 利用可能モデル確認 ---
ai.env を読み込みます...
OPENAI_API_KEY exists = True
--- 利用可能なモデル一覧を取得します ---
ID: gpt-4o
ID: gpt-4o-2024-05-13
ID: gpt-4-turbo
ID: gpt-4-turbo-2024-04-09
ID: gpt-4-turbo-preview
ID: gpt-4-0125-preview
ID: gpt-4
ID: gpt-4-0613
ID: gpt-3.5-turbo
ID: gpt-3.5-turbo-16k
ID: gpt-3.5-turbo-0125
ID: text-embedding-ada-002
ID: dall-e-3
ID: dall-e-2
ID: whisper-1
ID: tts-1
ID: tts-1-hd
--- 完了: 17  ---

2. APIキーが設定されていない場合

OPENAI_API_KEY 環境変数が設定されていない、または空の状態でプログラムを実行します。

# 環境変数を未設定のまま、または unset する
unset OPENAI_API_KEY # 例: macOS/Linux

# プログラムの実行
python list_openai_models.py

実行結果の例:

--- OpenAI 利用可能モデル確認 ---
ai.env を読み込みます...
OPENAI_API_KEY exists = False
ERROR: OPENAI_API_KEY が設定されていません
       ai.env の内容、または read_ai_config() を確認してください

3. 無効なAPIキーを使用した場合 (認証エラー)

OPENAI_API_KEY 環境変数に無効なAPIキーを設定してプログラムを実行します。

# 環境変数に無効なキーを設定
export OPENAI_API_KEY="sk-INVALID_API_KEY_XXXXXXXXXXXXXXXXXXXXXXX"

# プログラムの実行
python list_openai_models.py

実行結果の例:

--- OpenAI 利用可能モデル確認 ---
ai.env を読み込みます...
OPENAI_API_KEY exists = True
--- 利用可能なモデル一覧を取得します ---
ERROR: OpenAI API の認証に失敗しました
       API KEY が無効、削除済み、または取り違えの可能性があります
       以前に漏洩疑いで無効化されたキーを使っていないか確認してください
       新しい API KEY を発行して ai.env を更新してください

AuthenticationError: Incorrect API key provided: sk-INVALID_API_KEY_XXXXXXXXXXXXXXXXXXXXXXX. You can find your API key at https://platform.openai.com/account/api-keys.