Kembali ke blog

MemulaiPanduan

Beralih dari OpenRouter ke CheapTokens: base_url, kunci, id model

Ubah base_url, kunci API, dan id model di OpenAI SDK (Python dan JavaScript), kirim permintaan pertama dan periksa bahwa itu berhasil.

Oleh CheapTokens TeamDiterbitkan 4 menit baca

Sampul: beralih aplikasi OpenAI-SDK dari OpenRouter ke CheapTokens dengan mengubah base_url, kunci, dan id model
Di halaman ini
  1. Apa yang sebenarnya berubah
  2. Kode setelah pengalihan
  3. Periksa bahwa itu berhasil
  4. Model mana menggantikan apa
  5. Berapa biaya lalu lintas yang sama
  6. Jika tidak berhasil
  7. Sebelum Anda merilis

Aplikasi Anda sudah memanggil OpenRouter melalui OpenAI SDK, dan Anda ingin aplikasi tersebut memanggil CheapTokens. Anda mengubah tiga nilai — base_url, kunci API, dan id model — dan menghapus dua header opsional. Sisa kode tetap seperti semula.

Di bawah ini adalah baris persis untuk Python, JavaScript, dan curl, cara cepat untuk memastikan pengalihan berhasil, dan tabel model mana yang cocok untuk tugas apa. Jika Anda belum pernah mengirim permintaan ke CheapTokens, panduan permintaan API pertama mencakup akun dan kunci; dokumentasi memiliki referensi lengkap.

Apa yang sebenarnya berubah#

Quickstart OpenRouter (diperiksa 27 Oktober 2026) mengonfigurasi klien OpenAI dengan base URL https://openrouter.ai/api/v1 dan menamai model sebagai provider/model-name. CheapTokens berbicara dalam format OpenAI Chat Completions yang sama di https://api.cheaptokens.dev/v1. Jadi kelas klien, chat.completions.create, dan cara Anda membaca jawaban tidak berubah.

Sebelum dan sesudah: tiga nilai yang berubah saat beralih dari OpenRouter ke CheapTokens
Tiga nilai yang perlu ditukar. Kunci ditampilkan sebagai variabel lingkungan, tidak pernah di dalam kode.

Itu satu penukaran per baris:

  • base URL — https://api.cheaptokens.dev/v1 alih-alih alamat OpenRouter;
  • kunci API — kunci dari akun CheapTokens Anda, dibaca dari variabel lingkungan;
  • id model — id CheapTokens lengkap, misalnya deepseek-ai/DeepSeek-V4-Flash-0731. Ambil id dari dokumentasi CheapTokens: penyedia berbeda menamai model yang sama secara berbeda, dan id pendek dari label harga tidak diterima.

Dan satu penghapusan. Header HTTP-Referer dan X-OpenRouter-Title milik OpenRouter bersifat opsional dan hanya memberi masukan ke papan peringkat OpenRouter. Hapus dari default_headers / defaultHeaders; Anda tidak membutuhkannya di sini.

Kode setelah pengalihan#

Permintaan yang sama, tiga runtime. Pilih yang digunakan aplikasi Anda.

Kode Anda setelah pengalihan

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}'

Satu hal lagi sebelum Anda menjalankannya. Jika permintaan Anda membawa field khusus OpenRouter — daftar routing atau fallback, preferensi penyedia, id model ~alias — itu milik OpenRouter. Batasi permintaan ke field Chat Completions standar: model, messages, temperature, max_tokens, stream.

Periksa bahwa itu berhasil#

Balasan saja tidak cukup sebagai bukti. Cetak tiga hal di sampingnya: model mana yang menjawab, mengapa berhenti, dan berapa token yang ditagih.

python
print(resp.model)
print(resp.choices[0].finish_reason)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)
Lingkungan dan skrip pemeriksa dijalankan di terminal
Setel kunci sekali, jalankan pemeriksaan, baca model, finish_reason, dan usage.

finish_reason dari stop berarti model selesai dengan sendirinya. length berarti max_tokens memotong jawaban. usage menunjukkan token input dan output secara terpisah, dan itulah dua angka yang membentuk tagihan Anda — dua angka yang sama yang Anda lacak di OpenRouter.

Coba sendiriCoba: apa kata finish_reason jika Anda menyetel max_tokens ke 1?Tampilkan jawaban

Nilainya length — jawaban dipotong oleh max_tokens. Uji yang bagus bahwa kode Anda menangani balasan yang terpotong.

Model mana menggantikan apa#

Pilih model berdasarkan tugas, bukan berdasarkan nama yang Anda gunakan di OpenRouter. Fakta di bawah ini berasal dari daftar harga CheapTokens yang diperiksa 27 Oktober 2026; satu saldo mencakup ketiga model dan harganya tidak berubah sepanjang hari.

Model id model Konteks Jawaban maks
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

Tidak yakin baris mana milik Anda? Mulai dari apa yang dilakukan aplikasi:

Pilih kasus Anda

Apa yang sebagian besar dilakukan aplikasi Anda?

Permintaan pendek dan sering — klasifikasi, ekstraksi, balasan dukungan

Coba zai-org/GLM-5.3-Flash: konteks 390K, jawaban hingga 8.192 token, dan totalnya lebih murah daripada OpenRouter, input dan output dihitung bersama.

Jawaban panjang, kode, loop agen

Coba deepseek-ai/DeepSeek-V4-Flash-0731: jawaban hingga 32.768 token, konteks 380K, satu harga kapan pun sepanjang hari.

Beban kerja tetap yang saat ini Anda bayar dengan tarif OpenRouter tinggi

Coba MiniMaxAI/MiniMax-M2.7: konteks 180K, jawaban hingga 8.192 token, dan totalnya lebih murah daripada OpenRouter.

Berapa biaya lalu lintas yang sama#

Katakanlah bot Anda mengirim 1.000 permintaan, masing-masing dengan sekitar 500 token input dan 300 token output. Itu asumsi — ganti dengan angka Anda sendiri dari usage. Tabel di bawah ini langsung: harga kami dan kolom OpenRouter berasal dari daftar harga saat ini, input dan output dihitung bersama.

Model Per permintaan 1.000 permintaan OpenRouter, 1.000 permintaan
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

500 token input dan 300 token output per permintaan. Harga per 1 juta token adalah harga saat ini dan berubah seiring tarif kami; kolom OpenRouter menunjukkan harga referensi untuk beban kerja yang sama.

Pada DeepSeek-V4-Flash, 1.000 permintaan itu menjadi $0.0375. Harga lengkap ada di halaman harga; gambaran tentang apa yang Anda ditagih ada di token input vs output.

Jika tidak berhasil#

Setelah pengalihan, tiga error mencakup sebagian besar masalah. Cocokkan pesan dengan penyebabnya:

Cocokkan pasangan

Cocokkan setiap gejala dengan penyebabnya

  • 401 UnauthorizedKunci hilang, salah ketik, atau masih kunci OpenRouter
  • 404 Not FoundPath base URL salah atau id model bukan id CheapTokens lengkap
  • Balasan terpotong di tengah kalimatmax_tokens lebih rendah dari yang dibutuhkan jawaban; finish_reason menyebut length

Artikel pemecahan masalah 401 dan 404 membahas masing-masing dengan pesan persisnya, dan apa itu base_url menjelaskan mengapa satu garis miring yang salah merusak path.

Sebelum Anda merilis#

Daftar periksa

Daftar periksa pengalihan