OpenGatewayとは
OpenGatewayは、アプリケーションと複数のLLM提供元の間に置くAIゲートウェイです。アプリケーションはOpenGatewayのAPIを呼び出し、OpenGatewayが指定されたモデルの提供元へリクエストを転送します。
OpenAI互換のAPIを提供しているため、対応モデルは共通の接続先とAPIキーから呼び出せます。また、障害時に試す代替モデルの指定や、リクエストごとの費用・遅延・エラーの確認にも対応しています。
コストの支払いも一本化できるという利点もあります。
OpenGatewayを挟むと何が楽になるのか
OpenAIとAnthropicをアプリから呼び分けたい。障害時には別のモデルを試したい。さらに、どのリクエストにいくらかかったかを確認したい。
それぞれを個別に実装する代わりに、LLMへのリクエストを共通のAPIに通す方法があります。この記事では、OpenGatewayを例に、その技術的な利点と利用時の注意点を紹介します。
アカウントとAPIキーを準備する
-
OpenGatewayでアカウントを作成し、サインインします。
-
ダッシュボードのAPI Keysを開き、Create Keyを選びます。
-
local-devなど用途が分かる名前を付けてキーを作成します。キーが表示されるのは一度だけなので、その場で安全な場所に保存します。

-
キーを環境変数OPENGATEWAY_API_KEYに設定します。ソースコードには直接書き込みません。
新しいチームには試用用のクレジットが付与され、残高と有効期限はBilling画面で確認できます。残高がない場合、作成したキーは停止状態になり、入金後に有効化されます。
実装例(python)
Chat API
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_OPENGATEWAY_API_KEY>",
base_url="https://apis.opengateway.ai/v1"
)
completion = client.chat.completions.create(
model="openai/gpt-6-astra",
messages=[
{"role": "user", "content": "こんにちは!"},
],
)
print(completion.choices[0].message.content)
こんにちは!今日はどんなことをお手伝いしましょうか?
Responses API
Responses 系 API でも同様です。
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_OPENGATEWAY_API_KEY>",
base_url="https://apis.opengateway.ai/v1"
)
response = client.responses.create(
model="openai/gpt-6-astra",
input="こんにちは。ひとこと挨拶してください。",
)
print(response.output_text)
こんにちは!よろしくお願いします。
複数モデル比較
Open AI のモデル間の比較
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_OPENGATEWAY_API_KEY>",
base_url="https://apis.opengateway.ai/v1"
)
if __name__ == "__main__":
models = [
"gpt-6-astra",
"gpt-5.6-sol",
"gpt-5.4-mini"
]
for model in models:
response = client.responses.create(
model=f"openai/{model}",
input="こんにちは。ひとこと挨拶してください。",
)
print(f"{model} : {response.output_text}")
gpt-6-astra : こんにちは!お会いできてうれしいです。
gpt-5.6-sol : こんにちは!今日はよろしくお願いします。
gpt-5.4-mini : こんにちは!おはようございます。
複数 Vendor 間比較
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_OPENGATEWAY_API_KEY>",
base_url="https://apis.opengateway.ai/v1"
)
if __name__ == "__main__":
models = [
"openai/gpt-6-astra",
"anthropic/claude-sonnet-5",
"google/gemini-3.5-flash"
]
for model in models:
response = client.responses.create(
model=f"{model}",
input="こんにちは。ひとこと挨拶してください。",
)
print(f"{model} : {response.output_text}")
openai/gpt-6-astra : こんにちは!お会いできてうれしいです。
anthropic/claude-sonnet-5 : こんにちは!今日はどのようなご用件でしょうか?何かお手伝いできることがあれば、お気軽にお聞かせください。
google/gemini-3.5-flash : こんにちは!今日もよろしくお願いします。何かお手伝いできることはありますか?
Open AI 以外のモデルでも同じコードで使用可能です。
Fall Back
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_OPENGATEWAY_API_KEY>",
base_url="https://apis.opengateway.ai/v1"
)
response = client.responses.create(
model="openai/gpt-6-astra",
extra_body={
"extra": {
"fallbacks": [
"anthropic/claude-sonnet-5",
"google/gemini-3.5-flash"
]
}
},
input="こんにちは。ひとこと挨拶してください。",
)
print(f"{response.model} : {response.output_text}")
openai/gpt-6-astra : こんにちは!お会いできてうれしいです。
この例では、最初のモデルがタイムアウト、レート制限、提供元のサーバーエラーなどで応答できない場合に、指定した順番で代替モデルを試します。通常の成功時には切り替わりません。
