From d8d82ceda75fa17972d6996f83078367a19c1730 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 12 三月 2026 15:38:32 +0800
Subject: [PATCH] #

---
 src/main/webapp/views/ai/llm_config.html |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/src/main/webapp/views/ai/llm_config.html b/src/main/webapp/views/ai/llm_config.html
index 9ceff36..ba79721 100644
--- a/src/main/webapp/views/ai/llm_config.html
+++ b/src/main/webapp/views/ai/llm_config.html
@@ -436,6 +436,12 @@
       </el-table-column>
       <el-table-column prop="httpStatus" label="鐘舵�佺爜" width="90"></el-table-column>
       <el-table-column prop="latencyMs" label="鑰楁椂(ms)" width="95"></el-table-column>
+      <el-table-column label="Tokens" width="140">
+        <template slot-scope="scope">
+          <div>{{ logTotalTokens(scope.row) }}</div>
+          <div style="color:#909399;font-size:12px;">杈搟{ logPromptTokens(scope.row) }} / 鍑簕{ logCompletionTokens(scope.row) }}</div>
+        </template>
+      </el-table-column>
       <el-table-column prop="traceId" label="TraceId" width="230"></el-table-column>
       <el-table-column label="閿欒" min-width="220">
         <template slot-scope="scope">
@@ -830,6 +836,7 @@
           + '妯″瀷: ' + (row.model || '-') + '\n'
           + '鐘舵�佺爜: ' + (row.httpStatus != null ? row.httpStatus : '-') + '\n'
           + '鑰楁椂: ' + (row.latencyMs != null ? row.latencyMs : '-') + ' ms\n'
+          + 'Tokens: ' + this.logTotalTokens(row) + '锛堣緭' + this.logPromptTokens(row) + ' / 鍑�' + this.logCompletionTokens(row) + '锛塡n'
           + '缁撴灉: ' + (row.success === 1 ? '鎴愬姛' : '澶辫触') + '\n'
           + '閿欒: ' + (row.errorMessage || '-') + '\n\n'
           + '璇锋眰:\n' + (row.requestContent || '-') + '\n\n'
@@ -838,6 +845,27 @@
         this.logDetailText = text;
         this.logDetailVisible = true;
       },
+      parseLogExtra: function(row) {
+        if (!row || !row.extra) return {};
+        if (typeof row.extra === 'object') return row.extra;
+        try {
+          return JSON.parse(row.extra);
+        } catch (e) {
+          return {};
+        }
+      },
+      logPromptTokens: function(row) {
+        var extra = this.parseLogExtra(row);
+        return extra && extra.promptTokens != null ? extra.promptTokens : '-';
+      },
+      logCompletionTokens: function(row) {
+        var extra = this.parseLogExtra(row);
+        return extra && extra.completionTokens != null ? extra.completionTokens : '-';
+      },
+      logTotalTokens: function(row) {
+        var extra = this.parseLogExtra(row);
+        return extra && extra.totalTokens != null ? extra.totalTokens : '-';
+      },
       deleteLog: function(row) {
         var self = this;
         if (!row || !row.id) return;

--
Gitblit v1.9.1