Bloga dön

BaşlarkenKılavuz

OpenRouter'dan CheapTokens'a geçiş: base_url, anahtar, model kimliği

OpenAI SDK'da (Python ve JavaScript) base_url, API anahtarı ve model kimliğini değiştirin, ilk isteği gönderin ve işe yaradığını kontrol edin.

Yazan: CheapTokens TeamYayınlanma tarihi: 4 dk okuma

Kapak: base_url, anahtar ve model kimliğini değiştirerek OpenAI-SDK uygulamasını OpenRouter'dan CheapTokens'a geçirme
Bu sayfada
  1. Gerçekte ne değişiyor
  2. Geçişten sonraki kod
  3. İşe yaradığını kontrol edin
  4. Hangi model neyin yerini alır
  5. Aynı trafiğin maliyeti
  6. İşe yaramazsa
  7. Yayına almadan önce

Uygulamanız zaten OpenAI SDK üzerinden OpenRouter'ı çağırıyor ve bunun yerine CheapTokens'ı çağırmasını istiyorsunuz. Üç değeri değiştiriyorsunuz — base_url, API anahtarı ve model kimliği — ve iki isteğe bağlı başlığı siliyorsunuz. Kodun geri kalanı olduğu gibi kalıyor.

Aşağıda Python, JavaScript ve curl için tam satırlar, geçişin işe yaradığını doğrulamanın hızlı bir yolu ve hangi modelin hangi işe uyduğunu gösteren bir tablo var. CheapTokens'a hiç istek göndermediyseniz, ilk API isteği rehberi hesabı ve anahtarı kapsıyor; dokümanlarda tam referans var.

Gerçekte ne değişiyor#

OpenRouter'ın hızlı başlangıç kılavuzu (27 Ekim 2026'da kontrol edildi) OpenAI istemcisini https://openrouter.ai/api/v1 temel URL'siyle yapılandırıyor ve modelleri provider/model-name olarak adlandırıyor. CheapTokens, https://api.cheaptokens.dev/v1 adresinde aynı OpenAI Chat Completions formatını konuşuyor. Yani istemci sınıfı, chat.completions.create ve yanıtı okuma şekliniz değişmiyor.

Öncesi ve sonrası: OpenRouter'dan CheapTokens'a geçerken değişen üç değer
Değiştirilecek üç değer. Anahtar ortam değişkeni olarak gösteriliyor, asla kodda değil.

Bu, satır başına bir değişim demek:

  • temel URL — OpenRouter adresi yerine https://api.cheaptokens.dev/v1;
  • API anahtarı — CheapTokens hesabınızdan bir anahtar, ortam değişkeninden okunur;
  • model kimliği — tam CheapTokens kimliği, örneğin deepseek-ai/DeepSeek-V4-Flash-0731. Kimlikleri CheapTokens dokümanlarından alın: farklı sağlayıcılar aynı modeli farklı adlandırır ve fiyat etiketlerindeki kısa kimlikler kabul edilmez.

Ve bir silme işlemi. OpenRouter'ın HTTP-Referer ve X-OpenRouter-Title başlıkları isteğe bağlıdır ve yalnızca OpenRouter'ın liderlik tablolarını besler. Bunları default_headers / defaultHeaders içinden kaldırın; burada bunlara ihtiyacınız yok.

Geçişten sonraki kod#

Aynı istek, üç çalışma ortamı. Uygulamanızın kullandığını seçin.

Geçişten sonraki kodunuz

Python

python
import os
from openai import OpenAI

client = OpenAI(
    base_url='https://api.cheaptokens.dev/v1',
    api_key=os.environ['CHEAPTOKENS_API_KEY'],
)

resp = client.chat.completions.create(
    model='deepseek-ai/DeepSeek-V4-Flash-0731',
    messages=[{'role': 'user', 'content': 'Reply with one word: ready'}],
    max_tokens=20,
)
print(resp.choices[0].message.content)

JavaScript

javascript
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://api.cheaptokens.dev/v1',
  apiKey: process.env.CHEAPTOKENS_API_KEY,
});

const resp = await client.chat.completions.create({
  model: 'deepseek-ai/DeepSeek-V4-Flash-0731',
  messages: [{ role: 'user', content: 'Reply with one word: ready' }],
  max_tokens: 20,
});
console.log(resp.choices[0].message.content);

curl

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-ai/DeepSeek-V4-Flash-0731", "messages": [{"role": "user", "content": "Reply with one word: ready"}], "max_tokens": 20}'

Çalıştırmadan önce bir şey daha. İsteğiniz yalnızca OpenRouter'a özgü alanlar taşıyorsa — yönlendirme veya yedek listeleri, sağlayıcı tercihleri, ~alias model kimlikleri — bunlar OpenRouter'a aittir. İsteği standart Chat Completions alanlarıyla sınırlayın: model, messages, temperature, max_tokens, stream.

İşe yaradığını kontrol edin#

Bir yanıt yeterli kanıt değildir. Yanının yanında üç şey yazdırın: hangi modelin yanıtladığını, neden durduğunu ve kaç token faturalandırdığını.

python
print(resp.model)
print(resp.choices[0].finish_reason)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)
Ortam ve kontrol betiği bir terminalde çalışıyor
Anahtarı bir kez ayarlayın, kontrolü çalıştırın, model, finish_reason ve usage değerlerini okuyun.

stop için finish_reason, modelin kendi kendine bitirdiği anlamına gelir. length, max_tokens yanıtı kesti anlamına gelir. usage giriş ve çıkış token'larını ayrı ayrı gösterir ve faturanızın oluştuğu iki sayı bunlardır — OpenRouter'da takip ettiğiniz aynı iki sayı.

Kendin deneDeneyin: max_tokens değerini 1 yaparsanız finish_reason ne der?Cevabı göster

length der — yanıt max_tokens tarafından kesildi. Kodunuzun kesilmiş bir yanıtı işlediğini test etmek için iyi bir yol.

Hangi model neyin yerini alır#

Modeli OpenRouter'da kullandığınız ada göre değil, işe göre seçin. Aşağıdaki bilgiler 27 Ekim 2026'da kontrol edilen CheapTokens fiyat listesinden alınmıştır; tek bir bakiye üç modelin hepsini kapsar ve fiyat günün saatine göre değişmez.

Model model kimliği Bağlam Maks yanıt
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731 380K 32.768 token
GLM-5.3-Flash zai-org/GLM-5.3-Flash 390K 8.192 token
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7 180K 8.192 token

Hangi satırın sizin olduğundan emin değil misiniz? Uygulamanın ne yaptığından başlayın:

Durumunu seç

Uygulamanız çoğunlukla ne yapıyor?

Kısa, sık istekler — sınıflandırma, çıkarım, destek yanıtları

zai-org/GLM-5.3-Flash deneyin: 390K bağlam, 8.192 token'a kadar yanıtlar ve giriş ile çıkış birlikte sayıldığında toplamda OpenRouter'dan daha ucuz.

Uzun yanıtlar, kod, ajan döngüleri

deepseek-ai/DeepSeek-V4-Flash-0731 deneyin: 32.768 token'a kadar yanıtlar, 380K bağlam, günün her saatinde tek fiyat.

Şu anda OpenRouter'da yüksek ücret ödediğiniz düzenli bir iş yükü

MiniMaxAI/MiniMax-M2.7 deneyin: 180K bağlam, 8.192 token'a kadar yanıtlar ve toplamda OpenRouter'dan daha ucuza geliyor.

Aynı trafiğin maliyeti#

Botunuzun her biri yaklaşık 500 giriş token'ı ve 300 çıkış token'ı içeren 1.000 istek gönderdiğini varsayalım. Bu bir varsayım — kendi sayılarınızı usage üzerinden koyun. Aşağıdaki tablo canlıdır: fiyatlarımız ve OpenRouter sütunu güncel fiyat listesinden gelir, giriş ve çıkış birlikte sayılır.

Model İstek başına 1.000 istek OpenRouter, 1.000 istek
GLM-5.3-Flash $0.000022 $0.022 $0.0434
DeepSeek-V4-Flash $0.000038 $0.0375 $0.0708
MiniMax-M2.7 $0.00007 $0.07 $0.51

İstek başına 500 giriş ve 300 çıkış token'ı. 1M token başına fiyatlar günceldir ve tarifelerimizle birlikte değişir; OpenRouter sütunu aynı iş yükü için referans fiyatları gösterir.

DeepSeek-V4-Flash'te bu 1.000 istek $0.0375 tutuyor. Tam fiyatlar fiyatlandırma sayfasında; neyin faturalandırıldığı fikri giriş ve çıkış token'ları yazısında.

İşe yaramazsa#

Bir geçişten sonra sorunların çoğunu üç hata kapsar. Mesajı nedene eşleştirin:

Eşleştir

Her belirtiyi nedenine eşleştirin

  • 401 UnauthorizedAnahtar eksik, yanlış yazılmış veya hâlâ OpenRouter anahtarı
  • 404 Not FoundTemel URL yolu yanlış veya model kimliği tam bir CheapTokens kimliği değil
  • Yanıt cümle ortasında kesildimax_tokens yanıtın ihtiyacından düşük; finish_reason length diyor

401 ve 404 sorun giderme makalesi her birini tam mesajlarla ele alıyor ve base_url nedir tek bir yanlış eğik çizginin yolu neden bozduğunu açıklıyor.

Yayına almadan önce#

Kontrol listesi

Geçiş kontrol listesi