Infrastruktur AIStudi kasus

LLM Cost Gateway — Gerbang Biaya di Depan Provider LLM

Lingkup yang dikirim

222 tes offline; terverifikasi live end-to-end terhadap DeepSeek pada 2026-08-16

Ilustrasi konseptual. Bukan foto atau tangkapan layar sistem klien.
Klien
Proyek open source
Kategori
Infrastruktur AI
Lokasi
Indonesia
Selesai
16 Agustus 2026

⚠ Ini proyek open source, bukan pekerjaan klien. Angka demo di bawah berasal dari beban kerja sintetis 30 request terhadap mock provider deterministik — ilustratif, bukan benchmark dan bukan janji. Bagian “Diverifikasi live” adalah satu-satunya angka yang menyentuh provider sungguhan.

Masalahnya

Dua mode kegagalan muncul di hampir setiap sistem LLM produksi: pengeluaran tak berbatas (retry loop atau agen yang lepas kendali bisa menagih ribuan dolar sebelum ada yang membuka dasbor), dan provider yang rapuh (satu 503 dari satu vendor menjatuhkan fitur Anda). Dasbor memberi tahu masalah pertama besok; gateway menolak request-nya hari ini.

Yang dibangun

Gateway OpenAI-compatible yang berdiri di depan provider model. Adopsinya cukup mengganti base_url — body request dan respons tetap JSON OpenAI standar, sementara keputusan gateway kembali sebagai header x-gateway-*. Jalur request-nya: klasifikasi ke tier (cheap/mid/frontier) → lookup prompt cache → reservasi budget pra-terbang → rantai provider dengan retry dan circuit breaker → metering biaya → rekonsiliasi pasca-terbang → simpan ke cache.

Budget per tenant bersifat keras dan ditegakkan sebelum request keluar: tenant yang melewati batas menerima 429 terstruktur tanpa satu pun panggilan upstream dilakukan. Penggunaan teragregasi per tenant, model, dan tier di /v1/usage; kebijakan routing hidup di YAML yang hot-reload dengan validate-then-swap — file yang gagal validasi ditolak dan kebijakan sebelumnya tetap berlaku.

Keputusan rekayasa

Cap keras harus diputuskan sebelum panggilan upstream, tapi jumlah token asli baru diketahui setelahnya — maka budgeting dibuat dua fase: reservasi estimasi yang sengaja konservatif (estimator 3,6 karakter per token, condong ke atas karena under-estimasi adalah mode gagal yang meloloskan tenant), lalu rekonsiliasi selisih bertanda begitu provider melaporkan usage asli. Panggilan yang gagal membebaskan seluruh reservasi: tenant tidak boleh ditagih untuk sebuah 502.

Reservasi adalah satu operasi atomik — Lua script di sisi Redis, asyncio.Lock untuk backend in-memory — karena read-then-write adalah lost-update race. Ada tes yang menembakkan 50 reservasi konkuren ke cap 1.000 token dan memastikan tepat 10 yang berhasil. Retryable/non-retryable juga dibedakan secara eksplisit: 429/5xx menuruni rantai fallback, 400/401 menggugurkan seluruh rantai seketika — me-replay request cacat ke tiga provider hanya menghasilkan tiga 400 dan error “semua provider gagal” yang menyesatkan.

Dan satu default yang disengaja: konten prompt tidak pernah dilog. Gateway berdiri di jalur setiap prompt yang dikirim organisasi; melog-nya secara default menjadikan log store gateway datastore paling sensitif di perusahaan.

Demo offline dan verifikasi live

make demo menjalankan beban kerja 30 request terhadap mock provider deterministik: 26/30 berhasil, 4 dilayani fallback saat mid-primary down, circuit breaker terbuka dua kali dan menutup sendiri setelah provider pulih, dan 4 request tenant demo-capped ditolak 429 saat budget hariannya habis. Perbandingan biaya pada workload itu — routing berjenjang $0,157879 versus $0,448200 jika semua request memakai tier frontier — adalah aritmetika atas satu workload sintetis, dinyatakan di README sebagai ilustratif, bukan janji.

Adapter OpenAI-compatible diverifikasi live terhadap DeepSeek (deepseek-v4-flash) pada 2026-08-16: routing, metering biaya atas usage yang dilaporkan provider, caching, dan laporan /v1/usage semuanya terkonfirmasi end-to-end. Run live itu menemukan dua hal yang tidak bisa ditemukan mock: kegagalan autentikasi 401 yang benar-benar menggugurkan rantai (bukan diam-diam membelanjakan uang di vendor kedua), dan alias model yang sudah pensiun di file kebijakan. Adapter Anthropic dan Gemini ditulis dari kontrak API terdokumentasi dan dinyatakan jujur sebagai belum teruji terhadap API live.

Menjalankannya sendiri

make install
make demo     # workload terskrip, offline, tanpa key, tanpa Redis
make test     # 222 tes, semuanya offline
make run      # sajikan di http://localhost:8080 sebagai endpoint OpenAI

Repo publik: github.com/ridwanspace/llm-cost-gateway.

Dari studi ini ke proyek Anda

Ada proses serupa di tim Anda?

Ceritakan alur kerja dan kendalanya. Kita mulai dengan lingkup yang bisa dijelaskan dan diperiksa.

Studi kasus berikutnya

LLM Eval Harness — Diff Regresi Prompt untuk CI