{{ r.description }}
{{ t('aiNav.empty') }}
{{ g.key==='fav' ? t('aiNav.fav') : t('aiNav.cat.'+g.key) }} {{ g.items.length }}
{{ t('aiNav.iconTip') }}
{{ t('ph.title') }}
{{ t('ph.sub') }}
{{ t('nav.player') }}
- {{ r.title }} {{ r.tag }}
{{ t('ph.quickEntry') }}
{{ t('nav.chat') }}
{{ t('promptEnter') }}
{{ msg.content }}
{{ t('temp.hTitle') }}
0~0.3 {{ t('temp.hLow') }}
0.4~0.7 {{ t('temp.hMid') }}
0.8~1 {{ t('temp.hHigh') }}
{{ t('temp.hTip') }}
{{ t('titlePlayer') }}
{{ t('pv.empty') }}
{{ t('pv.emptyHint') }}{{ t('subPanSearch') }}
{{ t('pan.empty') }}
{{ t('pan.submitTitle') }}
{{ locale==='zh' ? '分享优质网盘资源,与社区共建资源库' : 'Share quality pan resources with the community' }}
{{ t('pan.reportTitle') }}
{{ locale==='zh' ? '请描述违规内容,我们会尽快处理' : 'Describe the violation and we will handle it soon' }}
{{ panDetail.title }}
{{ panDetail.url }}{{ panDetail.code }}{{ t('titleTts') }}
{{ t('titleJev') }}
{{ t('nav.recharge') }}
{{ hasAlipay ? t('recharge.tipAlipay') : t('recharge.mockTip') }}
{{ t('recharge.redeemDesc') }}
{{ t('recharge.redeemOff') }}
- {{ t('recharge.redeemTip1') }}
- {{ t('recharge.redeemTip2') }}
-
{{ o.status==='paid'?t('recharge.stPaid'):(o.status==='pending'?t('recharge.stPending'):t('recharge.stFailed')) }}{{ o.type==='card' ? t('recharge.typeCard') : (o.channel==='alipay' ? t('recharge.typeAlipay') : t('recharge.typeMock')) }} +¥{{ o.amount }}{{ o.order_no }} {{ formatDate(o.created_at) }}
{{ t('rb.title') }}
{{ t('rb.entryTip') }}
{{ token ? t('rb.disabled') : t('rb.loginToView') }}
{{ t('rb.ruleTip') }}
| {{ t('rb.colTitle') }} | {{ t('rb.colCommission') }} | {{ t('rb.colUserAmt') }} | {{ t('rb.colStatus') }} | {{ t('rb.colEstimate') }} | {{ t('time') }} |
|---|---|---|---|---|---|
|
|
¥{{ cpMoney(o.commission_amount) }} | ¥{{ cpMoney(o.user_amount) }} | {{ t('rb.st'+o.status) }} | {{ o.status==='pending'&&o.estimate_settle_at ? o.estimate_settle_at : '-' }} | {{ o.created_at }} |
{{ t('rb.orderEmpty') }}
{{ t('rb.logEmpty') }}
| {{ t('rb.colWdNo') }} | {{ t('rb.colAmount') }} | {{ t('rb.colActual') }} | {{ t('rb.colMethod') }} | {{ t('rb.colStatus') }} | {{ t('rb.colRemark') }} | {{ t('admin.cpActions') }} |
|---|---|---|---|---|---|---|
| {{ w.withdraw_no }} | ¥{{ cpMoney(w.amount) }} | ¥{{ cpMoney(w.actual_amount) }} | {{ w.method_label }} | {{ t('rb.wd'+w.status) }} | - |
{{ t('rb.wdEmpty') }}
{{ t('ch.disabledTitle') }}
{{ t('ch.disabledDesc') }}
{{ t('nav.channel') }}
| {{ t('aff.model') }} | {{ t('aff.vendor') }} | {{ t('aff.type') }} | $/1M in/out | |
|---|---|---|---|---|
| {{ m.model_id }} | {{ m.vendor }} | {{ m.usd_in }} / {{ m.usd_out }} |
{{ t('nav.cloud') }}
| {{ t('cd.name') }} | {{ t('cd.size') }} | {{ t('cd.date') }} | {{ t('cd.actions') }} | |
|---|---|---|---|---|
|
|
{{ it.name }} | {{ it.ext==='folder' ? '—' : fmtBytes(it.size) }} | {{ cdFmtTime(it.date) }} |
|
| {{ t('cd.tfName') }} | {{ t('cd.tfMode') }} | {{ t('cd.tfProgress') }} | {{ t('cd.tfStatus') }} | {{ t('cd.actions') }} |
|---|---|---|---|---|
|
{{ task.name }}
{{ cdProviderLabel(task.source_provider) }} → {{ cdProviderLabel(task.target_provider) }}
|
|
{{ task.success }}/{{ task.total }} · {{ fmtBytes(task.bytes||0) }}/{{ fmtBytes(task.total_bytes) }} · {{ fmtBytes(task.bytes||0) }} · {{ fmtBytes(task.speed) }}/s
|
{{ task.error }}
|
|
| {{ t('cd.name') }} | {{ t('cd.tfProgress') }} | {{ t('cd.tfStatus') }} | {{ t('cd.actions') }} |
|---|---|---|---|
|
{{ it.name }}
{{ it.error }}
{{ it.log }}
|
{{ fmtBytes(it.bytes||0) }}/{{ fmtBytes(it.size) }}
{{ fmtBytes(it.bytes||0) }}
|
|
{{ t('fmhy.title') }}
{{ t('unified.noVideo') }}
{{ t('unified.noDj') }}
{{ t('unified.noFmhy') }}
{{ t('nav.duanju') }}
{{ siteSettings.default_model || t('admin.cdkEmptyVal') }}
{{ t('admin.registerBonus') }}¥{{ siteSettings.register_bonus||'0' }}
{{ t('admin.imagePrice') }}¥{{ siteSettings.image_price||'—' }}
{{ t('admin.chatEnabled') }}{{ siteSettings.chat_enabled==='1'?t('admin.cdkOn'):t('admin.cdkOff') }}
{{ t(s.label) }}
{{ t(CFG_DESC[s.k]) }}
{{ t(f.sep.d) }}
- {{ t('admin.guide.'+s.k+'i'+n) }}
- {{ it }}
| {{ t('admin.platformName') }} | Code | Base URL | {{ t('admin.platformKey') }} | {{ t('admin.colSort') }} | {{ t('status') }} | |
|---|---|---|---|---|---|---|
{{ p.name }} |
{{ p.code }} | {{ p.key_mask }}{{ t('admin.platformKeyNone') }} | {{ p.sort }} |
| {{ t('admin.colModel') }} | Key | {{ t('admin.modelUpstream') }} | {{ t('admin.colIn') }} | {{ t('admin.colOut') }} | {{ t('admin.colOverhead') }} | {{ t('admin.colSort') }} | {{ t('admin.colVision') }} | {{ t('status') }} | |
|---|---|---|---|---|---|---|---|---|---|
{{ m.name }} |
{{ m.key }} | {{ m.upstream }} |
| {{ t('aff.platform') }} | {{ t('aff.regUsers') }} | {{ t('aff.funnel') }} | {{ t('aff.balance') }} | {{ t('aff.topup') }} | {{ t('aff.consume') }} | {{ t('aff.commission') }} |
|---|---|---|---|---|---|---|
| {{ p.name }} | {{ p.accounts }} | {{ p.verified_bound }}/{{ p.users_bound }} / {{ p.clicks }} | ¥{{ p.balance.toFixed(2) }} | ¥{{ p.topup.toFixed(2) }} | ¥{{ p.consume.toFixed(2) }} | ¥{{ p.commission.toFixed(2) }} |
| {{ t('aff.noData') }} | ||||||
| {{ t('aff.evtType') }} | {{ t('aff.subject') }} | {{ t('aff.amount') }} | {{ t('aff.time') }} | |
|---|---|---|---|---|
| {{ r.subject }} | {{ r.model_name }} | ¥{{ r.amount_cny.toFixed?r.amount_cny.toFixed(4):r.amount_cny }} | {{ r.occurred_at }} |
| {{ t('aff.platform') }} | {{ t('aff.affCode') }} | {{ t('aff.regLink') }} | {{ t('aff.entries') }} | |
|---|---|---|---|---|
| {{ p.name }}{{ p.code }} |
| {{ t('aff.platform') }} | {{ t('aff.accName') }} | {{ t('aff.credentials') }} | {{ t('balance') }} | {{ t('aff.syncedAt') }} | |
|---|---|---|---|---|---|
| {{ a.platform_name }} | {{ a.username }} {{ a.registered_via_aff?t('aff.viaAff'):t('aff.notAff') }} · {{ a.registered_at||'—' }} |
¥{{ (a.balance_cny||0).toFixed?a.balance_cny.toFixed(2):a.balance_cny }} | {{ a.synced_at||'—' }} | ||
| {{ t('aff.accEmpty') }} | |||||
| {{ t('aff.time') }} | {{ t('aff.platform') }} | {{ t('aff.evtType') }} | {{ t('aff.verify') }} | {{ t('aff.parsed') }} | IP | |
|---|---|---|---|---|---|---|
| {{ c.created_at }} | {{ c.platform_code }} | {{ c.event_type }} | {{ c.ip }} | {{ c.note||'' }} | ||
| {{ t('aff.cbEmpty') }} | ||||||
| {{ t('aff.model') }} | {{ t('aff.vendor') }} | {{ t('aff.type') }} | $/1M in/out | |
|---|---|---|---|---|
| {{ m.key }} |
{{ m.vendor }} | {{ m.usd_in }} / {{ m.usd_out }} |
| {{ t('admin.colUser') }} | {{ t('balance') }} | {{ t('admin.colCalls') }} | {{ t('admin.colSpent') }} | {{ t('status') }} | |
|---|---|---|---|---|---|
{{ u.nickname||u.email }} {{ u.email }}ADMIN |
¥{{ u.balance }} | {{ u.calls }} | ¥{{ u.spent }} | {{ u.status===1?t('admin.normal'):t('admin.banned') }} |
- {{ n }}{{ t('admin.cardStep'+n) }}
| {{ t('admin.cardColCode') }} | {{ t('admin.cardColAmount') }} | {{ t('admin.cardColStatus') }} | {{ t('admin.cardColUser') }} | {{ t('admin.cardColUsedAt') }} | {{ t('admin.cardColBatch') }} | {{ t('admin.cardColCreated') }} | ||
|---|---|---|---|---|---|---|---|---|
{{ c.code }} |
¥{{ Number(c.amount).toFixed(2) }} | {{ c.status==='unused'?t('admin.cardUnused'):t('admin.cardUsed') }} | {{ c.used_by_label||'—' }} | {{ c.used_at||'—' }} | {{ c.batch_no }} | {{ c.created_at }} |
| {{ t('admin.djrecOrder') }} | {{ t('admin.djrecName') }} | {{ t('admin.djrecUrl') }} | {{ t('admin.djrecImage') }} | {{ t('admin.djrecHeat') }} | {{ t('admin.djrecUpdateTime') }} | {{ t('admin.djrecActions') }} |
|---|---|---|---|---|---|---|
| {{ t('admin.djrecEmpty') }} | ||||||
| {{ r.sort }} | {{ r.title }} |
- |
|
{{ r.heat }} | {{ r.update_time||'-' }} | |
| {{ t('admin.pluginName') }} | {{ t('admin.pluginType') }} | {{ t('admin.pluginBaseUrl') }} | App ID | {{ t('admin.pluginKey') }} | {{ t('status') }} | |
|---|---|---|---|---|---|---|
{{ p.name }} {{ p.code }} |
{{ t(pluginTypeMap[p.type]||'admin.tOther') }} | {{ p.base_url||'-' }} | {{ p.app_id||'-' }} | {{ (p.has_key||p.has_secret)?t('admin.pluginKeySet'):t('admin.pluginKeyEmpty') }} | ||
| {{ t('admin.pluginEmpty') }} | ||||||
| {{ t('admin.linkColSort') }} | {{ t('admin.linkColName') }} | {{ t('admin.linkColUrl') }} | {{ t('admin.linkColDesc') }} | {{ t('admin.linkColLogo') }} | ||
|---|---|---|---|---|---|---|
|
|
||||||
| {{ t('admin.linkEmpty') }} | ||||||
| {{ t('admin.cpPlatCode') }} | {{ t('admin.cpPlatName') }} | {{ t('admin.cpPlatDefaultChannel') }} | {{ t('admin.cpPriority') }} | {{ t('admin.cpPlatActive') }} | |
|---|---|---|---|---|---|
| {{ p.code }} |
|
||||
| {{ t('admin.cpNoData') }} | |||||
| {{ t('admin.cpHotWord') }} | {{ t('admin.cpSort') }} | {{ t('admin.cpHotHits') }} | {{ t('admin.cpActive') }} | |
|---|---|---|---|---|
| {{ h.hits||0 }} | ||||
| {{ t('admin.cpHotEmpty') }} | ||||
| # | {{ t('admin.cpLogKw') }} | {{ t('admin.cpLogPlatform') }} | {{ t('admin.cpLogChannel') }} | {{ t('admin.cpLogResult') }} | {{ t('admin.cpLogDegraded') }} | {{ t('admin.cpLogIp') }} | {{ t('admin.cpLogTime') }} |
|---|---|---|---|---|---|---|---|
| {{ l.id }} | {{ cpPlatLabel(l.platform) }} | {{ l.channel_code||'-' }} | {{ l.result_count||0 }} | {{ l.degraded?t('admin.cpYes'):t('admin.cpNo') }} | {{ l.ip||'-' }} | {{ l.created_at||'' }} | |
| {{ cpLogLoading?'...':t('admin.cpLogEmpty') }} | |||||||
| {{ t('admin.rbColUser') }} | {{ t('admin.rbColPlat') }} | {{ t('admin.rbColOrder') }} | {{ t('admin.rbColTitle') }} | {{ t('admin.rbColCommission') }} | {{ t('admin.rbColShare') }} | {{ t('admin.rbColUserAmt') }} | {{ t('admin.rbColStatus') }} | {{ t('admin.rbColAttr') }} | {{ t('rb.colEstimate') }} | {{ t('time') }} | {{ t('admin.cpActions') }} |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ o.user_name }} | {{ o.platform }} | ¥{{ cpMoney(o.commission_amount) }} | ¥{{ cpMoney(o.platform_share) }} | ¥{{ cpMoney(o.user_amount) }} | {{ t('admin.rbSt'+o.status) }} | {{ o.user_id>0 ? t('admin.rbAttr'+o.attribution) : t('admin.rbAttrNone') }} | {{ o.estimate_settle_at || '-' }} | {{ o.created_at }} |
|
||
| {{ t('admin.rbOrderEmpty') }} | |||||||||||
| {{ t('admin.rbColWdNo') }} | {{ t('admin.rbColUser') }} | {{ t('admin.rbColAmount') }} | {{ t('admin.rbColFee') }} | {{ t('admin.rbColActual') }} | {{ t('admin.rbColMethod') }} | {{ t('admin.rbColAccount') }} | {{ t('admin.rbColStatus') }} | {{ t('time') }} | {{ t('admin.cpActions') }} |
|---|---|---|---|---|---|---|---|---|---|
| {{ w.user_name }} | ¥{{ cpMoney(w.amount) }} | ¥{{ cpMoney(w.fee) }} | ¥{{ cpMoney(w.actual_amount) }} | {{ w.method_label }} | {{ t('admin.rbWd'+w.status) }} | {{ w.created_at }} |
|
||
| {{ t('admin.rbWdEmpty') }} | |||||||||
| {{ t('admin.rbColUser') }} | {{ t('admin.rbAvailable') }} | {{ t('admin.rbFrozen') }} | {{ t('admin.rbPending') }} | {{ t('admin.rbTotalIncome') }} | {{ t('admin.rbTotalWd') }} | {{ t('admin.cpActions') }} |
|---|---|---|---|---|---|---|
| {{ a.user_name }} #{{ a.user_id }} | ¥{{ cpMoney(a.available_cny) }} | ¥{{ cpMoney(a.frozen_cny) }} | ¥{{ cpMoney(a.pending_cny) }} | ¥{{ cpMoney(a.total_income_cny) }} | ¥{{ cpMoney(a.total_withdrawn_cny) }} | |
| {{ t('admin.rbAccEmpty') }} | ||||||
| ID | {{ t('admin.agAUser') }} | {{ t('admin.agAContact') }} | {{ t('admin.agAChannel') }} | {{ t('admin.agAStatus') }} | {{ t('time') }} | {{ t('admin.cpActions') }} |
|---|---|---|---|---|---|---|
| {{ a.id }} | {{ a.nickname||a.email }} | {{ t('admin.agASt'+a.status) }} | {{ a.applied_at }} |
|
||
| {{ t('admin.agAEmpty') }} | ||||||
| ID | {{ t('admin.agAUser') }} | {{ t('admin.agAContact') }} | {{ t('admin.agAChannel') }} | {{ t('admin.agAShareOrders') }} | {{ t('admin.agAShareCommission') }} | {{ t('admin.agAShareIncome') }} | {{ t('admin.cpActions') }} |
|---|---|---|---|---|---|---|---|
| {{ g.id }} | {{ g.nickname||g.email }} | {{ g.share_orders }} | ¥{{ cpMoney(g.share_commission) }} | ¥{{ cpMoney(g.share_income) }} |
|
||
| {{ t('admin.agAAgentsEmpty') }} | |||||||
| ID | {{ t('admin.agAUser') }} | {{ t('admin.agAContact') }} | {{ t('admin.agAChannel') }} | {{ t('admin.agAHistoryPerf') }} | {{ t('admin.agACancelReason') }} | {{ t('admin.agACancelledAt') }} | {{ t('admin.cpActions') }} |
|---|---|---|---|---|---|---|---|
| {{ c.id }} | {{ c.nickname||c.email }} | {{ c.share_orders }} 单 / ¥{{ cpMoney(c.share_commission) }} | {{ c.cancelled_at }} |
|
|||
| {{ t('admin.agACancelledEmpty') }} | |||||||
| # | {{ t('admin.trUser') }} | {{ t('cd.tfName') }} | {{ t('cd.tfMode') }} | {{ t('admin.trRoute') }} | {{ t('cd.tfProgress') }} | {{ t('cd.tfStatus') }} | {{ t('created') }} | |
|---|---|---|---|---|---|---|---|---|
| {{ adTr.loading?'...':t('admin.trNo') }} | ||||||||
| {{ task.id }} | {{ task.user_nickname||task.user_email||('-'+task.user_id) }} {{ task.user_email }} |
{{ cdProviderLabel(task.source_provider) }} → {{ cdProviderLabel(task.target_provider) }} |
{{ (task.success||0)+' / '+(task.total||0) }} · {{ fmtBytes(task.bytes||0) }}/{{ fmtBytes(task.total_bytes) }}
|
{{ task.created_at||'' }} | ||||
| {{ t('cd.tfName') }} | {{ t('cd.tfProgress') }} | {{ t('cd.tfStatus') }} |
|---|---|---|
{{ fmtBytes(it.bytes||0) }}/{{ fmtBytes(it.size) }}{{ fmtBytes(it.bytes||0) }} · {{ t('cd.tfItA') }}{{ it.attempts||0 }} · {{ it.error }} |
-
|
|
| - | ||
{{ t('admin.dashTrend') }}
{{ t('admin.dashShare') }}
- {{ s.pct }}%
{{ t('admin.dashTopModel') }}
{{ dashMetric==='cost' ? '¥' : '' }}{{ t('admin.dashBy') }}{{ dashMetric==='calls'?t('admin.colCalls'):(dashMetric==='tokens'?'Tokens':t('costLabel')) }}{{ t('admin.dashTopUser') }}
- {{ i+1 }} {{ u.user||'—' }} {{ fmtCompact(u.calls||0) }} {{ t('admin.colCalls') }}
{{ t('admin.dashMargin') }}
{{ adminMargin.days||30 }} {{ t('admin.dashDays') }} · {{ t('admin.aiMarkup') }} ×{{ adminMargin.markup||1.05 }}| {{ t('admin.colModel') }} | {{ t('admin.colCalls') }} | {{ t('admin.mgInTok') }} | {{ t('admin.mgInjTok') }} | {{ t('admin.mgOutTok') }} | {{ t('admin.mgBilled') }} | {{ t('admin.mgCost') }} | {{ t('admin.mgGross') }} | {{ t('admin.mgRate') }} | {{ t('admin.mgPerCall') }} | {{ t('admin.modStatus') }} |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ m.model }} | {{ fmtCompact(m.calls) }} | {{ fmtCompact(m.in_tok) }} | {{ m.overhead>0?fmtCompact(m.injected_tok):'—' }} | {{ fmtCompact(m.out_tok) }} | ¥{{ fmtMoney(m.billed) }} | {{ m.cost===null?'—':'¥'+fmtMoney(m.cost) }} | {{ m.gross===null?'—':(m.gross<0?'-¥':'¥')+fmtMoney(Math.abs(m.gross)) }} | {{ m.rate===null?'—':m.rate+'%' }} | {{ m.per_call>0?'¥'+fmtMoney(m.per_call):'—' }} | |
| {{ t('admin.mgTotal') }} | {{ fmtCompact(adminMargin.total.calls||0) }} | ¥{{ fmtMoney(adminMargin.total.injected_cost||0) }} | ¥{{ fmtMoney(adminMargin.total.billed||0) }} | ¥{{ fmtMoney(adminMargin.total.cost||0) }} | ¥{{ fmtMoney(adminMargin.total.gross||0) }} | {{ adminMargin.total.rate===null?'—':adminMargin.total.rate+'%' }} |
{{ dashTip.val }}
{{ t('admin.shareTrend') }}
{{ t('admin.shareChannelDist') }}
{{ t('admin.shareTopPages') }}
{{ t('admin.shareReferer') }}
{{ t('admin.shareConfig') }}
{{ t('admin.shareConfigTip') }}{{ t('admin.shareLogs') }}
| {{ t('admin.shareColTime') }} | {{ t('admin.shareColMod') }} | {{ t('admin.shareColCh') }} | {{ t('admin.shareColAct') }} | {{ t('admin.shareColPage') }} | {{ t('admin.shareColSrc') }} | {{ t('admin.shareColIp') }} |
|---|---|---|---|---|---|---|
| {{ String(r.created_at||'').replace('T',' ').slice(0,16) }} | {{ r.module }} | {{ r.channel }} | {{ r.action==='share'?t('admin.shareJump'):t('admin.shareClick') }} | {{ r.ip }} |
{{ t('titleApi') }}
| {{ e.m }} | {{ e.p }} | {{ t(e.dk) }} |
curl {{ host }}/api/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"你好"}],"stream":true}'
const res = await fetch('{{ host }}/api/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-xxx'
},
body: JSON.stringify({
model: 'gpt-4o-mini',
messages: [{ role: 'user', content: '你好' }],
stream: true
})
});
from openai import OpenAI
client = OpenAI(
base_url="{{ host }}/api/v1",
api_key="sk-xxx"
)
r = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "你好"}]
)
print(r.choices[0].message.content)
| {{ t('modelLabel') }} | {{ t('latencyLabel') }} | {{ t('tokensLabel') }} | {{ t('costLabel') }} | {{ t('status') }} | {{ t('time') }} |
|---|---|---|---|---|---|
| {{ l.model_name }} | {{ l.latency_ms }}ms | {{ l.total_tokens }} | ¥{{ l.cost_amount }} | {{ l.status==='success' ? t('success') : t('failed') }} | {{ formatDate(l.created_at) }} |