Kembali ke blog
Panduan·23 Mei 2026·Baca 6 menit

Migrasi dari OpenAI ke Kunavo dalam 10 menit — Python, Node, LangChain, Vercel AI SDK

Empat bentuk integrasi OpenAI, perubahan satu baris yang diperlukan masing-masing agar mulai berjalan melalui Kunavo, serta smoke test yang biayanya kurang dari satu sen.

Jika aplikasi Anda sudah berkomunikasi dengan API OpenAI, beralih ke Kunavo membutuhkan sekitar sepuluh menit — sebagian besar untuk mendaftar. Panduan ini membahas empat bentuk integrasi yang paling umum digunakan tim dan perubahan satu baris yang diperlukan masing-masing.

Langkah 0 — Dapatkan kunci (2 menit)

  1. Daftar di kunavo.com/app/signup. Isi saldo mulai dari $10, bayar sesuai penggunaan, dan saldo Anda tidak pernah kedaluwarsa.
  2. Buka /app/keys dan buat kunci. Kunci tersebut dimulai dengan sk-kn-.
  3. Atur variabel lingkungan: export KUNAVO_API_KEY=sk-kn-....

Langkah 1 — Ganti SDK Anda (1 menit)

Python (paket 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 menggunakan klien OpenAI yang sama secara internal, sehingga perubahannya identik. ID model kini berupa slug Kunavo — lihat /models untuk daftar aktif (coba 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 membaca URL dasar dan kunci API dari variabel lingkungan secara default. Atur keduanya dan selesai — setiap helper framework (streamText, generateObject, percobaan ulang, perutean alat) bekerja tanpa perubahan.

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 (jika Anda sudah menggunakan Claude)

Kunavo menyediakan Messages API native Anthropic di /v1/messages selain bentuk OpenAI — jadi Anda tidak perlu mengganti 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
)

Langkah 2 — Uji saldo secara singkat (1 menit)

Sebelum menyentuh kode produksi, jalankan pengujian murah terhadap claude-haiku-4-5. Jika ini berhasil, kunci Anda berfungsi, penagihan berfungsi, dan lapisan perutean sehat.

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")

Langkah 3 — Pindahkan lalu lintas (5 menit)

Pola aman: dua variabel lingkungan dalam aplikasi Anda — AI_BASE_URL dan AI_API_KEY — dipilih per lingkungan. Produksi tetap menggunakan OpenAI; staging beralih ke Kunavo. Setelah 24 jam, alihkan produksi.

Jika Anda ingin mengetahui dampak biaya sebelum beralih, dasbor Kunavo menampilkan biaya per panggilan dibandingkan tarif resmi upstream — Anda dapat dengan mudah menghitung perkiraan penghematan bulanan berdasarkan prompt nyata.

Yang tetap sama

  • SDK dan basis kode Anda.
  • Streaming, pemanggilan fungsi, penggunaan alat, visi, dan output terstruktur.
  • Skema permintaan dan respons OpenAI yang persis sama.
  • Bentuk error (error.message / error.type / error.code).

Yang berubah menjadi lebih baik

  • Harga. Harga dan diskon yang tersedia berbeda-beda menurut model — lihat tarif terbaru di /pricing.
  • Modalitas. SDK yang sama menjangkau Claude (claude-opus-4-7), GPT (gpt-5-6-sol), GPT-Image-2, Nano Banana, Veo 3, dan Suno — lihat /models.
  • Penagihan. Dompet Stripe, dengan harga dalam USD. Kartu di semua wilayah; Apple Pay, Google Pay, dan Link di semua wilayah kecuali India; serta metode lokal berdasarkan negara (Alipay dan WeChat Pay di Tiongkok, Cash App Pay, Klarna, dan ACH di AS, UPI di India, KakaoPay di Korea…) — daftar lengkapnya ada di /docs/billing.
  • Failover. Failover cepat multi-vendor dengan pengalihan rute otomatis, dalam permintaan yang sama, saat upstream mengalami gangguan.

Catatan jalur yang tidak menyenangkan

  • Endpoint khusus OpenAI yang belum kami dukung hari ini: /v1/responses (gunakan /v1/chat/completions), /v1/assistants (status dikelola di pihak Anda; kami adalah gateway tanpa status), /v1/realtime (direncanakan).
  • Beberapa fitur khusus Claude — cache_control, thinking extended — bekerja paling baik melalui endpoint native /v1/messages, bukan bentuk OpenAI.
  • Caching prompt tidak termasuk di antaranya: pada bentuk OpenAI, Kunavo menetapkan sendiri breakpoint cache Claude pada prompt yang panjang, dan cache_control yang Anda pasang pada pesan atau definisi alat akan diteruskan ke Claude.

Mengalami kendala? contact@kunavo.com — manusia akan membalas dalam satu hari kerja. Jika Anda menjalankan migrasi serius, kami akan melakukan panggilan.