package com.vincent.rsf.server.ai.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @Data @Accessors(chain = true) @TableName("sys_ai_call_log") public class AiCallLog implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty("请求ID") private String requestId; @ApiModelProperty("会话ID") private Long sessionId; @ApiModelProperty("Prompt编码") private String promptCode; @ApiModelProperty("Prompt名称") private String promptName; @ApiModelProperty("模型") private String model; @ApiModelProperty("用户ID") private Long userId; @ApiModelProperty("租户ID") private Long tenantId; @ApiModelProperty("状态") private String status; @ApiModelProperty("错误分类") private String errorCategory; @ApiModelProperty("错误阶段") private String errorStage; @ApiModelProperty("错误信息") private String errorMessage; @ApiModelProperty("配置MCP数量") private Integer configuredMcpCount; @ApiModelProperty("挂载MCP数量") private Integer mountedMcpCount; @ApiModelProperty("挂载MCP名称") private String mountedMcpNames; @ApiModelProperty("工具调用总数") private Integer toolCallCount; @ApiModelProperty("工具成功数") private Integer toolSuccessCount; @ApiModelProperty("工具失败数") private Integer toolFailureCount; @ApiModelProperty("总耗时") private Long elapsedMs; @ApiModelProperty("首包耗时") private Long firstTokenLatencyMs; @ApiModelProperty("Prompt Tokens") private Integer promptTokens; @ApiModelProperty("Completion Tokens") private Integer completionTokens; @ApiModelProperty("Total Tokens") private Integer totalTokens; @ApiModelProperty("是否删除") private Integer deleted; @ApiModelProperty("创建时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; @ApiModelProperty("更新时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; public String getCreateTime$() { if (this.createTime == null) { return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); } public String getUpdateTime$() { if (this.updateTime == null) { return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); } }