Files
Yi.Admin/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Entities/UsageStatisticsAggregateRoot.cs

73 lines
1.8 KiB
C#
Raw Normal View History

2025-06-25 17:12:09 +08:00
using SqlSugar;
using Volo.Abp.Domain.Entities.Auditing;
namespace Yi.Framework.AiHub.Domain.Entities;
/// <summary>
/// 用量统计
/// </summary>
[SugarTable("Ai_UsageStatistics")]
2025-11-27 19:01:16 +08:00
[SugarIndex($"index_{{table}}_{nameof(UserId)}_{nameof(ModelId)}_{nameof(TokenId)}",
nameof(UserId), OrderByType.Asc,
nameof(ModelId), OrderByType.Asc,
nameof(TokenId), OrderByType.Asc
)]
2025-06-25 17:12:09 +08:00
public class UsageStatisticsAggregateRoot : FullAuditedAggregateRoot<Guid>
{
2025-06-27 22:13:26 +08:00
public UsageStatisticsAggregateRoot()
{
}
2025-11-27 19:01:16 +08:00
public UsageStatisticsAggregateRoot(Guid? userId, string modelId, Guid tokenId)
2025-06-27 22:13:26 +08:00
{
UserId = userId;
ModelId = modelId;
2025-11-27 19:01:16 +08:00
TokenId = tokenId;
2025-06-27 22:13:26 +08:00
}
2025-06-25 17:12:09 +08:00
/// <summary>
/// 用户id
/// </summary>
2025-08-03 21:32:54 +08:00
public Guid? UserId { get; set; }
2025-06-25 17:12:09 +08:00
/// <summary>
/// 哪个模型
/// </summary>
public string ModelId { get; set; }
2025-11-27 19:01:16 +08:00
/// <summary>
/// Token密钥Id通过API调用时记录Web调用为Guid.Empty
/// </summary>
public Guid TokenId { get; set; }
2025-06-25 17:12:09 +08:00
/// <summary>
2025-06-27 22:13:26 +08:00
/// 对话次数
2025-06-25 17:12:09 +08:00
/// </summary>
2025-06-27 22:13:26 +08:00
public int UsageTotalNumber { get; set; }
2025-06-25 17:12:09 +08:00
2025-06-25 22:41:32 +08:00
/// <summary>
2025-06-27 22:13:26 +08:00
/// 使用输出token总数
2025-06-25 22:41:32 +08:00
/// </summary>
2025-07-22 10:40:23 +08:00
public long UsageOutputTokenCount { get; set; }
2025-06-27 22:13:26 +08:00
2025-06-25 17:12:09 +08:00
/// <summary>
2025-06-27 22:13:26 +08:00
/// 使用输入总数
/// </summary>
2025-07-22 10:40:23 +08:00
public long UsageInputTokenCount { get; set; }
2025-06-27 22:13:26 +08:00
/// <summary>
/// 总token使用数量
/// </summary>
2025-07-22 10:40:23 +08:00
public long TotalTokenCount { get; set; }
2025-06-27 22:13:26 +08:00
/// <summary>
/// 新增一次聊天统计
2025-06-25 17:12:09 +08:00
/// </summary>
2025-07-22 10:40:23 +08:00
public void AddOnceChat(long inputTokenCount, long outputTokenCount)
2025-06-27 22:13:26 +08:00
{
UsageTotalNumber += 1;
UsageOutputTokenCount += outputTokenCount;
UsageInputTokenCount += inputTokenCount;
TotalTokenCount += (outputTokenCount + inputTokenCount);
}
2025-06-25 17:12:09 +08:00
}