Compare commits
2 Commits
425137c7c3
...
7cbea24489
| Author | SHA1 | Date | |
|---|---|---|---|
| 7cbea24489 | |||
| 90037cae9e |
@ -129,19 +129,19 @@ export const reqModelInfoConfig = (params = {}) => {
|
||||
const isFormData = params instanceof FormData
|
||||
return request({
|
||||
url: '/cntoai/model_management_add.dspy',
|
||||
method: isFormData ? 'post' : 'get',
|
||||
method: 'post',
|
||||
params: isFormData ? undefined : params,
|
||||
data: isFormData ? params : undefined,
|
||||
headers: isFormData ? { 'Content-Type': 'multipart/form-data' } : undefined
|
||||
})
|
||||
}
|
||||
|
||||
// 模型信息配置编辑(编辑时需要额外传 id)
|
||||
// 模型信息配置编辑
|
||||
export const reqModelInfoConfigEdit = (params = {}) => {
|
||||
const isFormData = params instanceof FormData
|
||||
return request({
|
||||
url: '/cntoai/model_management_update.dspy',
|
||||
method: isFormData ? 'post' : 'get',
|
||||
method: 'post',
|
||||
params: isFormData ? undefined : params,
|
||||
data: isFormData ? params : undefined,
|
||||
headers: isFormData ? { 'Content-Type': 'multipart/form-data' } : undefined
|
||||
|
||||
@ -10,10 +10,10 @@
|
||||
<p>核算机构:<b>{{ displayValue(billingData.accounting_orgname) }}</b></p>
|
||||
<p>机构编号:{{ displayValue(billingData.accounting_orgid) }}</p>
|
||||
</div>
|
||||
<div class="view-info">
|
||||
<!-- <div class="view-info">
|
||||
<strong>管理员视图</strong>
|
||||
<small>生成于 2026/5/29 17:00:06</small>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<div class="summary-grid">
|
||||
@ -179,7 +179,7 @@
|
||||
<td>{{ displayValue(leg.subjectname) }}</td>
|
||||
<td><span class="dir-tag" :class="leg.accounting_dir === '贷' ? 'credit' : 'debit'">{{ displayValue(leg.accounting_dir) }}</span></td>
|
||||
<td>{{ displayValue(leg.participanttype) }}</td>
|
||||
<td>{{ displayValue(leg.accounting_orgid) }}</td>
|
||||
<td>{{ displayValue(leg.accounting_orgid) }}</td>
|
||||
<td class="num">{{ money(leg.amount) }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@ -18,9 +18,9 @@
|
||||
<span>数据截断:<b>{{ financialOverview.truncated ? '是' : '否' }}</b></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="view-meta">
|
||||
查看计费统计
|
||||
</div>
|
||||
<!-- <div class="view-meta">
|
||||
查看计费统计
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<div class="summary-grid">
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -89,7 +89,7 @@ import { reqModelInfoConfigList } from '@/api/model/model'
|
||||
export default {
|
||||
name: 'ModelInfoConfig',
|
||||
components: {
|
||||
ModelInfoEditDialog,
|
||||
ModelInfoEditDialog,
|
||||
ModelInfoDetailDialog
|
||||
},
|
||||
data() {
|
||||
|
||||
@ -84,11 +84,11 @@
|
||||
|
||||
<el-table v-loading="loading" :data="usageList" class="usage-table" style="width: 100%">
|
||||
<el-table-column prop="model" label="模型名称" min-width="180" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="request_count" label="调用次数" width="120"></el-table-column>
|
||||
<!-- <el-table-column prop="request_count" label="调用次数" width="120"></el-table-column> -->
|
||||
<el-table-column prop="prompt_tokens" label="输入Token" min-width="140"></el-table-column>
|
||||
<el-table-column prop="completion_tokens" label="输出Token" min-width="140"></el-table-column>
|
||||
<el-table-column prop="total_tokens" label="总Token" min-width="140"></el-table-column>
|
||||
<el-table-column prop="amount" label="预估费用" width="130">
|
||||
<el-table-column prop="amount" label="费用" width="130">
|
||||
<template slot-scope="scope">¥ {{ formatAmount(scope.row.amount) }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="usage_time" label="使用时间" min-width="170" show-overflow-tooltip></el-table-column>
|
||||
@ -131,7 +131,7 @@ export default {
|
||||
statCards: [
|
||||
{ label: '总消耗 Token', value: '0', desc: '当前筛选范围', type: 'primary', icon: 'el-icon-coin' },
|
||||
{ label: '调用次数', value: '0', desc: '当前筛选范围', type: 'success', icon: 'el-icon-s-promotion' },
|
||||
{ label: '预估费用', value: '¥ 0.00', desc: '按当前单价估算', type: 'warning', icon: 'el-icon-wallet' },
|
||||
{ label: ' 费用', value: '¥ 0.00', desc: '按当前单价估算', type: 'warning', icon: 'el-icon-wallet' },
|
||||
{ label: '输入/输出 Token', value: '0 / 0', desc: 'Prompt / Completion', type: 'purple', icon: 'el-icon-pie-chart' }
|
||||
],
|
||||
usageList: [],
|
||||
@ -165,11 +165,27 @@ export default {
|
||||
return this.rangeLabel
|
||||
},
|
||||
modelUsageRank() {
|
||||
const maxTokens = Math.max(...this.usageList.map(item => Number(item.total_tokens || 0)), 0)
|
||||
return this.usageList
|
||||
const modelMap = this.usageList.reduce((map, item) => {
|
||||
const model = item.model || item.model_name || item.display_name || '-'
|
||||
const totalTokens = Number(item.total_tokens || 0) || Number(item.prompt_tokens || 0) + Number(item.completion_tokens || 0)
|
||||
if (!map[model]) {
|
||||
map[model] = {
|
||||
model,
|
||||
total_tokens: 0,
|
||||
request_count: 0,
|
||||
amount: 0
|
||||
}
|
||||
}
|
||||
map[model].total_tokens += totalTokens
|
||||
map[model].request_count += Number(item.request_count || 0)
|
||||
map[model].amount += Number(item.amount || 0)
|
||||
return map
|
||||
}, {})
|
||||
const rankSource = Object.values(modelMap)
|
||||
const maxTokens = Math.max(...rankSource.map(item => Number(item.total_tokens || 0)), 0)
|
||||
return rankSource
|
||||
.map(item => ({
|
||||
model: item.model,
|
||||
total_tokens: Number(item.total_tokens || 0),
|
||||
...item,
|
||||
percent: maxTokens ? Math.round((Number(item.total_tokens || 0) / maxTokens) * 100) : 0
|
||||
}))
|
||||
.sort((a, b) => b.total_tokens - a.total_tokens)
|
||||
@ -328,7 +344,14 @@ export default {
|
||||
},
|
||||
formatter: params => {
|
||||
const item = params && params[0]
|
||||
return item ? `${item.name}<br/>${this.formatNumber(item.value)} Token` : ''
|
||||
if (!item) return ''
|
||||
const rankItem = rankList[item.dataIndex] || {}
|
||||
return [
|
||||
item.name,
|
||||
`${this.formatNumber(item.value)} Token`,
|
||||
`调用次数:${this.formatNumber(rankItem.request_count)}`,
|
||||
`预估费用:¥ ${this.formatAmount(rankItem.amount)}`
|
||||
].join('<br/>')
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user