diff --git a/src/plugins/utils/statistic.py b/src/plugins/utils/statistic.py index 4c11ba3d8..6a0b95964 100644 --- a/src/plugins/utils/statistic.py +++ b/src/plugins/utils/statistic.py @@ -109,13 +109,13 @@ def _format_online_time(online_seconds: int) -> str: minutes = (total_oneline_time.seconds // 60) % 60 seconds = total_oneline_time.seconds % 60 if days > 0: - # 如果在线时间超过1天,则格式化为“X天X小时X分钟” + # 如果在线时间超过1天,则格式化为"X天X小时X分钟" total_oneline_time_str = f"{total_oneline_time.days}天{hours}小时{minutes}分钟{seconds}秒" elif hours > 0: - # 如果在线时间超过1小时,则格式化为“X小时X分钟X秒” + # 如果在线时间超过1小时,则格式化为"X小时X分钟X秒" total_oneline_time_str = f"{hours}小时{minutes}分钟{seconds}秒" else: - # 其他情况格式化为“X分钟X秒” + # 其他情况格式化为"X分钟X秒" total_oneline_time_str = f"{minutes}分钟{seconds}秒" return total_oneline_time_str @@ -151,7 +151,7 @@ class StatisticOutputTask(AsyncTask): local_storage["deploy_time"] = now.timestamp() self.stat_period: List[Tuple[str, timedelta, str]] = [ - ("all_time", now - deploy_time, "自部署以来"), # 必须保留“all_time” + ("all_time", now - deploy_time, "自部署以来"), # 必须保留"all_time" ("last_7_days", timedelta(days=7), "最近7天"), ("last_24_hours", timedelta(days=1), "最近24小时"), ("last_hour", timedelta(hours=1), "最近1小时"), @@ -511,37 +511,64 @@ class StatisticOutputTask(AsyncTask): """ # format总在线时间 + # 按模型分类统计 + model_rows = "\n".join([ + f"
+
统计时段: {start_time.strftime("%Y-%m-%d %H:%M:%S")} ~ {now.strftime("%Y-%m-%d %H:%M:%S")}
-总在线时间: {_format_online_time(stat_data[ONLINE_TIME])}
-总消息数: {stat_data[TOTAL_MSG_CNT]}
-总请求数: {stat_data[TOTAL_REQ_CNT]}
-总花费: {stat_data[TOTAL_COST]:.4f} ¥
+总在线时间: {_format_online_time(stat_data[ONLINE_TIME])}
+总消息数: {stat_data[TOTAL_MSG_CNT]}
+总请求数: {stat_data[TOTAL_REQ_CNT]}
+总花费: {stat_data[TOTAL_COST]:.4f} ¥
| 模型名称 | 调用次数 | 输入Token | 输出Token | Token总量 | 累计花费 |
|---|---|---|---|---|---|
| {model_name} | " - f"{count} | " - f"{stat_data[IN_TOK_BY_MODEL][model_name]} | " - f"{stat_data[OUT_TOK_BY_MODEL][model_name]} | " - f"{stat_data[TOTAL_TOK_BY_MODEL][model_name]} | " - f"{stat_data[COST_BY_MODEL][model_name]:.4f} ¥ | " - f"
统计截止时间: {now.strftime("%Y-%m-%d %H:%M:%S")}