返回部落格
指南·2026年5月23日·閱讀約 6 分鐘

10 分鐘內從 OpenAI 遷移至 Kunavo——Python、Node、LangChain、Vercel AI SDK

四種 OpenAI 整合方式,以及各自開始透過 Kunavo 執行所需的一行變更,另附成本低於 1 美分的冒煙測試。

如果你的應用程式已經使用 OpenAI API,切換到 Kunavo 約需十分鐘,其中大部分時間用於註冊。本指南會說明多數團隊採用的四種整合方式,以及每種方式所需的一行變更。

步驟 0——取得金鑰(2 分鐘)

  1. 前往 kunavo.com/app/signup 註冊。最低儲值 $10、隨用隨付,餘額永不過期。
  2. 前往 /app/keys 並建立金鑰。金鑰會以 sk-kn- 開頭。
  3. 設定環境變數:export KUNAVO_API_KEY=sk-kn-...。

步驟 1——切換 SDK(1 分鐘)

Python(openai 套件)

migrate.py
# 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

migrate.mjs
// 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 client,因此變更方式完全相同。模型 ID 現在是 Kunavo slug——即時清單請見 /models(可試用 claude-sonnet-4-6、gpt-5-6-terra、claude-opus-4-7)。

langchain_setup.py
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、重試、工具路由)都能維持不變。

vercel_ai.mjs
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 before

Anthropic SDK(如果你已使用 Claude)

Kunavo 除了 OpenAI 格式外,也在 /v1/messages 提供 Anthropic 原生 Messages API,因此不必切換 SDK。

anthropic_sdk.py
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 執行低成本測試。如果成功回傳,表示金鑰、計費與路由層都正常。

smoke_test.py
# 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 分鐘)

安全做法是:在應用程式中設定兩個環境變數——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。
  • 帳單。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(請在你的端處理狀態;我們是無狀態閘道)、/v1/realtime(已規劃)。
  • 部分 Claude 專用功能——cache_control、延長的 thinking——透過原生 /v1/messages 端點效果最佳,而非 OpenAI 格式。

卡住了嗎?請寄信至 contact@kunavo.com——人員會在一個工作日內回覆。如果你正在進行重要的遷移,我們可以安排通話。