Skip to content

Commit 74b1bce

Browse files
committed
feat: add token usage and top questions statistics retrieval
1 parent 719ba08 commit 74b1bce

File tree

4 files changed

+127
-63
lines changed

4 files changed

+127
-63
lines changed

ui/src/api/application/application.ts

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,26 @@ const getStatistics: (
192192
) => Promise<Result<any>> = (application_id, data, loading) => {
193193
return get(`${prefix.value}/${application_id}/application_stats`, data, loading)
194194
}
195+
/**
196+
* 统计token消耗
197+
*/
198+
const getTokenUsage: (
199+
application_id: string,
200+
data: any,
201+
loading?: Ref<boolean>,
202+
) => Promise<Result<any>> = (application_id, data, loading) => {
203+
return get(`${prefix.value}/${application_id}/application_token_usage`, data, loading)
204+
}
205+
/**
206+
* 统计提问次数
207+
*/
208+
const topQuestions: (
209+
application_id: string,
210+
data: any,
211+
loading?: Ref<boolean>,
212+
) => Promise<Result<any>> = (application_id, data, loading) => {
213+
return get(`${prefix.value}/${application_id}/top_questions`, data, loading)
214+
}
195215
/**
196216
* 打开调试对话id
197217
* @param application_id 应用id
@@ -207,11 +227,11 @@ const open: (application_id: string, loading?: Ref<boolean>) => Promise<Result<s
207227

208228
/**
209229
* 生成提示词
210-
* @param workspace_id
211-
* @param model_id
212-
* @param application_id
213-
* @param data
214-
* @returns
230+
* @param workspace_id
231+
* @param model_id
232+
* @param application_id
233+
* @param data
234+
* @returns
215235
*/
216236
const generate_prompt: (workspace_id:string ,model_id:string, application_id:string,data: any) => Promise<any> = (
217237
workspace_id,
@@ -408,5 +428,7 @@ export default {
408428
speechToText,
409429
getMcpTools,
410430
postUploadFile,
411-
generate_prompt
431+
generate_prompt,
432+
getTokenUsage,
433+
topQuestions
412434
}

ui/src/api/system-resource-management/application.ts

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,23 @@ const getStatistics: (
111111
) => Promise<Result<any>> = (application_id, data, loading) => {
112112
return get(`${prefix}/${application_id}/application_stats`, data, loading)
113113
}
114+
/**
115+
* 统计token消耗
116+
*/
117+
const getTokenUsage: (
118+
application_id: string,
119+
data: any,
120+
loading?: Ref<boolean>,
121+
) => Promise<Result<any>> = (application_id, data, loading) => {
122+
return get(`${prefix}/${application_id}/application_token_usage`, data, loading)
123+
}
124+
const topQuestions: (
125+
application_id: string,
126+
data: any,
127+
loading?: Ref<boolean>,
128+
) => Promise<Result<any>> = (application_id, data, loading) => {
129+
return get(`${prefix}/${application_id}/top_questions`, data, loading)
130+
}
114131
/**
115132
* 打开调试对话id
116133
* @param application_id 应用id
@@ -126,10 +143,10 @@ const open: (application_id: string, loading?: Ref<boolean>) => Promise<Result<s
126143

127144
/**
128145
* 生成提示词
129-
* @param application_id
130-
* @param model_id
131-
* @param data
132-
* @returns
146+
* @param application_id
147+
* @param model_id
148+
* @param data
149+
* @returns
133150
*/
134151
const generate_prompt: (application_id:string, model_id:string, data: any) => Promise<any> = (
135152
application_id,
@@ -174,7 +191,7 @@ const playDemoText: (application_id: string, data: any, loading?: Ref<boolean>)
174191
* 文本转语音
175192
*/
176193
const postTextToSpeech: (
177-
application_id: String,
194+
application_id: string,
178195
data: any,
179196
loading?: Ref<boolean>,
180197
) => Promise<Result<any>> = (application_id, data, loading) => {
@@ -184,7 +201,7 @@ const postTextToSpeech: (
184201
* 语音转文本
185202
*/
186203
const speechToText: (
187-
application_id: String,
204+
application_id: string,
188205
data: any,
189206
loading?: Ref<boolean>,
190207
) => Promise<Result<any>> = (application_id, data, loading) => {
@@ -289,7 +306,7 @@ const updatePlatformConfig: (
289306
/**
290307
* mcp 节点
291308
*/
292-
const getMcpTools: (application_id: String, loading?: Ref<boolean>) => Promise<Result<any>> = (
309+
const getMcpTools: (application_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
293310
application_id,
294311
loading,
295312
) => {
@@ -320,5 +337,7 @@ export default {
320337
speechToText,
321338
getMcpTools,
322339
putXpackAccessToken,
323-
generate_prompt
340+
generate_prompt,
341+
getTokenUsage,
342+
topQuestions
324343
}

ui/src/views/application-overview/component/StatisticsCharts.vue

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313
<el-card shadow="never">
1414
<div class="flex align-center ml-8 mr-8">
1515
<el-avatar :size="40" shape="square" :style="{ background: item.background }">
16-
<appIcon :iconName="item.icon" :style="{ fontSize: '24px', color: item.color }" />
16+
<appIcon :iconName="item.icon" :style="{ fontSize: '24px', color: item.color }"/>
1717
</el-avatar>
1818
<div class="ml-12">
1919
<p class="color-secondary lighter mb-4">{{ item.name }}</p>
2020
<div v-if="item.id !== 'starCharts'" class="flex align-baseline">
2121
<h2>{{ numberFormat(item.sum?.[0]) }}</h2>
2222
<span v-if="item.sum.length > 1" class="ml-12" style="color: #f54a45"
23-
>+{{ numberFormat(item.sum?.[1]) }}</span
23+
>+{{ numberFormat(item.sum?.[1]) }}</span
2424
>
2525
</div>
2626
<div v-else class="flex align-center mr-8">
@@ -47,23 +47,32 @@
4747
>
4848
<el-card shadow="never">
4949
<div class="p-8">
50-
<AppCharts height="316px" :id="item.id" type="line" :option="item.option" />
50+
<AppCharts height="316px" :id="item.id" type="line" :option="item.option"/>
5151
</div>
5252
</el-card>
5353
</el-col>
5454
</el-row>
5555
</template>
5656
<script setup lang="ts">
57-
import { ref, computed, onMounted } from 'vue'
57+
import {ref, computed, onMounted} from 'vue'
5858
import AppCharts from '@/components/app-charts/index.vue'
59-
import { getAttrsArray, getSum } from '@/utils/array'
60-
import { numberFormat } from '@/utils/common'
61-
import { t } from '@/locales'
59+
import {getAttrsArray, getSum} from '@/utils/array'
60+
import {numberFormat} from '@/utils/common'
61+
import {t} from '@/locales'
62+
6263
const props = defineProps({
6364
data: {
6465
type: Array,
6566
default: () => [],
6667
},
68+
tokenUsage: {
69+
type: Array,
70+
default: () => [],
71+
},
72+
topQuestions: {
73+
type: Array,
74+
default: () => [],
75+
}
6776
})
6877
const statisticsType = computed(() => [
6978
{

0 commit comments

Comments
 (0)