From 25971ce968a1a25273e90838aa18fa77a0e8b622 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 06 五月 2026 16:20:17 +0800
Subject: [PATCH] #地图保存优化
---
src/main/java/com/zy/system/controller/DashboardController.java | 52 +++++++++++++++++++++-------------------------------
1 files changed, 21 insertions(+), 31 deletions(-)
diff --git a/src/main/java/com/zy/system/controller/DashboardController.java b/src/main/java/com/zy/system/controller/DashboardController.java
index 989f8c7..974bfce 100644
--- a/src/main/java/com/zy/system/controller/DashboardController.java
+++ b/src/main/java/com/zy/system/controller/DashboardController.java
@@ -5,10 +5,12 @@
import com.core.common.R;
import com.zy.ai.entity.AiAutoTuneJob;
import com.zy.ai.entity.AiChatSession;
+import com.zy.ai.entity.AiTokenUsage;
import com.zy.ai.entity.LlmCallLog;
import com.zy.ai.entity.LlmRouteConfig;
import com.zy.ai.enums.AiPromptScene;
import com.zy.ai.mapper.AiChatSessionMapper;
+import com.zy.ai.mapper.AiTokenUsageMapper;
import com.zy.ai.service.AiAutoTuneJobService;
import com.zy.ai.service.LlmCallLogService;
import com.zy.ai.service.LlmRouteConfigService;
@@ -65,6 +67,8 @@
private AiAutoTuneJobService aiAutoTuneJobService;
@Autowired
private AiChatSessionMapper aiChatSessionMapper;
+ @Autowired
+ private AiTokenUsageMapper aiTokenUsageMapper;
@Autowired
private DevicePingFileStorageService devicePingFileStorageService;
@@ -327,49 +331,37 @@
private Map<String, Object> buildAiStats() {
Map<String, Object> result = new LinkedHashMap<>();
+ // 浠庣嫭绔嬬疮璁¤〃璇诲彇 token 缁熻
long tokenTotal = 0L;
long promptTokenTotal = 0L;
long completionTokenTotal = 0L;
+ long llmCallCountTotal = 0L;
+ try {
+ AiTokenUsage tokenUsage = aiTokenUsageMapper.selectById(1);
+ if (tokenUsage != null) {
+ promptTokenTotal = safeCount(tokenUsage.getPromptTokens());
+ completionTokenTotal = safeCount(tokenUsage.getCompletionTokens());
+ tokenTotal = safeCount(tokenUsage.getTotalTokens());
+ llmCallCountTotal = safeCount(tokenUsage.getLlmCallCount());
+ }
+ } catch (Exception e) {
+ log.warn("dashboard ai token usage load failed: {}", safeMessage(e));
+ }
+
+ // 浼氳瘽缁熻锛堜繚鐣欑敤浜庢樉绀轰細璇濇暟鍜屾彁闂疆娆★級
long askCount = 0L;
long sessionCount = 0L;
- long autoTunePromptTokenTotal = 0L;
- long autoTuneCompletionTokenTotal = 0L;
- long autoTuneTokenTotal = 0L;
try {
List<AiChatSession> sessions = aiChatSessionMapper.selectList(new QueryWrapper<AiChatSession>()
- .select("id", "sum_prompt_tokens", "sum_completion_tokens", "sum_total_tokens", "ask_count"));
+ .select("id", "ask_count"));
sessionCount = sessions == null ? 0L : sessions.size();
if (sessions != null) {
for (AiChatSession session : sessions) {
- promptTokenTotal += safeCount(session == null ? null : session.getSumPromptTokens());
- completionTokenTotal += safeCount(session == null ? null : session.getSumCompletionTokens());
- tokenTotal += safeCount(session == null ? null : session.getSumTotalTokens());
askCount += safeCount(session == null ? null : session.getAskCount());
}
}
} catch (Exception e) {
log.warn("dashboard ai session stats load failed: {}", safeMessage(e));
- }
-
- try {
- List<Map<String, Object>> autoTuneRows = aiAutoTuneJobService.listMaps(new QueryWrapper<AiAutoTuneJob>()
- .select("COALESCE(SUM(prompt_tokens), 0) AS prompt_token_total",
- "COALESCE(SUM(completion_tokens), 0) AS completion_token_total",
- "COALESCE(SUM(total_tokens), 0) AS token_total")
- .eq("prompt_scene_code", AiPromptScene.AUTO_TUNE_DISPATCH.getCode()));
- Map<String, Object> autoTuneRow = autoTuneRows == null || autoTuneRows.isEmpty()
- ? Collections.emptyMap()
- : autoTuneRows.get(0);
- autoTunePromptTokenTotal = toLong(autoTuneRow.get("prompt_token_total"));
- autoTuneCompletionTokenTotal = toLong(autoTuneRow.get("completion_token_total"));
- autoTuneTokenTotal = toLong(autoTuneRow.get("token_total"));
-
- // Agent 鑷姩璋冨弬涓嶇敓鎴� sys_ai_chat_session锛屼細鍗曠嫭钀藉埌 sys_ai_auto_tune_job銆�
- promptTokenTotal += autoTunePromptTokenTotal;
- completionTokenTotal += autoTuneCompletionTokenTotal;
- tokenTotal += autoTuneTokenTotal;
- } catch (Exception e) {
- log.warn("dashboard ai auto tune token stats load failed: {}", safeMessage(e));
}
List<LlmRouteConfig> routes = Collections.emptyList();
@@ -444,9 +436,7 @@
overview.put("tokenTotal", tokenTotal);
overview.put("promptTokenTotal", promptTokenTotal);
overview.put("completionTokenTotal", completionTokenTotal);
- overview.put("autoTuneTokenTotal", autoTuneTokenTotal);
- overview.put("autoTunePromptTokenTotal", autoTunePromptTokenTotal);
- overview.put("autoTuneCompletionTokenTotal", autoTuneCompletionTokenTotal);
+ overview.put("llmCallCountTotal", llmCallCountTotal);
overview.put("askCount", askCount);
overview.put("sessionCount", sessionCount);
overview.put("routeTotal", routeTotal);
--
Gitblit v1.9.1