fix: finalize growth cost controls
This commit is contained in:
@@ -64,7 +64,6 @@ func (s *Service) Create(ctx context.Context, userID, merchantID int64, request
|
||||
_ = s.repository.Complete(ctx, record.ReportID, StatusFailed, json.RawMessage(`{}`), nil, Usage{}, "UNCACHED_SCOPE_LIMIT")
|
||||
return Record{}, false, err
|
||||
}
|
||||
s.coordinator.Publish(ctx, record.ReportID)
|
||||
}
|
||||
record.Cached = cached
|
||||
record.NextRefreshAt, err = s.repository.NextRefreshAt(ctx, merchantID, now)
|
||||
@@ -119,7 +118,7 @@ func (p *Processor) ProcessNext(ctx context.Context) error {
|
||||
status := StatusPartial
|
||||
failure := "AI_DISABLED_OR_UNAVAILABLE"
|
||||
if analysis.ShouldCallAI && p.aiEnabled && p.avalai != nil {
|
||||
reservedTokens := int64((len(analysis.Encoded)+3)/4*2 + 1600)
|
||||
reservedTokens := EstimatedTokenReservation(analysis.Encoded)
|
||||
if err := p.coordinator.ReserveBudget(ctx, reservedTokens, p.now()); err == nil {
|
||||
release, enterErr := p.coordinator.Enter(ctx)
|
||||
if enterErr == nil {
|
||||
@@ -143,6 +142,8 @@ func (p *Processor) ProcessNext(ctx context.Context) error {
|
||||
return p.repository.Complete(ctx, record.ReportID, status, analysis.Encoded, ©, Usage{}, failure)
|
||||
}
|
||||
|
||||
func EstimatedTokenReservation(evidence json.RawMessage) int64 { return int64(2*len(evidence) + 3200) }
|
||||
|
||||
func newReportID() string {
|
||||
data := make([]byte, 12)
|
||||
if _, err := rand.Read(data); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user