{{t('suppliers.title')}}
{{t('suppliers.list')}}
| {{t('suppliers.name')}} | {{t('suppliers.userId')}} | {{t('suppliers.email')}} | {{t('suppliers.payment')}} | {{t('common.status')}} | {{t('common.actions')}} | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{s.name}} | {{s.user_id||'-'}} | {{s.email||'-'}} |
{{displayPaymentMethod(s.payment_method)}}
{{s.payment_name || t('suppliers.paymentNameMissing')}}
{{s.payment_info || t('suppliers.paymentAccountMissing')}}
|
{{supplierStatusLabel(s.status)}} | |||||||||||||||||||
|
|||||||||||||||||||||||
| {{t('common.empty')}} | |||||||||||||||||||||||
{{t('suppliers.codexList')}}
| {{t('accounts.billingModel')}} | {{t('accounts.billingInput')}}{{t('accounts.billingPer')}} | {{t('accounts.billingCached')}}{{t('accounts.billingPer')}} | {{t('accounts.billingOutput')}}{{t('accounts.billingPer')}} |
|---|---|---|---|
| GPT-5.5 {{t('accounts.billingCredit')}} | 125 credits | 12.50 credits | 750 credits |
| GPT-5.5 {{t('accounts.billingMetered')}} | US$5.00 | US$0.50 | US$30.00 |
| {{t('accounts.nameId')}} | {{t('accounts.status')}} | {{t('accounts.plan')}} | {{t('accounts.quotaRemain')}} 5h / {{t('accounts.winWeek')}} |
{{t('accounts.creditUsage')}} 5h / {{t('accounts.win7d')}} |
{{t('accounts.cost')}} 5h / {{t('accounts.win7d')}} |
{{t('accounts.resetTime')}} 5h / {{t('accounts.winWeek')}} |
{{t('accounts.email')}} | {{t('accounts.concurrencyRpm')}} | {{t('accounts.limit')}} 5h / {{t('accounts.winWeek')}} |
{{t('accounts.health')}} | {{t('accounts.lastRequest')}} | {{t('accounts.createdAt')}} | {{t('accounts.actions')}} |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
{{a.Name||'-'}}
{{(a.ID||'').slice(0,8)}}…
|
{{displayStatusText(a)}}{{t('accounts.reauthDetailBtn')}} |
{{a.PlanType||'-'}}
{{fmtPlanExpire(a.PlanExpiresAt)}}
|
{{fmtRemain(a.PrimaryUsedPct, a.PrimaryWindowMins)}}
{{fmtRemain(a.SecondaryUsedPct, a.SecondaryWindowMins)}}
|
{{fmtAccCredit(a, 'h5')}}
{{fmtAccCredit(a, 'd7')}}
|
{{fmtAccCost(a, 'h5')}}
{{fmtAccCost(a, 'd7')}}
{{ expandedCost[a.ID] ? '收起' : '明细' }}
5h 输入 {{accUsageDetail(a,'h5').nonCached}} · 缓存 {{accUsageDetail(a,'h5').cached}} · 输出 {{accUsageDetail(a,'h5').output}}
7天 输入 {{accUsageDetail(a,'d7').nonCached}} · 缓存 {{accUsageDetail(a,'d7').cached}} · 输出 {{accUsageDetail(a,'d7').output}}
|
{{fmtTime(a.PrimaryResetsAt)}}
{{fmtTime(a.SecondaryResetsAt)}}
|
{{a.Email||'-'}} | {{a.MaxConcurrency}}/{{a.MaxRPM}} |
{{ effCycleLimit(a) }}%{{ isCycleLimitGlobal(a) ? ' (全局)' : '' }} [{{ cycleLimitRange(a) }}]
{{ effWeeklyLimit(a) }}%{{ isWeeklyLimitGlobal(a) ? ' (全局)' : '' }} [{{ weeklyLimitRange(a) }}]
|
{{(a.HealthScore||0).toFixed(2)}} | {{fmtTime(a.LastRequestAt)}} | {{fmtTime(a.CreatedAt)}} | |
| {{t('accounts.empty')}} | |||||||||||||
{{t('audit.title')}}
| {{t('audit.time')}} | {{t('audit.action')}} | {{t('audit.supplier')}} | {{t('audit.account')}} | {{t('audit.accountId')}} | {{t('audit.operator')}} | {{t('audit.detail')}} |
|---|---|---|---|---|---|---|
| {{fmtTimeFull(log.created_at)}} | {{auditActionLabel(log.action)}} | {{ log.owner_type==='admin' ? t('suppliers.adminOwned') : (log.supplier_name || log.owner_user_id || '-') }} | {{log.account_name || '-'}} | {{log.account_id || '-'}} | {{log.operator || '-'}} | {{log.detail || '-'}} |
| {{t('audit.empty')}} | ||||||
模拟对话测试
API Key
申请测试 API Key
无需选择套餐或支付,输入名称即可获取用于模拟测试的永久 API Key。
已有 API Key 列表
| 名称 | API Key | 操作 |
|---|---|---|
| {{k.name}} | {{k.api_key}} | |
| 暂无数据 | ||
{{t('suppliers.planRevenue')}}
| {{t('suppliers.planType')}} | {{t('suppliers.dailyAmount')}} | {{t('suppliers.enabled')}} |
|---|---|---|
| {{planLabel(r.plan_type)}} | {{t('suppliers.amountUnit')}} | |
| {{t('common.empty')}} | ||
{{t('suppliers.revenueHint')}}
{{t('nav.systemSettings')}}
{{t('adminUsers.title')}}
{{t('adminUsers.tip')}}
| {{t('adminUsers.email')}} | {{t('adminUsers.userId')}} | {{t('adminUsers.bindStatus')}} | {{t('adminUsers.note')}} | {{t('common.actions')}} |
|---|---|---|---|---|
| {{u.email}} | {{u.user_id||'-'}} | {{u.user_id ? t('adminUsers.bound') : t('adminUsers.pending')}} | {{u.note||'-'}} | |
| {{t('common.empty')}} | ||||
{{t('alerts.title')}}
{{t('alerts.tip')}}
| {{t('alerts.name')}} | {{t('alerts.cycleType')}} | {{t('alerts.threshold')}} | {{t('alerts.level')}} | {{t('alerts.webhook')}} | {{t('alerts.enabled')}} | {{t('common.actions')}} |
|---|---|---|---|---|---|---|
| {{r.name}} | {{alertCycleLabel(r.cycle_type)}} | {{alertThresholdLabel(r)}} | {{alertLevelLabel(r.level)}} | {{(r.webhook_url||'').slice(0,28)}}… | {{r.enabled ? t('common.enable') : t('common.disable')}} | |
| {{t('common.empty')}} | ||||||
周期用量历史
历史查询
| 账号 | 状态 | 周期类型 | 开始时间(本地) | 结束时间(本地) | 使用 Credit | 输入 Token | 缓存 Token | 输出 Token | 使用百分比 | 套餐 (倍数) | 周期总 Credit 估算 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{accountName(h.AccountID)}} | 进行中 已结束 | {{h.CycleType==='5h' ? '5h 短周期' : (h.CycleType==='week' ? '周 长周期' : h.CycleType)}} | {{fmtTime(h.StartAt)}} | {{fmtTime(h.EndAt)}}{{h.InProgress ? '(预计)' : ''}} | {{(Number(h.Credits)||0).toFixed(3)}} | {{(Number(h.InputTokens)||0).toLocaleString()}} | {{(Number(h.CachedTokens)||0).toLocaleString()}} | {{(Number(h.OutputTokens)||0).toLocaleString()}} | {{(Number(h.UsedPct)||0).toFixed(1)}}% | {{h.PlanType||'-'}} ×{{planMultiplier(h.PlanType)}} | {{estCycleCredits(h)!==null ? estCycleCredits(h).toFixed(3) : '-'}} |
| 暂无数据 | |||||||||||
估算公式:周期总 Credit ≈ 使用 Credit ÷ (使用百分比 / 100),为周期内消耗的总量,不再按套餐倍数换算;“套餐 (倍数)”列标注该账号套餐及其计费倍数(prolite = 5,pro = 20,其余 = 1)仅供参考;“进行中”为当前未结束周期的实时值,结束时间为预计重置时间。
错误记录
最近 7 天错误
| 时间(本地) | 账号 | 邮箱 | 方式 | 模型 | 阶段 | 错误类型 | 重试 | 错误信息 |
|---|---|---|---|---|---|---|---|---|
| {{fmtTime(e.CreatedAt)}} | {{accountName(e.AccountID)}} | {{e.Email||'-'}} | {{errMethodText(e.Method)}} | {{e.Model||'-'}} | {{errPhaseText(e.Phase)}} | {{errTypeText(e.ErrorType)}} | {{e.Attempt}} | {{e.ErrorMessage||'-'}} |
| 暂无数据 | ||||||||
错误记录仅保留最近 7 天,过期自动清理。阶段:before-first-byte(首字节前,可换账号重试,客户端通常无感)/ after-first-byte(首字节后,已吐内容无法重试)。
{{t('accounts.mineTitle')}}
{{t('register.title')}}
{{ (mySupplier && mySupplier.registered) ? t('register.registered') : t('register.notRegistered') }}{{t('register.firstName')}} / {{t('register.lastName')}}:{{mySupplier.first_name||'-'}} {{mySupplier.last_name||''}}
{{t('register.country')}}:{{countryDisplay(mySupplier.country)||'-'}}
{{t('register.contactEmail')}}:{{mySupplier.contact_email||'-'}}
{{t('register.paymentMethod')}}:PayPal
{{t('register.paymentName')}}:{{mySupplier.payment_name||'-'}}
{{t('register.paymentInfo')}}:{{mySupplier.payment_info||'-'}}
{{t('register.desc')}}
| {{t('accounts.nameId')}} | {{t('accounts.status')}} | {{t('suppliers.planType')}} | {{t('accounts.createdAt')}} | {{t('accounts.quotaRemain')}} 5h / {{t('accounts.winWeek')}} |
{{t('common.actions')}} |
|---|---|---|---|---|---|
|
{{v.account ? (v.account.Name || '-') : '-'}}
{{v.supplier_account.account_id}}
|
{{displayStatusText(v.account)}} {{t('accounts.reauthDetailBtn')}} - | {{planLabel(v.supplier_account.plan_type || (v.account && v.account.PlanType))}} | {{v.account ? fmtTime(v.account.CreatedAt) : '-'}} |
5h: {{v.account ? fmtRemain(v.account.PrimaryUsedPct, v.account.PrimaryWindowMins) : '-'}}
{{t('accounts.winWeek')}}: {{v.account ? fmtRemain(v.account.SecondaryUsedPct, v.account.SecondaryWindowMins) : '-'}}
|
|
| {{t('common.empty')}} | |||||
{{t('audit.mineTitle')}}
| {{t('audit.time')}} | {{t('audit.action')}} | {{t('audit.account')}} | {{t('audit.accountId')}} | {{t('audit.detail')}} |
|---|---|---|---|---|
| {{fmtTimeFull(log.created_at)}} | {{auditActionLabel(log.action)}} | {{log.account_name || '-'}} | {{log.account_id || '-'}} | {{log.detail || '-'}} |
| {{t('audit.empty')}} | ||||