- {activeLabel} -
-- 集中管理渠道、模型、令牌与使用情况。 -
-+ {activeLabel} +
++ 集中管理渠道、模型、令牌与使用情况。 +
+diff --git a/apps/ui/src/features/AppLayout.tsx b/apps/ui/src/features/AppLayout.tsx index 72339ca..967ec4a 100644 --- a/apps/ui/src/features/AppLayout.tsx +++ b/apps/ui/src/features/AppLayout.tsx @@ -29,62 +29,122 @@ export const AppLayout = ({ onTabChange, onLogout, children, -}: AppLayoutProps) => ( -
- 集中管理渠道、模型、令牌与使用情况。 -
-+ 集中管理渠道、模型、令牌与使用情况。 +
++ {channel.name} +
++ {channel.base_url} +
+| - 日期 - | -- 请求 - | -- Tokens - | -||||||
|---|---|---|---|---|---|---|---|---|
| - {row.day} - | -- {row.requests} - | -- {row.tokens} - | +
| + 日期 + | ++ 请求 + | ++ Tokens + |
|---|
| - 模型 - | -- 请求 - | -- Tokens - | -||||||
|---|---|---|---|---|---|---|---|---|
| - {row.model ?? "-"} - | -- {row.requests} - | -- {row.tokens} - | +
| + 模型 + | ++ 请求 + | ++ Tokens + |
|---|
| - 渠道 - | -- 请求 - | -- Tokens - | -||||||
|---|---|---|---|---|---|---|---|---|
| - {row.channel_name ?? "-"} - | -- {row.requests} - | -- {row.tokens} - | +
| + 渠道 + | ++ 请求 + | ++ Tokens + |
|---|
| - 令牌 - | -- 请求 - | -- Tokens - | -||||||
|---|---|---|---|---|---|---|---|---|
| - {row.token_name ?? "-"} - | -- {row.requests} - | -- {row.tokens} - | +
| + 令牌 + | ++ 请求 + | ++ Tokens + |
|---|
| - 模型 - | -- 渠道 - | -||||
|---|---|---|---|---|---|
| - {model.id} - | -- {model.channels.map((channel) => channel.name).join(" / ")} - | +
| + 模型 + | ++ 渠道 + |
|---|
+ {tokenItem.name} +
++ 前缀 {tokenItem.key_prefix ?? "-"} +
+已用/额度
++ {tokenItem.quota_used} /{" "} + {tokenItem.quota_total ?? "∞"} +
+创建时间
++ {formatDateTime(tokenItem.created_at)} +
+| + | 时间 | -+ | 模型 | -+ | 渠道 | -+ | 令牌 | -+ | 输入 Tokens | -+ | 输出 Tokens | -+ | 用时 | -+ | 首 token 延迟 | -+ | 流式 | -+ | 推理强度 | -+ | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + | {formatDateTime(log.created_at)} | -+ | {log.model ?? "-"} | -+ | {log.channel_name ?? log.channel_id ?? "-"} | -+ | {log.token_name ?? log.token_id ?? "-"} | -+ | {formatTokens(log.prompt_tokens)} | -+ | {formatTokens(log.completion_tokens)} | -+ | {formatSeconds(log.latency_ms)} | -+ | {formatSeconds(log.first_token_latency_ms)} | -+ | {formatStream(log.stream)} | -+ | {log.reasoning_effort ?? "-"} | -+ | {log.status} |