From f0ad4400290e7b842ce2404c43ee1afc49a57ac3 Mon Sep 17 00:00:00 2001 From: xs Date: Tue, 30 Sep 2025 17:23:22 +0800 Subject: [PATCH] =?UTF-8?q?1.5.8=E5=89=8D=E7=AB=AF=20AI=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=AE=8C=E5=96=84=20AI=20Token=E4=BD=BF=E7=94=A8=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ai/record/tokenUsage/index.ts | 91 +++++ src/api/ai/record/tokenUsage/types.ts | 121 +++++++ src/views/ai/base/aiPlatform/index.vue | 14 +- src/views/ai/record/tokenUsage/index.vue | 443 ++++++++++++----------- 4 files changed, 458 insertions(+), 211 deletions(-) create mode 100644 src/api/ai/record/tokenUsage/index.ts create mode 100644 src/api/ai/record/tokenUsage/types.ts diff --git a/src/api/ai/record/tokenUsage/index.ts b/src/api/ai/record/tokenUsage/index.ts new file mode 100644 index 0000000..f0e891e --- /dev/null +++ b/src/api/ai/record/tokenUsage/index.ts @@ -0,0 +1,91 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { TokenUsageVO, TokenUsageForm, TokenUsageQuery } from '@/api/ai/tokenUsage/types'; + +/** + * 查询用户token使用详情列表 + * @param query + * @returns {*} + */ + +export const listTokenUsage = (query?: TokenUsageQuery): AxiosPromise => { + return request({ + url: '/ai/tokenUsage/list', + method: 'get', + params: query + }); +}; + +/** + * 查询用户token使用详情详细 + * @param tokenUsageId + */ +export const getTokenUsage = (tokenUsageId: string | number): AxiosPromise => { + return request({ + url: '/ai/tokenUsage/' + tokenUsageId, + method: 'get' + }); +}; + +/** + * 新增用户token使用详情 + * @param data + */ +export const addTokenUsage = (data: TokenUsageForm) => { + return request({ + url: '/ai/tokenUsage', + method: 'post', + data: data + }); +}; + +/** + * 修改用户token使用详情 + * @param data + */ +export const updateTokenUsage = (data: TokenUsageForm) => { + return request({ + url: '/ai/tokenUsage', + method: 'put', + data: data + }); +}; + +/** + * 删除用户token使用详情 + * @param tokenUsageId + */ +export const delTokenUsage = (tokenUsageId: string | number | Array) => { + return request({ + url: '/ai/tokenUsage/' + tokenUsageId, + method: 'delete' + }); +}; + + +/** + * 下拉框查询用户token使用详情列表 + * @param query + * @returns {*} + */ +export function getAiTokenUsageList (query) { + return request({ + url: '/ai/tokenUsage/getAiTokenUsageList', + method: 'get', + params: query + }); +}; + + +/** + * 获取AI会话详情 + * @param query + * @returns {*} + */ +export function getAiChatMessageDetailList (query) { + return request({ + url: '/ai/aiChatMessage/listDetail', + method: 'get', + params: query + }); +}; diff --git a/src/api/ai/record/tokenUsage/types.ts b/src/api/ai/record/tokenUsage/types.ts new file mode 100644 index 0000000..8e4213d --- /dev/null +++ b/src/api/ai/record/tokenUsage/types.ts @@ -0,0 +1,121 @@ +export interface TokenUsageVO { + /** + * 主键 + */ + tokenUsageId: string | number; + + /** + * 用户 + */ + userId: string | number; + + /** + * 待结算token + */ + token: number; + + /** + * 模型ID,关联ai_model + */ + modelId: string | number; + + /** + * 提问token数量 + */ + promptToken: number; + + /** + * 回复token数量 + */ + completionToken: number; + + /** + * 累计使用token + */ + totalToken: number; + +} + +export interface TokenUsageForm extends BaseEntity { + /** + * 主键 + */ + tokenUsageId?: string | number; + + /** + * 用户 + */ + userId?: string | number; + + /** + * 待结算token + */ + token?: number; + + /** + * 模型ID,关联ai_model + */ + modelId?: string | number; + + /** + * 提问token数量 + */ + promptToken?: number; + + /** + * 回复token数量 + */ + completionToken?: number; + + /** + * 累计使用token + */ + totalToken?: number; + +} + +export interface TokenUsageQuery extends PageQuery { + + /** + * 主键 + */ + tokenUsageId?: string | number; + + /** + * 用户 + */ + userId?: string | number; + + /** + * 待结算token + */ + token?: number; + + /** + * 模型ID,关联ai_model + */ + modelId?: string | number; + + /** + * 提问token数量 + */ + promptToken?: number; + + /** + * 回复token数量 + */ + completionToken?: number; + + /** + * 累计使用token + */ + totalToken?: number; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/views/ai/base/aiPlatform/index.vue b/src/views/ai/base/aiPlatform/index.vue index f95728a..0b5ed7c 100644 --- a/src/views/ai/base/aiPlatform/index.vue +++ b/src/views/ai/base/aiPlatform/index.vue @@ -845,7 +845,7 @@ onMounted(() => { } .platform-card { - min-height: 400px; + min-height: 260px; } .platform-item { @@ -867,8 +867,9 @@ onMounted(() => { .platform-header { display: flex; align-items: flex-start; - gap: 12px; + gap: 6px; margin-bottom: 16px; + height:100px; } .platform-icon { @@ -933,7 +934,7 @@ onMounted(() => { font-size: 18px; font-weight: 600; color: #1f2937; - line-height: 3.2; + line-height: 1.6; } .platform-description { @@ -1001,12 +1002,7 @@ onMounted(() => { color: #409eff; } -.platform-name { - margin: 0; - font-size: 24px; - font-weight: 600; - color: #303133; -} + .platform-description { font-size: 16px; diff --git a/src/views/ai/record/tokenUsage/index.vue b/src/views/ai/record/tokenUsage/index.vue index ec78dba..838ccd2 100644 --- a/src/views/ai/record/tokenUsage/index.vue +++ b/src/views/ai/record/tokenUsage/index.vue @@ -12,69 +12,49 @@
- - + + - - - - - - - + + + - 搜索 - 重置 + 搜索 + 重置 - - - - - - - - - - - + + + + + - +
@@ -94,74 +74,256 @@ - - - - - - + + + - 搜索 + 搜索 重置 - - - + + + - - - + + + + - + - + - + + -