Skip to content
GitCode

用量统计

概述

用量统计模块基于 AI 调用日志数据(AiLlmCallLog、AiKnowledgeRetrievalLog、AiKnowledgeDocLog),提供模型调用、知识库检索、文档处理等操作的用量统计和分析功能。支持按日期范围过滤、按天/小时聚合,提供多维度的数据可视化展示。

页面功能

用量统计预览

筛选栏

  • 日期范围:选择统计的起止日期,默认显示最近 7 天数据
  • 聚合粒度:按天(DAY)或按小时(HOUR)聚合统计数据
  • 查询/重置:点击查询按钮刷新数据,重置恢复默认值

用量总览卡片

展示 8 个核心统计指标:

  1. LLM 总调用次数 - 模型调用总次数
  2. LLM 成功率(%) - 调用成功的百分比
  3. LLM 总 Token - 消耗的 Token 总数
  4. LLM 平均耗时(ms) - 每次调用的平均耗时
  5. 检索总次数 - 知识库检索总次数
  6. 召回文档块总数 - 检索召回的文档块总数
  7. 检索 Embedding Token - 检索消耗的 Embedding Token
  8. 文档处理总次数 - 文档处理操作总次数

用量趋势折线图

展示按时间序列的用量趋势,包含 4 条曲线:

  • LLM 调用次数
  • LLM 总 Token
  • 检索次数
  • 文档处理次数

用量统计预览

模型用量柱状图

按模型维度统计 LLM 用量,双 Y 轴显示:

  • 左 Y 轴:总调用次数
  • 右 Y 轴:总 Token

知识库检索饼图

按知识库维度统计检索次数占比,使用环形饼图展示。

文档处理柱状图

按操作类型(ADD/UPDATE/DELETE)统计文档处理用量,堆叠柱状图展示:

  • 成功次数
  • 失败次数
  • 总分块数

数据库实体

AiLlmCallLog(AI大模型调用日志)

字段类型说明
idLong主键ID
traceIdString链路追踪ID
callSourceString调用来源:AGENT/CHAT/FLOW/API
sourceIdLong来源ID(智能体ID/会话ID/流程ID)
sourceNodeIdString来源节点ID(工作流节点ID)
modelIdLong模型ID
modelNameString模型名称
modelProviderString模型提供商:QWEN/DOUBAO/OPENAI/CUSTOM
temperatureBigDecimal生成温度
maxTokensInteger最大生成长度
inputCharCountInteger输入字符数
inputTokensInteger输入消耗token数
outputCharCountInteger输出字符数
outputTokensInteger输出消耗token数
totalTokensInteger总消耗token数
finishReasonString结束原因:STOP/TOOL_EXECUTION等
callStatusInteger调用状态:0-失败,1-成功
errorCodeString错误码
errorMessageString错误信息
startTimeLocalDateTime调用开始时间
endTimeLocalDateTime调用结束时间
durationInteger调用时长(毫秒)
timeSignLocalDate日期
hourSignInteger小时(0-23,用于按小时聚合)
createByLong创建人ID
createTimeLocalDateTime记录创建时间
orgIdInteger所属组织ID

AiKnowledgeRetrievalLog(AI知识库检索日志)

字段类型说明
idLong主键ID
traceIdString链路追踪ID
callSourceString调用来源:AGENT/CHAT/FLOW/API
sourceIdLong来源ID(智能体ID/会话ID/流程ID)
sourceNodeIdString来源节点ID(工作流节点ID)
knowledgeBaseIdLong知识库ID
knowledgeBaseNameString知识库名称
queryCharCountInteger查询字符数
queryEmbeddingTokensInteger查询向量化消耗token
topKInteger召回条数
retrievedCountInteger实际召回数量
callStatusInteger调用状态:0-失败,1-成功
errorMessageString错误信息
startTimeLocalDateTime调用开始时间
endTimeLocalDateTime调用结束时间
durationInteger调用时长(毫秒)
timeSignLocalDate日期
hourSignInteger小时(0-23,用于按小时聚合)
createByLong创建人ID
createTimeLocalDateTime记录创建时间
orgIdInteger所属组织ID

AiKnowledgeDocLog(AI知识库文档处理日志)

字段类型说明
idLong主键ID
knowledgeBaseIdLong知识库ID
knowledgeBaseNameString知识库名称
docIdLong文档ID
docNameString文档名称
operationTypeString操作类型:ADD/UPDATE/DELETE
chunkCountInteger分块数量
totalCharCountInteger总字符数
totalEmbeddingTokensIntegerembedding总消耗token
callStatusInteger调用状态:0-失败,1-成功
errorMessageString错误信息
startTimeLocalDateTime调用开始时间
endTimeLocalDateTime调用结束时间
durationInteger调用时长(毫秒)
timeSignLocalDate日期
hourSignInteger小时(0-23,用于按小时聚合)
createByLong创建人ID
createTimeLocalDateTime记录创建时间
orgIdInteger所属组织ID

后端 API

公共请求参数(AiUsageStatQueryRequest)

字段类型说明
startDateLocalDate开始日期
endDateLocalDate结束日期
startHourInteger起始小时(0-23,可选)
endHourInteger结束小时(0-23,可选)
granularityString聚合粒度:DAY(按天)/HOUR(按小时),默认 DAY
orgIdInteger组织ID(可选)

用量总览

接口POST /bapi/ai/usage/overview

返回数据(AiUsageOverviewVo)

字段类型说明
llmTotalCallsLongLLM 总调用次数
llmSuccessCallsLongLLM 成功次数
llmFailCallsLongLLM 失败次数
llmSuccessRateBigDecimalLLM 成功率(%)
llmInputTokensLongLLM 总输入 Token
llmOutputTokensLongLLM 总输出 Token
llmTotalTokensLongLLM 总 Token
llmAvgDurationMsBigDecimalLLM 平均耗时(毫秒)
retrievalTotalCallsLong检索总次数
retrievalSuccessCallsLong检索成功次数
retrievalTotalChunksLong召回文档块总数
retrievalEmbeddingTokensLong检索 Embedding 消耗总 Token
retrievalAvgDurationMsBigDecimal检索平均耗时(毫秒)
docTotalOpsLong文档处理总次数
docSuccessOpsLong文档处理成功次数
docTotalChunksLong文档处理总分块数
docEmbeddingTokensLong文档处理 Embedding 消耗总 Token

用量趋势

接口POST /bapi/ai/usage/trend

返回数据(List<AiUsageTrendItem>)

字段类型说明
timeLabelString时间标签(按天:2026-07-15;按小时:2026-07-15 13)
dateLocalDate日期
hourInteger小时(0-23,按天聚合时为 null)
llmCallsLongLLM 调用次数
llmTotalTokensLongLLM 总 Token
llmAvgDurationMsBigDecimalLLM 平均耗时(毫秒)
retrievalsLong检索次数
retrievalEmbeddingTokensLong检索 Embedding Token
docOpsLong文档处理次数

按模型统计 LLM 用量

接口POST /bapi/ai/usage/statByModel

返回数据(List<LlmModelUsageItem>)

字段类型说明
modelIdLong模型 ID
modelNameString模型名称
modelProviderString模型提供商
totalCallsLong总调用次数
successCallsLong成功次数
failCallsLong失败次数
totalInputTokensLong总输入 Token
totalOutputTokensLong总输出 Token
totalTokensLong总 Token
avgDurationMsBigDecimal平均耗时(毫秒)

按知识库统计检索用量

接口POST /bapi/ai/usage/statByKnowledgeBase

返回数据(List<KbRetrievalUsageItem>)

字段类型说明
knowledgeBaseIdLong知识库 ID
knowledgeBaseNameString知识库名称
totalRetrievalsLong总检索次数
successRetrievalsLong成功次数
totalRetrievedChunksLong召回文档总数
totalEmbeddingTokensLongEmbedding 消耗总 Token
avgDurationMsBigDecimal平均耗时(毫秒)

按操作类型统计文档处理用量

接口POST /bapi/ai/usage/statByDocOperation

返回数据(List<DocOperationUsageItem>)

字段类型说明
operationTypeString操作类型(ADD/UPDATE/DELETE)
totalOpsLong总处理次数
successOpsLong成功次数
failOpsLong失败次数
totalChunksLong总分块数
totalCharCountLong总字符数
totalEmbeddingTokensLongEmbedding 消耗总 Token

核心类

AiUsageStatController

用量统计控制器,提供 5 个统计接口:

  • /overview - 用量总览
  • /trend - 用量趋势
  • /statByModel - 按模型统计
  • /statByKnowledgeBase - 按知识库统计
  • /statByDocOperation - 按操作类型统计

IAiUsageStatService & AiUsageStatServiceImpl

用量统计服务接口及实现,基于 MyBatis Mapper 查询三类日志表并聚合统计数据。

AiUsageStatMapper

自定义 Mapper,使用 XML 编写复杂的聚合查询 SQL。