qzira AI API Gateway
セットアップガイド
複数のAIモデルを「たった1つのキー」で管理・統合する
qzira は、複数のAI APIプロバイダー(OpenAI・Anthropic・Google AI)を 1つのエンドポイント で統合管理できるAI APIゲートウェイです。
BYOK(Bring Your Own Key)方式 — お持ちのAPIキーをそのまま使えます。qziraがリクエストのプロキシ、使用量の可視化、フェイルオーバー、レート制限を自動処理します。
qzira を使うメリット
- コスト可視化: ダッシュボードでリクエスト数・トークン消費量をリアルタイム確認
- フェイルオーバー: プロバイダー障害時に自動で別プロバイダーに切替
- レート制限の自動処理: 429エラーのリトライをqziraが代行
- APIキー管理の統一: 複数プロバイダーのキーをqzira側で一元管理し、アプリには
gw_キー1つだけ - 予算アラート・自動停止: AIエージェントの暴走によるコスト超過を防止
1. アカウント作成
1ダッシュボードにアクセス
https://app.qzira.com にアクセスします。
2Googleアカウントでログイン
「Googleでログイン」ボタンをクリックし、お使いのGoogleアカウントで認証します。
2. APIキー発行
ログイン後、サイドバーの「APIキー」をクリックします。
1新しいAPIキーを作成
「新しいAPIキーを作成」ボタンをクリックし、キーの名前を入力します(例: my-app-key、cursor-dev など)。
2APIキーをコピー
作成直後に表示される gw_xxxxxxxx 形式のキーを 必ずコピーして安全な場所に保存 してください。このキーは一度しか表示されません。
3. プロバイダーAPIキー登録(BYOK)
サイドバーの「プロバイダー」をクリックします。
対応プロバイダー
| プロバイダー | APIキーの取得先 | キー形式 |
|---|---|---|
| OpenAI | platform.openai.com/api-keys | sk-... |
| Anthropic | console.anthropic.com/settings/keys | sk-ant-... |
| Google AI | aistudio.google.com/apikey | AIza... |
登録手順
- 使用するプロバイダーの「APIキーを登録」をクリック
- お持ちのAPIキーを入力
- 「登録」をクリック — qzira側でキーの有効性を自動検証します
4. プロバイダー有効化
APIキーを登録しただけでは、まだそのプロバイダー経由でのリクエストはできません。有効化 が必要です。
有効化の手順
プロバイダー画面で、使用したいプロバイダーの「有効化」ボタンをクリックします。
プラン別の同時有効化数
| プラン | 同時有効化数 |
|---|---|
| Free | 1社 |
| Starter | 3社 |
| Pro以上 | 無制限 |
5. コード移行
qziraはOpenAI互換のAPIエンドポイントを提供します。既存コードの Base URL と APIキー を変更するだけで移行完了です。
基本情報
| 項目 | 値 |
|---|---|
| Base URL | https://api.qzira.com/v1 |
| エンドポイント | /chat/completions |
| 認証 | Authorization: Bearer gw_xxxxxxxx |
移行例: Python(OpenAI SDK)
Before(直接呼び出し):
from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxxxx" # OpenAI APIキー
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello"}]
)
After(qzira経由):
from openai import OpenAI
client = OpenAI(
api_key="gw_xxxxxxxx", # qzira APIキー
base_url="https://api.qzira.com/v1" # qzira エンドポイント
)
response = client.chat.completions.create(
model="gpt-4o", # モデル名はそのまま
messages=[{"role": "user", "content": "Hello"}]
)
移行例: Python(Anthropic SDK → OpenAI互換形式)
Before(Anthropic SDK 直接呼び出し):
import anthropic
client = anthropic.Anthropic(api_key="sk-ant-xxxxxxxx")
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
system="You are a helpful assistant.",
messages=[{"role": "user", "content": "Hello"}]
)
After(qzira経由 — OpenAI互換形式):
from openai import OpenAI
client = OpenAI(
api_key="gw_xxxxxxxx",
base_url="https://api.qzira.com/v1"
)
response = client.chat.completions.create(
model="claude-sonnet-4-20250514", # Claudeモデルもそのまま指定
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello"}
]
)
system メッセージも自動で処理されます。
移行例: Python(Google Gemini → OpenAI互換形式)
from openai import OpenAI
client = OpenAI(
api_key="gw_xxxxxxxx",
base_url="https://api.qzira.com/v1"
)
response = client.chat.completions.create(
model="gemini-2.0-flash", # Geminiモデルもそのまま指定
messages=[{"role": "user", "content": "Hello"}]
)
移行例: JavaScript / TypeScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "gw_xxxxxxxx",
baseURL: "https://api.qzira.com/v1",
});
const response = await client.chat.completions.create({
model: "claude-sonnet-4-20250514",
messages: [{ role: "user", content: "Hello" }],
});
環境変数での管理(推奨)
.env ファイル:
QZIRA_API_KEY=gw_xxxxxxxx
QZIRA_BASE_URL=https://api.qzira.com/v1
Python:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("QZIRA_API_KEY"),
base_url=os.getenv("QZIRA_BASE_URL")
)
ストリーミング対応
qziraはSSE(Server-Sent Events)形式のストリーミングに全プロバイダーで対応しています。
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Tell me a story"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
対応モデル一覧(主要なもの)
| プロバイダー | モデル例 |
|---|---|
| OpenAI | gpt-4o, gpt-4o-mini, gpt-4-turbo |
| Anthropic | claude-sonnet-4-20250514, claude-3-5-haiku-20241022, claude-3-opus-20240229 |
| Google AI | gemini-2.0-flash, gemini-1.5-pro, gemini-1.5-flash |
6. curlでのテスト
qziraの動作をすぐに確認したい場合は、curlコマンドで試せます。
OpenAIモデル
curl -X POST https://api.qzira.com/v1/chat/completions \
-H "Authorization: Bearer gw_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "Hello"}]
}'
Anthropicモデル
curl -X POST https://api.qzira.com/v1/chat/completions \
-H "Authorization: Bearer gw_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-haiku-20241022",
"messages": [{"role": "user", "content": "Hello"}]
}'
Google AIモデル
curl -X POST https://api.qzira.com/v1/chat/completions \
-H "Authorization: Bearer gw_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-2.0-flash",
"messages": [{"role": "user", "content": "Hello"}]
}'
ストリーミングテスト
curl -N -X POST https://api.qzira.com/v1/chat/completions \
-H "Authorization: Bearer gw_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "Count from 1 to 5"}],
"stream": true
}'
PowerShell(Windows)
$headers = @{
"Authorization" = "Bearer gw_xxxxxxxx"
"Content-Type" = "application/json"
}
$body = '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Hello"}]}'
Invoke-RestMethod -Uri "https://api.qzira.com/v1/chat/completions" `
-Method POST -Headers $headers -Body $body
正常なレスポンス例
{
"id": "chatcmpl-xxxxx",
"object": "chat.completion",
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 8,
"completion_tokens": 9,
"total_tokens": 17
},
"provider": "openai"
}
provider フィールドが付加され、どのプロバイダーが応答したか確認できます。
7. Cursor / AIエージェント統合
Cursor
Cursorの設定で、OpenAI互換のAPIプロバイダーとしてqziraを追加できます。
Settings → Models → OpenAI API Key:
- API Key:
gw_xxxxxxxx - Base URL:
https://api.qzira.com/v1
これにより、Cursor内でのAI補完・チャットがすべてqzira経由になり、ダッシュボードで使用量を確認できます。
Claude Code
export ANTHROPIC_BASE_URL=https://api.qzira.com/v1
export ANTHROPIC_API_KEY=gw_xxxxxxxx
claude
その他のAIエージェント
OpenAI互換のBase URLとAPIキーを設定できるツールであれば、同様の方法で統合可能です。
| ツール | 設定場所 |
|---|---|
| Cursor | Settings → Models → OpenAI API Key |
| Continue.dev | config.json の apiBase |
| Aider | --openai-api-base オプション |
| LangChain | base_url パラメータ |
8. ダッシュボードで使用量を確認
https://app.qzira.com/dashboard にログインすると、以下の情報をリアルタイムで確認できます。
ダッシュボード概要
- 今月のリクエスト数: 月間の合計リクエスト数(プラン上限との比較)
- 使用率: プラン上限に対する使用割合
- 入力トークン / 出力トークン: 合計トークン消費量
- 日別リクエスト数グラフ: 過去のリクエスト推移を視覚化
最近のリクエスト
各リクエストの詳細を確認できます:
| 項目 | 内容 |
|---|---|
| モデル | 使用したモデル名(例: claude-sonnet-4-20250514) |
| プロバイダー | 応答したプロバイダー(例: Anthropic) |
| トークン | 入力 / 出力トークン数 |
| レイテンシ | 応答時間(ミリ秒) |
| ステータス | 成功 / エラー |
| 時刻 | リクエスト日時 |
9. 予算アラート・自動停止
サイドバーの「予算設定」から、コスト管理の設定ができます(Starter以上)。
設定項目
| 項目 | 説明 | 対応プラン |
|---|---|---|
| 月間リクエスト上限 | 月間の最大リクエスト数 | 全プラン |
| 日次リクエスト上限 | 1日の最大リクエスト数 | Starter以上 |
| 予算アラート通知 | 50% / 80% / 100% 到達時にメール通知 | Starter以上 |
| 自動停止 | 上限到達時にリクエストを自動ブロック | Pro以上 |
10. プランアップグレード
サイドバーの「プラン・請求」からプラン変更が可能です。
プラン比較
| プラン | 月額 | リクエスト/月 | 同時有効化 | APIキー数 |
|---|---|---|---|---|
| Free | ¥0 | 1,000 | 1 | 1 |
| Starter | ¥500 | 10,000 | 3 | 2 |
| Pro | ¥1,500 | 100,000 | 無制限 | 5 |
| Business | ¥4,000 | 500,000 | 無制限 | 50 |
| Scale | ¥10,000 | 上限緩和 | 無制限 | 無制限 |
プラン別の主要機能
| 機能 | Free | Starter | Pro | Business | Scale |
|---|---|---|---|---|---|
| ストリーミング | ✅ | ✅ | ✅ | ✅ | ✅ |
| リトライ(自動再試行) | — | ✅ | ✅ | ✅ | ✅ |
| フェイルオーバー | — | ✅ | ✅ | ✅ | ✅ |
| 予算アラート | — | ✅ | ✅ | ✅ | ✅ |
| 予算上限・自動停止 | — | — | ✅ | ✅ | ✅ |
| 優先サポート | — | — | — | ✅ | ✅ |
トラブルシューティング
よくあるエラー
| エラー | 原因 | 対処法 |
|---|---|---|
401 Unauthorized |
APIキーが無効または未設定 | gw_ で始まるqzira APIキーを確認 |
403 Provider not enabled |
プロバイダーが有効化されていない | ダッシュボードでプロバイダーを有効化 |
403 Budget Exceeded |
予算上限に到達 | ダッシュボードで上限を引き上げ or リセットを待つ |
400 Provider not configured |
プロバイダーのAPIキーが未登録 | ダッシュボードでプロバイダーAPIキーを登録 |
429 Rate Limited |
レート制限に到達 | 少し待ってからリトライ |
502 / 503 |
プロバイダー側の障害 | フェイルオーバーが自動発動(Starter以上) |
即時切り戻し方法
qzira経由で問題が発生した場合、Base URLとAPIキーを元に戻すだけで即座に直接呼び出しに切り替えられます。
# qzira経由 → 直接呼び出しに切り戻し
client = OpenAI(
api_key="sk-xxxxxxxx", # 元のAPIキーに戻す
# base_url を削除(デフォルトに戻る)
)
環境変数で管理している場合は、.env ファイルの値を切り替えるだけです:
# QZIRA_API_KEY=gw_xxxxxxxx ← コメントアウトで切り戻し
# QZIRA_BASE_URL=https://api.qzira.com/v1
OPENAI_API_KEY=sk-xxxxxxxx # ← 元のキーがそのまま使える
サポート
ご質問・不具合報告は以下よりお問い合わせください。
- お問い合わせフォーム: https://138io.com/contact/
- 運営: 138data