Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions web/src/components/table/usage-logs/UsageLogsColumnDefs.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -832,6 +832,38 @@ export const getLogsColumns = ({
);
},
},
{
key: COLUMN_KEYS.SPEED,
title: (
<div className='flex items-center gap-1'>
{t('速度')}
<Tooltip
content={t(
'输出速度 (tokens/s) = 输出 tokens / (总耗时 - 首字耗时)',
)}
>
<IconHelpCircle className='text-gray-400 cursor-help' />
</Tooltip>
</div>
),
dataIndex: 'speed',
render: (text, record, index) => {
if (
!(
record.type === 0 ||
record.type === 2 ||
record.type === 5 ||
record.type === 6
)
) {
return <></>;
}
if (!text || text <= 0) {
return <span style={{ color: 'var(--semi-color-text-2)' }}>-</span>;
}
return <>{text.toFixed(1)}</>;
},
},
{
key: COLUMN_KEYS.COST,
title: t('花费'),
Expand Down
7 changes: 7 additions & 0 deletions web/src/hooks/usage-logs/useUsageLogsData.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ export const useLogsData = () => {
USE_TIME: 'use_time',
PROMPT: 'prompt',
COMPLETION: 'completion',
SPEED: 'speed',
COST: 'cost',
RETRY: 'retry',
IP: 'ip',
Expand Down Expand Up @@ -120,6 +121,7 @@ export const useLogsData = () => {
[COLUMN_KEYS.USE_TIME]: true,
[COLUMN_KEYS.PROMPT]: true,
[COLUMN_KEYS.COMPLETION]: true,
[COLUMN_KEYS.SPEED]: true,
[COLUMN_KEYS.COST]: true,
[COLUMN_KEYS.RETRY]: isAdminUser,
[COLUMN_KEYS.IP]: true,
Expand Down Expand Up @@ -380,6 +382,11 @@ export const useLogsData = () => {
logs[i].timestamp2string = timestamp2string(logs[i].created_at);
logs[i].key = logs[i].id;
let other = getLogOther(logs[i].other);
const useTime = logs[i].use_time;
const frtSec = (other?.frt || 0) / 1000;
const genTime = useTime - frtSec;
const ct = logs[i].completion_tokens || 0;
logs[i].speed = genTime > 0 && ct > 0 ? ct / genTime : 0;
let expandDataLocal = [];

if (isAdminUser && (logs[i].type === 0 || logs[i].type === 2 || logs[i].type === 6)) {
Expand Down
2 changes: 2 additions & 0 deletions web/src/i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -2304,6 +2304,8 @@
"用户账户创建成功!": "User account created successfully!",
"用户账户管理": "User account management",
"用时/首字": "Time/first word",
"速度": "Speed",
"输出速度 (tokens/s) = 输出 tokens / (总耗时 - 首字耗时)": "Output speed (tokens/s) = output tokens / (total time - time to first token)",
"由全站货币展示设置统一控制": "Controlled by the site-wide currency display settings",
"由管理员分配,决定用户身份等级(如 default、vip)。": "Assigned by admin, determines user tier (e.g., default, vip).",
"由订阅抵扣": "Deducted by subscription",
Expand Down
2 changes: 2 additions & 0 deletions web/src/i18n/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -2279,6 +2279,8 @@
"用户账户创建成功!": "Compte utilisateur créé avec succès !",
"用户账户管理": "Comptes utilisateurs",
"用时/首字": "Temps/premier mot",
"速度": "Vitesse",
"输出速度 (tokens/s) = 输出 tokens / (总耗时 - 首字耗时)": "Vitesse de sortie (tokens/s) = tokens de sortie / (temps total - temps du premier token)",
"由全站货币展示设置统一控制": "Contrôlé par les paramètres globaux d'affichage des devises",
"由管理员分配,决定用户身份等级(如 default、vip)。": "Assigned by admin, determines user tier (e.g., default, vip).",
"由订阅抵扣": "Déduit par l'abonnement",
Expand Down
2 changes: 2 additions & 0 deletions web/src/i18n/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -2262,6 +2262,8 @@
"用户账户创建成功!": "ユーザーアカウントの作成に成功しました",
"用户账户管理": "ユーザーアカウント管理",
"用时/首字": "所要時間 / 初回トークン",
"速度": "速度",
"输出速度 (tokens/s) = 输出 tokens / (总耗时 - 首字耗时)": "出力速度 (tokens/s) = 出力 tokens / (合計時間 - 初回トークン時間)",
"由全站货币展示设置统一控制": "サイト全体の通貨表示設定で統一して管理",
"由管理员分配,决定用户身份等级(如 default、vip)。": "管理者が割り当て、ユーザーの等級を決定します(例:default、vip)。",
"由订阅抵扣": "サブスクリプションで相殺",
Expand Down
2 changes: 2 additions & 0 deletions web/src/i18n/locales/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -2291,6 +2291,8 @@
"用户账户创建成功!": "Аккаунт пользователя создан успешно!",
"用户账户管理": "Управление аккаунтами пользователей",
"用时/首字": "Время/первый символ",
"速度": "Скорость",
"输出速度 (tokens/s) = 输出 tokens / (总耗时 - 首字耗时)": "Скорость вывода (tokens/s) = токены вывода / (общее время - время до первого токена)",
"由全站货币展示设置统一控制": "Управляется глобальными настройками отображения валюты",
"由管理员分配,决定用户身份等级(如 default、vip)。": "Assigned by admin, determines user tier (e.g., default, vip).",
"由订阅抵扣": "Списано по подписке",
Expand Down
2 changes: 2 additions & 0 deletions web/src/i18n/locales/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -2444,6 +2444,8 @@
"用户额度": "Hạn ngạch người dùng",
"用户额度设置": "Cài đặt hạn ngạch người dùng",
"用时/首字": "Thời gian/từ đầu tiên",
"速度": "Tốc độ",
"输出速度 (tokens/s) = 输出 tokens / (总耗时 - 首字耗时)": "Tốc độ đầu ra (tokens/s) = tokens đầu ra / (tổng thời gian - thời gian token đầu tiên)",
"用途": "Mục đích",
"由全站货币展示设置统一控制": "Được điều khiển bởi cài đặt hiển thị tiền tệ toàn site",
"由管理员分配,决定用户身份等级(如 default、vip)。": "Assigned by admin, determines user tier (e.g., default, vip).",
Expand Down
2 changes: 2 additions & 0 deletions web/src/i18n/locales/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -1710,6 +1710,8 @@
"用户账户创建成功!": "用户账户创建成功!",
"用户账户管理": "用户账户管理",
"用时/首字": "用时/首字",
"速度": "速度",
"输出速度 (tokens/s) = 输出 tokens / (总耗时 - 首字耗时)": "输出速度 (tokens/s) = 输出 tokens / (总耗时 - 首字耗时)",
"留空则使用账号绑定的邮箱": "留空则使用账号绑定的邮箱",
"留空则使用默认端点;支持 {path, method}": "留空则使用默认端点;支持 {path, method}",
"留空则默认使用服务器地址,注意不能携带http://或者https://": "留空则默认使用服务器地址,注意不能携带http://或者https://",
Expand Down
2 changes: 2 additions & 0 deletions web/src/i18n/locales/zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -2031,6 +2031,8 @@
"用户账户创建成功!": "使用者帳號建立成功!",
"用户账户管理": "使用者帳號管理",
"用时/首字": "用時/首字",
"速度": "速度",
"输出速度 (tokens/s) = 输出 tokens / (总耗时 - 首字耗时)": "輸出速度 (tokens/s) = 輸出 tokens / (總耗時 - 首字耗時)",
"由全站货币展示设置统一控制": "由全站貨幣展示設定統一控制",
"由管理员分配,决定用户身份等级(如 default、vip)。": "由管理員分配,決定使用者身份等級(如 default、vip)。",
"由订阅抵扣": "由訂閱抵扣",
Expand Down