You've already forked agentic-coding-workflow
feat(chat): UsageService for cost/token summarization
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package chat
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type usageService struct{ repo Repository }
|
||||
|
||||
var _ UsageService = (*usageService)(nil)
|
||||
|
||||
// NewUsageService 构造 llm_usage 写入与汇总查询服务。
|
||||
func NewUsageService(repo Repository) UsageService { return &usageService{repo: repo} }
|
||||
|
||||
func (s *usageService) Insert(ctx context.Context, in UsageRecord) error {
|
||||
return s.repo.InsertUsage(ctx, in)
|
||||
}
|
||||
|
||||
func (s *usageService) SummarizeByUser(ctx context.Context, from, to time.Time) ([]UserUsageRow, error) {
|
||||
return s.repo.SummarizeUsageByUser(ctx, from, to)
|
||||
}
|
||||
|
||||
func (s *usageService) SummarizeByModel(ctx context.Context, from, to time.Time) ([]ModelUsageRow, error) {
|
||||
return s.repo.SummarizeUsageByModel(ctx, from, to)
|
||||
}
|
||||
|
||||
func (s *usageService) SummarizeByDay(ctx context.Context, from, to time.Time) ([]DayUsageRow, error) {
|
||||
return s.repo.SummarizeUsageByDay(ctx, from, to)
|
||||
}
|
||||
|
||||
func (s *usageService) UserDaily(ctx context.Context, userID uuid.UUID, from, to time.Time) ([]DayUsageRow, error) {
|
||||
return s.repo.SummarizeUserDaily(ctx, userID, from, to)
|
||||
}
|
||||
Reference in New Issue
Block a user