Bloga dön
Rehber·23 Mayıs 2026·6 dk okuma

10 dakikada OpenAI'dan Kunavo'ya geçiş — Python, Node, LangChain, Vercel AI SDK

Dört OpenAI entegrasyonu türü, Kunavo üzerinden çalışmaya başlamak için her birinin gerektirdiği tek satırlık değişiklik ve maliyeti bir sentten düşük bir duman testi.

Uygulamanız zaten OpenAI API'siyle konuşuyorsa Kunavo'ya geçmek yaklaşık on dakika sürer — bunun çoğu kaydolmaktır. Bu kılavuz, çoğu ekibin kullandığı dört entegrasyon türünü ve her biri için gereken tek satırlık değişikliği açıklar.

Adım 0 — Anahtar alın (2 dakika)

  1. kunavo.com/app/signup adresinden kaydolun. 10 $'dan başlayan bakiye yükleme, kullandıkça ödeme ve asla sona ermeyen bakiyeniz olur.
  2. /app/keys adresini ziyaret edip bir anahtar oluşturun. sk-kn- ile başlar.
  3. Ortam değişkenini ayarlayın: export KUNAVO_API_KEY=sk-kn-....

Adım 1 — SDK'nızı değiştirin (1 dakika)

Python (openai paketi)

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 aynı OpenAI istemcisini dahili olarak kullandığından değişiklik aynıdır. Model kimliği artık bir Kunavo slug'ıdır — güncel liste için /models adresine bakın (claude-sonnet-4-6, gpt-5-6-terra, claude-opus-4-7 deneyin).

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 varsayılan olarak temel URL'sini ve API anahtarını ortam değişkenlerinden okur. Bunları ayarlamanız yeterlidir — her framework yardımcısı (streamText, generateObject, yeniden denemeler, araç yönlendirme) değişmeden çalışır.

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 (zaten Claude kullanıyorsanız)

Kunavo, OpenAI biçiminin yanı sıra Anthropic'in kendi Messages API'sini de /v1/messages adresinde sunar — böylece SDK'ları değiştirmeniz gerekmez.

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
)

Adım 2 — Cüzdanı duman testiyle doğrulayın (1 dakika)

Üretim koduna dokunmadan önce claude-haiku-4-5 adresine karşı ucuz bir test çalıştırın. Bu başarılı şekilde dönerse anahtarınız çalışıyor, faturalandırma çalışıyor ve yönlendirme katmanı sağlıklıdır.

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

Adım 3 — Trafiği taşıyın (5 dakika)

Güvenli yöntem: uygulamanızda ortama göre seçilen iki ortam değişkeni — AI_BASE_URL ve AI_API_KEY — kullanın. Üretim OpenAI'de kalır; staging Kunavo'ya geçer. 24 saat sonra prod'u geçirin.

Geçişten önce maliyet etkisini merak ediyorsanız Kunavo'nun panosu çağrı başına maliyeti upstream'in resmi oranıyla karşılaştırmalı gösterir — gerçek istemleriniz üzerinden öngörülen aylık tasarrufu hesaplamak kolaydır.

Aynı kalanlar

  • SDK'nız ve kod tabanınız.
  • Akış, function calling, tool kullanımı, vision, yapılandırılmış çıktılar.
  • OpenAI'nin birebir istek ve yanıt şemaları.
  • Hata biçimi (error.message / error.type / error.code).

Daha iyi yönde değişenler

  • Fiyatlandırma. Fiyatlar ve mevcut indirimler modele göre değişir — güncel ücretleri /pricing adresinde görebilirsiniz.
  • Kip. Aynı SDK Claude'a (claude-opus-4-7), GPT'ye (gpt-5-6-sol), GPT-Image-2'ye, Nano Banana'ya, Veo 3'e ve Suno'ya ulaşır — /models adresine bakın.
  • Faturalandırma. Stripe cüzdanı, USD cinsinden fiyatlandırılır. Stripe'ın hizmet verdiği her yerde kartlar; Hindistan hariç her yerde Apple Pay, Google Pay ve Link; ayrıca ülkeye göre yerel yöntemler (Çin'de Alipay ve WeChat Pay, ABD'de Cash App Pay, Klarna ve ACH, Hindistan'da UPI, Kore'de KakaoPay…) — tam liste /docs/billing adresindedir.
  • Yük devretme. Bir upstream dalgalandığında aynı istek içinde otomatik yeniden yönlendirmeli, çok sağlayıcılı sıcak yük devretme.

Sorunlu yol notları

  • Bugün kapsamadığımız OpenAI'ye özgü uç noktalar: /v1/responses (/v1/chat/completions kullanın), /v1/assistants (durumu kendi tarafınızda yönetin; biz durum tutmayan bir ağ geçidiyiz), /v1/realtime (planlandı).
  • Claude'a özgü bazı özellikler — cache_control, genişletilmiş thinking — OpenAI biçimi yerine Anthropic'in kendi /v1/messages uç noktası üzerinden en iyi şekilde çalışır.
  • İstem önbelleğe alma bunlardan biri değildir: OpenAI biçiminde Kunavo, uzun bir istemde Claude'un önbellek kesme noktalarını kendisi ayarlar ve bir mesaja ya da araç tanımına eklediğiniz bir cache_control Claude'a iletilir.

Takıldınız mı? contact@kunavo.com — bir insan bir iş günü içinde yanıt verir. Ciddi bir geçiş yürütüyorsanız görüşme yaparız.