AI & Tech

Setup NgodeAI OpenAI-Compatible: Python dan curl

Setup NgodeAI OpenAI-Compatible: Python dan curl

Endpoint OpenAI-compatible terdengar seperti pekerjaan sepele: ganti base URL, tempel key, selesai. Praktiknya, tiga hal yang paling sering menggagalkan setup justru detail kecil: base URL yang wajib berakhir di /v1, nama model yang harus memakai prefix ngodeai/, dan saldo yang belum terisi saat model berbayar dipanggil.

NgodeAI dipakai sebagai contoh karena katalognya terbuka di https://api.ngodeai.net/models, jadi setiap angka di sini bisa diverifikasi sendiri. Akun baru yang mendaftar lewat halaman daftar NgodeAI mendapat saldo Rp 5.000, dan pemilik kode referral mendapat Rp 2.500.

TL;DR

  • Base URL https://llm.ngodeai.net/v1, route chat /v1/chat/completions, format request mengikuti OpenAI termasuk streaming dan tool calling.
  • SDK resmi OpenAI dipakai apa adanya, tanpa library khusus.
  • Katalog 6 November 2026: 28 model, 22 aktif, 6 nonaktif. Dari yang aktif, 17 lewat route chat (5 gratis, 12 berbayar), 3 route gambar, 2 route keputusan.
  • Termurah GLM 5.3 Flash (Fast) Rp 78 input dan Rp 264 output per 1 juta token, jadi request 4.000 input plus 800 output berbiaya Rp 0,52.

Apa arti OpenAI-compatible dan apa yang ikut pindah

Kompatibel berarti bentuk request dan response mengikuti kontrak OpenAI: array messages dengan role dan content, parameter temperature dan max_tokens, lalu response di choices[0].message.content. Karena kontraknya sama, SDK resmi OpenAI untuk Python dan JavaScript bisa dipakai hanya dengan mengganti base_url dan API key.

Yang ikut pindah cuma bentuknya. Nama model tetap wajib dari katalog NgodeAI dan semuanya berawalan ngodeai/, jadi gpt-4o tidak akan ketemu. Kualitas jawaban tetap milik model aslinya, karena gateway cuma meneruskan request.

Yang harus disiapkan sebelum menulis kode

  • API key dari dashboard, satu key per aplikasi supaya bisa dicabut tanpa mengganggu yang lain.
  • Saldo hanya kalau memakai model berbayar. Topup rupiah lewat QRIS, transfer bank, atau e-wallet, tanpa kartu kredit luar negeri.
  • Python 3.8 atau lebih baru plus paket openai terbaru. Versi lama menolak parameter base_url.
  • curl untuk uji cepat sebelum menyentuh kode aplikasi.
pip install --upgrade openai

Simpan API key di environment, bukan di kode

Key yang tertempel di file Python akan ikut ter-commit cepat atau lambat, dan biayanya jadi tanggunganmu. Simpan di environment shell:

export NGODEAI_API_KEY="tempel-key-kamu-di-sini"

Untuk pemakaian permanen, taruh di file .env dengan izin chmod 600 dan pastikan file itu masuk .gitignore sebelum commit pertama.

Uji pertama dengan curl

Mulai dari model gratis supaya belum perlu saldo. Contoh ini memakai GLM 5.3 Flash yang harganya nol.

curl -s https://llm.ngodeai.net/v1/chat/completions   -H "Authorization: Bearer $NGODEAI_API_KEY"   -H "Content-Type: application/json"   -d '{
    "model": "ngodeai/glm-5.3-flash",
    "messages": [
      {"role": "user", "content": "Tulis fungsi Python untuk memvalidasi alamat email."}
    ]
  }'

Key dibaca dari environment supaya tidak muncul di history shell, dan header Content-Type wajib ada karena body-nya JSON. Kalau respons keluar, lihat objek usage: di situ ada prompt_tokens dan completion_tokens, angka yang dikalikan tarif per 1 juta token untuk menghitung biaya.

Versi Python dengan SDK resmi

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://llm.ngodeai.net/v1",
    api_key=os.environ["NGODEAI_API_KEY"],
)

resp = client.chat.completions.create(
    model="ngodeai/deepseek-v4-flash",
    messages=[
        {"role": "system", "content": "Kamu asisten coding yang ringkas."},
        {"role": "user", "content": "Ubah loop ini jadi list comprehension."},
    ],
    temperature=0.2,
    max_tokens=600,
)

print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)

Base URL berhenti di /v1 tanpa garis miring tambahan, karena SDK menambahkan /chat/completions sendiri. Menulis .../v1/chat/completions menghasilkan path dobel dan 404 yang terlihat seperti model tidak ada, padahal bukan.

Streaming dan tool calling: apa yang ikut pindah

stream=True menghasilkan delta bertahap, dan tool calling memakai tools serta tool_choice seperti biasa. Yang dijamin pindah adalah bentuk request, bukan kepatuhan model. Model kecil kadang mengembalikan argumen tool dalam JSON tidak valid, jadi validasi argumen di sisi server dan jangan jalankan perintah dari tool tanpa pemeriksaan.

Katalog hari ini: 22 model aktif dan harganya

Data di bawah diambil dari https://api.ngodeai.net/models pada 6 November 2026, difilter ke model aktif dengan endpoint /v1/chat/completions. Harga rupiah per 1 juta token.

ModelInputOutputRuteKonteks
GLM 5.3 Flash (Fast)78264vip1.048.576
Ling 3.1 Flash (1019)136408vip1.048.576
DeepSeek V4 Flash150300vip1.048.576
GPT-6 Luna181907vip1.048.576
MiniMax M3.1 Flash248990vip1.048.576
Gemini 3.8 Flash2721.361vip1.048.576
Grok 4.73631.089vip524.288
DeepSeek V4.1 Flash (1017)3811.524vip1.048.576
DeepSeek V4 Pro471942vip1.048.576
GPT-6.1 Terra1.8139.066vip1.048.576
GPT-6.1 Sol3.62718.133vip1.048.576
GPT-6 Astra18.13390.664vip1.048.576
Beam 1.0 Free00shared1.048.576
Gemini 3.5 Flash Lite00shared1.048.576
GLM 5.3 Flash00shared1.048.576
MiMo V2.6 Flash00shared1.048.576
Nemotron 3.5 Super VL00shared1.048.576

Lima model aktif lain di luar route chat: tiga model gambar lewat /v1/images/generations (Gemini 3.1 Flash Image Rp 2.722 dan Rp 326.608, GPT Image 2.5 Flare dan Sunburst Rp 145.159 dan Rp 544.347), dua model keputusan lewat /v1/systemone (Jev 1.14 Rp 761 input dengan konteks 65.536, Mercury Decide gratis). Enam model nonaktif: Claude Haiku 5.5, Claude Opus 5.5, Claude Sonnet 5.5, DeepSeek V4.1 Flash, Gemini 4 Argon, Step 5 Preview.

Model gratis, rute shared, dan kapan memakainya

Semua model gratis di rute shared, semua berbayar di vip. Bedanya kapasitas, bukan kualitas: rute shared dipakai bersama, jadi waktu tunggu berubah-ubah di jam sibuk. Untuk validasi format itu cukup, tapi untuk agent yang jalan sepanjang hari, latency naik turun lebih mengganggu daripada Rp 0,52 per request.

Pola yang masuk akal: pakai model gratis sampai kode terbukti benar, lalu pindah ke yang termurah yang lolos uji kualitasmu. Saldo bisa ditopup dari dashboard NgodeAI lewat QRIS, transfer bank, atau e-wallet. Tidak ada langganan bulanan, jadi akun menganggur tidak menghasilkan tagihan.

Hitung biaya sebelum memilih model

Angka per 1 juta token sulit dibayangkan, jadi pakai pola realistis: satu request 4.000 input dan 800 output. Kolom terakhir memakai 300 request per hari selama 30 hari, setara 36 juta input dan 7,2 juta output.

ModelPer requestSebulan (9.000 request)
GLM 5.3 Flash (Fast)Rp 0,52Rp 4.709
DeepSeek V4 FlashRp 0,84Rp 7.560
GPT-6 LunaRp 1,45Rp 13.046
Gemini 3.8 FlashRp 2,18Rp 19.591
DeepSeek V4 ProRp 2,64Rp 23.738
GPT-6 AstraRp 145,06Rp 1.305.569

Satu request di GPT-6 Astra setara 277 request di GLM 5.3 Flash (Fast), jadi model kelas atas untuk pekerjaan rutin itu pemborosan terukur. Biaya konteks lebih sering mengejutkan: 200.000 token ke DeepSeek V4 Flash sekali panggil Rp 30.000, sekitar 35 kali request normal. Kalau prefix prompt berulang, cache menolong: DeepSeek V4.1 Flash (1017) menagih Rp 8 untuk baca cache, 48 kali lebih murah dari tarif input Rp 381.

Wrapper yang layak dipakai ulang

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://llm.ngodeai.net/v1",
    api_key=os.environ["NGODEAI_API_KEY"],
)

def ask(prompt, model="ngodeai/glm-5.3-flash-fast", system=None, max_tokens=800):
    messages = []
    if system:
        messages.append({"role": "system", "content": system})
    messages.append({"role": "user", "content": prompt})
    resp = client.chat.completions.create(
        model=model, messages=messages, max_tokens=max_tokens,
    )
    return resp.choices[0].message.content, resp.usage.prompt_tokens, resp.usage.completion_tokens

Dua tambahan begitu kode masuk produksi: daftar model cadangan yang dicoba berurutan saat gagal, dan pencatatan token harian. Tagihan model berbayar bergerak mengikuti pemakaian, dan tanpa catatan kamu baru sadar setelah saldo menipis.

Kode error dan artinya

KodePenyebab paling seringTindakan
400Body JSON tidak valid atau parameter tidak dikenalValidasi JSON, cocokkan nama parameter dengan spesifikasi OpenAI
401Key salah tempel, atau saldo kosong untuk model berbayarCek environment dan saldo, jangan retry berulang
404Nama model salah, prefix hilang, atau base URL dobel pathBandingkan dengan katalog, pastikan base URL berhenti di /v1
429Terlalu banyak request dalam waktu singkatBeri jeda dengan backoff, atau pindah ke model aktif lain
5xxGangguan di gateway atau model upstreamRetry terbatas, lalu fallback

400, 401, dan 404 kesalahan konfigurasi, retry tidak menolong. 429 dan 5xx gangguan sementara, retry dengan jeda masuk akal. 401 padahal key baru hampir selalu soal saldo.

Ekspektasi vs realita

AspekEkspektasiRealita
Waktu setupLima menit sampai jalanBenar, kalau base URL dan nama model ditulis persis
Kode yang diubahGanti base URL dan key sajaBenar untuk SDK OpenAI, tapi nama model tetap dari katalog
Model gratisSelalu siap dipakaiTanpa saldo bisa, tapi berbagi kapasitas di rute shared
Kualitas jawabanGateway menambah kecerdasanTidak, kualitas tetap milik model aslinya
BiayaSelalu lebih murahMurah untuk model cepat, tetap mahal untuk GPT-6 Astra

Kekurangan dan limitasi

  • Layanan pihak ketiga tanpa SLA publik. Request melewati server mereka sebelum diteruskan ke model upstream, tanpa jaminan uptime yang bisa dipegang.
  • Harga dan katalog bergerak. Snapshot 1 November 2026 mencatat 18 model, hari ini 28 dengan komposisi aktif berbeda.
  • Enam model nonaktif. Kode yang mengunci satu model tanpa cadangan akan gagal di saat paling tidak nyaman.
  • Klaim diskon adalah klaim pemasaran. Situs mereka menyebut potongan sampai 99 persen dari harga pasar resmi OpenRouter dengan pembanding kurs Rp 16.500 per dolar. Perlakukan sebagai indikasi.
  • Klaim keamanan belum diaudit independen. FAQ mereka menyebut key disimpan sebagai hash, kunci provider dienkripsi AES-256-GCM, dan prompt tidak dipakai untuk training. Dari luar hanya katalog publik dan HTTPS yang bisa dicek.
  • Bukan untuk data yang diatur kontrak. Kalau proyekmu memuat data pribadi atau kredensial produksi, kebijakan internal yang menentukan.

Pertanyaan yang sering muncul (FAQ)

Apakah SDK OpenAI resmi bisa langsung dipakai? Bisa. Ganti base_url ke https://llm.ngodeai.net/v1 dan isi API key NgodeAI. Tidak ada SDK khusus, dan streaming serta tool calling mengikuti kontrak OpenAI.

Kenapa request saya balas 404 padahal nama model benar? Biasanya prefix ngodeai/ tidak ditulis, atau base URL sudah memuat path tambahan. Base URL berhenti di /v1, SDK yang menambahkan /chat/completions.

Bisakah mencoba tanpa mengisi saldo? Bisa, untuk model berharga nol. Hari ini ada lima model chat gratis: Beam 1.0 Free, Gemini 3.5 Flash Lite, GLM 5.3 Flash, MiMo V2.6 Flash, dan Nemotron 3.5 Super VL.

Apa yang terjadi kalau saldo habis di tengah pekerjaan? Panggilan ke model berbayar gagal dengan 401. Itu alasan memasang fallback ke model gratis di kode, bukan mengandalkan topup manual di tengah malam.

Kesimpulan

Setup gateway OpenAI-compatible tidak rumit: satu base URL, satu key, satu paket SDK. Yang menjatuhkan orang biasanya tiga detail tadi: base URL tanpa /v1, nama model tanpa prefix, atau saldo kosong.

Sisanya soal biaya. Mulai dari GLM 5.3 Flash (Fast) atau DeepSeek V4 Flash, dan naik ke model lebih mahal hanya ketika kualitas jawabannya benar-benar mengubah hasil kerja. Katalognya publik: baca ulang harga sebelum menyusun anggaran, karena angka di sini adalah foto 6 November 2026.

Kalau mau mulai dari akun baru: daftar NgodeAI dengan kode referral KFDC3KEJ. Saldo awal Rp 5.000 cukup untuk menguji puluhan request ke model berbayar termurah.

Transparansi: artikel ini memuat tautan referral. Kalau kamu mendaftar lewat tautan tersebut, toolkuy menerima komisi dari NgodeAI tanpa menambah biaya apa pun untukmu, dan harga yang kamu bayar tetap sama. Semua angka model, harga, rute, dan panjang konteks diambil langsung dari katalog API publik mereka pada 6 November 2026 dan bisa berubah setelah tanggal itu. Contoh kode ditulis mengikuti spesifikasi OpenAI dan tidak dijalankan dengan kredensial penulis artikel ini.

💬 Komentar (0)

Belum ada komentar. Jadilah yang pertama! 💬

Komentar yang memuat tautan, bahasa asing, atau aksara non-Latin ditahan dulu buat ditinjau.