🖥

環境変数だけで OpenAI・LM Studio・Azure OpenAI の API を切り替えてみた

に公開

LLM を提供するバックエンド API に複数選択肢がありますが、バックエンドごとに提供されている機能が異なるので、仕様やライブラリの使い方が異なっていても不思議ではありません。

今回は、簡単なチャット用の API に限った話ではありますが、Python コードは変更せずに、環境変数だけで OpenAI・LM Studio・Azure OpenAI の API を切り替えてみました。

簡単なチャット用の Python コード例

モデル名もあえて環境変数にしています。

test.py
import os
from openai import OpenAI

client = OpenAI()

completion = client.chat.completions.create(
    model = os.getenv("MODEL_NAME"),
    messages = [
        {"role":"user", "content":"日本の首都は?"},
    ],
)

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

OpenAI を使用する場合

環境変数 OPENAI_BASE_URL は、OpenAI 用のデフォルト値があるので設定不要です。

export OPENAI_API_KEY="<your openai key>"
export MODEL_NAME="gpt-5-nano"

LM Studio を使用する場合

環境変数 OPENAI_API_KEY が必須なため、ダミー文字列を設定します。

export OPENAI_BASE_URL="http://172.18.0.1:1234/v1/"
export OPENAI_API_KEY="lm-studio"
export MODEL_NAME="openai/gpt-oss-20b"

下記は LM Studio で実行した例。

$ python test.py
日本の首都は**東京**です。

Azure OpenAI を使用する場合

Azure AI Foundry に gpt-oss-120b をデプロイして、環境変数 OPENAI_BASE_URL と OPENAI_API_KEY に必要な情報を取得します。

export OPENAI_BASE_URL="https://<your resource name>.openai.azure.com/openai/v1/"
export OPENAI_API_KEY="<your azure openai key>"
export MODEL_NAME="gpt-oss-120b"

下記は Azure OpenAI で実行した例。

$ python test.py
日本の首都は**東京(とうきょう)**です。

参考

https://platform.openai.com/docs/api-reference/chat/create

https://lmstudio.ai/docs/app/api/endpoints/openai

https://learn.microsoft.com/ja-jp/azure/ai-foundry/openai/how-to/switching-endpoints

Discussion