WhatsApp Gateway
Bot {{ botLabel }} · pemindaian QR dan percakapan pelanggan
{{ wp.status==='connected' ? 'Terhubung' : (wp.status==='connecting' ? 'Menghubungkan' : 'Terputus') }}
Scan QR ini lewat WhatsApp → Perangkat Tertaut
Ringkasan Statistik AI
Snapshot {{ fmtSnap(stats.meta.generated_at) }} · {{ stats.services.length }} layanan terpasang
Pemakaian token dan biaya layanan AI
{{ statsError }}
Request
{{ fmtN(stats.totals.requests) }}
{{ fmtN(stats.totals.errors) }} error
Token
{{ fmtTok(stats.totals.promptTokens + stats.totals.completionTokens) }}
prompt {{ fmtTok(stats.totals.promptTokens) }} · completion {{ fmtTok(stats.totals.completionTokens) }}
Token cache
{{ fmtTok(stats.totals.cachedTokens) }}
{{ pct(stats.totals.cachedTokens, stats.totals.promptTokens) }}% dari prompt
Biaya
{{ fmtRp(stats.totals.cost) }}
${{ Number(stats.totals.cost).toFixed(4) }} · kurs {{ fmtN(usdIdr) }}
Token per Hari
Total prompt + completion, 30 hari terakhir (WIB)
{{ (d.prompt+d.completion)>0 ? fmtTok(d.prompt+d.completion) : '—' }}
{{ d.day.slice(8,10) }}/{{ d.day.slice(5,7) }}
Belum ada data
Statistik muncul setelah router mencatat pemakaian.
Layanan AI
Pemakaian per layanan pada rentang {{ rangeLabel }}
Daftar Layanan
{{ layanan.services.length }} layanan terpasang
| Layanan | Request | Prompt | Completion | Cache | Biaya | Status |
|---|---|---|---|---|---|---|
| {{ s.name }}
{{ s.kind === 'node' ? 'node kustom' : 'konektor' }}
|
{{ fmtN((layanan.svcWin[s.provider]||{}).req) }} {{ (layanan.svcWin[s.provider]||{}).errors }} err | {{ fmtTok((layanan.svcWin[s.provider]||{}).prompt) }} | {{ fmtTok((layanan.svcWin[s.provider]||{}).completion) }} | {{ fmtTok((layanan.svcWin[s.provider]||{}).cached) }} | {{ fmtRp((layanan.svcWin[s.provider]||{}).cost) }} | {{ s.active ? 'aktif' : 'nonaktif' }} |
Belum ada layanan |
||||||
Model & Combo
Model yang terpakai beserta rantai fallback yang aktif di router
Model Terpakai
{{ models.models.length }} model · 30 hari terakhir
| Model | Layanan | Req | Token | Biaya |
|---|---|---|---|---|
| {{ m.model }} | {{ models.svcName[m.provider] || m.provider }} | {{ fmtN(m.req) }} | {{ fmtTok(m.prompt + m.completion) }} | {{ fmtRp(m.cost) }} |
Belum ada model |
||||
Combo & Routing
{{ models.combos.length }} combo · rantai fallback router
{{ c.name }} · {{ c.models.length }} model
{{ mm }}
Belum ada combo
Combo dibuat di router, lalu muncul di sini.
Kunci API
Pemakaian per kunci · nilai disamarkan oleh router
Daftar Kunci
{{ kunci.keys.length }} kunci terdaftar
| Nama | Kunci | Req | Biaya | Status |
|---|---|---|---|---|
| {{ k.name }} | {{ k.k }} | {{ fmtN(k.requests) }} | {{ fmtRp(k.cost) }} | {{ k.active ? 'aktif' : 'nonaktif' }} |
Belum ada kunci |
||||
100 Request Terakhir
Langsung dari router, bukan angka agregat
Log Request
{{ log.recent.length }} baris terakhir
| Waktu | Layanan | Model | Kunci | Prompt | Completion | Cache | Biaya | Status |
|---|---|---|---|---|---|---|---|---|
| {{ fmtWib(r.ts) }} | {{ log.svcName[r.provider] || r.provider }} | {{ r.model }} | {{ r.key_name }} | {{ fmtTok(r.prompt) }} | {{ fmtTok(r.completion) }} | {{ fmtTok(r.cached) }} | {{ fmtRp(r.cost) }} | {{ r.status }} |
Belum ada log |
||||||||