返回博客
指南·2026年5月23日·阅读约 6 分钟

10 分钟内从 OpenAI 迁移到 Kunavo——Python、Node、LangChain、Vercel AI SDK

四种 OpenAI 集成方式,以及各自只需进行的一行改动即可通过 Kunavo 运行,并附带成本不到一美分的冒烟测试。

如果您的应用已经接入 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 客户端,因此改动完全相同。模型 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 在 /v1/messages 提供 Anthropic 原生 Messages API,同时也支持 OpenAI 格式,因此您无需切换 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 格式。
  • 提示缓存不在此列:使用 OpenAI 格式时,对于较长的提示,Kunavo 会自行设置 Claude 的缓存断点;您在消息或工具定义上添加的 cache_control 也会传递给 Claude。

遇到问题?请联系 contact@kunavo.com——人工会在一个工作日内回复。如果您在进行重要迁移,我们可以安排通话。