すでにアプリがOpenAIのAPIと通信しているなら、Kunavoへの切り替えは約10分で完了します。その大半は登録にかかる時間です。このガイドでは、多くのチームが利用する4種類の統合方法と、それぞれに必要な1行の変更を説明します。
ステップ0 — キーを取得する(2分)
- kunavo.com/app/signupで登録してください。10ドルからチャージでき、従量課金制で、残高に有効期限はありません。
- /app/keysにアクセスしてキーを作成します。キーは
sk-kn-で始まります。 - 環境変数を設定します:
export KUNAVO_API_KEY=sk-kn-...。
ステップ1 — SDKを切り替える(1分)
Python(openaiパッケージ)
# Before — pointing at OpenAI directly
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
)
# After — pointing at Kunavo. Everything else stays the same.
from openai import OpenAI
client = OpenAI(
api_key=os.environ["KUNAVO_API_KEY"],
base_url="https://api.kunavo.com/v1",
)Node / TypeScript
// Before
import OpenAI from "openai";
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
// After
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.KUNAVO_API_KEY,
baseURL: "https://api.kunavo.com/v1",
});LangChain
LangChainは内部で同じOpenAIクライアントを使用するため、変更は同じです。モデルIDはKunavoのスラッグになります。現在の一覧は/modelsで確認できます(claude-sonnet-4-6、gpt-5-6-terra、claude-opus-4-7を試してください)。
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="claude-sonnet-4-6", # switched the model
api_key=os.environ["KUNAVO_API_KEY"],
base_url="https://api.kunavo.com/v1",
)Vercel AI SDK
@ai-sdk/openaiはデフォルトで環境変数からベースURLとAPIキーを読み込みます。これらを設定すれば完了です。すべてのフレームワークヘルパー(streamText、generateObject、リトライ、ツールルーティング)は変更なしで機能します。
import { openai } from "@ai-sdk/openai";
// @ai-sdk/openai reads OPENAI_BASE_URL automatically
process.env.OPENAI_BASE_URL = "https://api.kunavo.com/v1";
process.env.OPENAI_API_KEY = process.env.KUNAVO_API_KEY;
const model = openai("claude-sonnet-4-6");
// then use streamText / generateText / streamObject as beforeAnthropic SDK(すでにClaudeを使用している場合)
KunavoはOpenAI形式に加えて、/v1/messagesでAnthropicのネイティブMessages APIも公開しています。そのためSDKを切り替える必要はありません。
from anthropic import Anthropic
# Before — Anthropic SDK against api.anthropic.com
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
# After — same SDK, against Kunavo. Caching, thinking, tools all pass through.
client = Anthropic(
api_key=os.environ["KUNAVO_API_KEY"],
base_url="https://api.kunavo.com", # SDK appends /v1/messages
)ステップ2 — ウォレットをスモークテストする(1分)
本番コードに触れる前に、安価なテストを claude-haiku-4-5に対して実行してください。これが成功すれば、キー、請求、ルーティング層が正常に機能しています。
# Cheap, deterministic-ish smoke test for migration validation.
resp = client.chat.completions.create(
model="claude-haiku-4-5", # the cheapest Claude
messages=[{"role": "user", "content": "ping"}],
max_tokens=8,
temperature=0,
)
assert resp.choices[0].message.content, "empty response"
print("ok — Kunavo wallet works, total cost ~$0.0001")ステップ3 — トラフィックを移行する(5分)
安全な方法は、アプリで2つの環境変数(AI_BASE_URLとAI_API_KEY)を環境ごとに切り替えることです。本番はOpenAIのままにし、ステージングをKunavoに切り替えます。24時間後に本番も切り替えてください。
切り替え前にコストへの影響を確認したい場合、Kunavoのダッシュボードでは呼び出しごとのコストと上流の公式料金を比較できます。実際のプロンプトに基づく月間削減額の予測を簡単に計算できます。
変わらないもの
- SDKとコードベース。
- ストリーミング、関数呼び出し、ツール利用、ビジョン、構造化出力。
- OpenAIの正確なリクエストおよびレスポンススキーマ。
- エラー形式(
error.message/error.type/error.code)。
改善されるもの
- 料金。 料金および利用可能な割引はモデルによって異なります。現在の料金については、/pricingをご覧ください。
- モダリティ。同じSDKでClaude(
claude-opus-4-7)、GPT(gpt-5-6-sol)、GPT-Image-2、Nano Banana、Veo 3、Sunoを利用できます。/modelsをご覧ください。 - 請求。USD建てのStripeウォレット。Stripeが対応するすべての地域でカードを利用でき、インド以外ではApple Pay、Google Pay、Linkも利用できます。さらに国ごとの現地決済方法(中国ではAlipayとWeChat Pay、米国ではCash App Pay、Klarna、ACH、インドではUPI、韓国ではKakaoPayなど)を利用でき、完全な一覧は/docs/billingにあります。
- フェイルオーバー。上流サービスが不安定になった場合、同じリクエスト内で自動的に再ルーティングする、複数ベンダーによる即時フェイルオーバーです。
うまくいかない場合の注意点
- 現在対応していないOpenAI固有のエンドポイント:
/v1/responses(/v1/chat/completionsを使用)、/v1/assistants(ステートはお客様側で保持してください。Kunavoはステートレスゲートウェイです)、/v1/realtime(計画中)。 - Claude固有の一部機能(
cache_control、拡張thinking)は、OpenAI形式ではなくネイティブの/v1/messagesエンドポイント経由で最適に機能します。
行き詰まりましたか? contact@kunavo.comまでご連絡ください。営業日以内に担当者が返信します。本格的な移行を進めている場合は、打ち合わせも可能です。