Skip to content

Commit 27948c7

Browse files
fix(dto): fallback to legacy model in usage mapping
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
1 parent c64465f commit 27948c7

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

backend/internal/handler/dto/mappers.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -522,13 +522,17 @@ func usageLogFromServiceUser(l *service.UsageLog) UsageLog {
522522
// 普通用户 DTO:严禁包含管理员字段(例如 account_rate_multiplier、ip_address、account)。
523523
requestType := l.EffectiveRequestType()
524524
stream, openAIWSMode := service.ApplyLegacyRequestFields(requestType, l.Stream, l.OpenAIWSMode)
525+
requestedModel := l.RequestedModel
526+
if requestedModel == "" {
527+
requestedModel = l.Model
528+
}
525529
return UsageLog{
526530
ID: l.ID,
527531
UserID: l.UserID,
528532
APIKeyID: l.APIKeyID,
529533
AccountID: l.AccountID,
530534
RequestID: l.RequestID,
531-
Model: l.RequestedModel,
535+
Model: requestedModel,
532536
ServiceTier: l.ServiceTier,
533537
ReasoningEffort: l.ReasoningEffort,
534538
InboundEndpoint: l.InboundEndpoint,

backend/internal/handler/dto/mappers_usage_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,21 @@ func TestUsageLogFromService_UsesRequestedModelAndKeepsUpstreamAdminOnly(t *test
133133
require.Contains(t, string(adminJSON), `"upstream_model":"claude-sonnet-4-20250514"`)
134134
}
135135

136+
func TestUsageLogFromService_FallsBackToLegacyModelWhenRequestedModelMissing(t *testing.T) {
137+
t.Parallel()
138+
139+
log := &service.UsageLog{
140+
RequestID: "req_legacy",
141+
Model: "claude-3",
142+
}
143+
144+
userDTO := UsageLogFromService(log)
145+
adminDTO := UsageLogFromServiceAdmin(log)
146+
147+
require.Equal(t, "claude-3", userDTO.Model)
148+
require.Equal(t, "claude-3", adminDTO.Model)
149+
}
150+
136151
func f64Ptr(value float64) *float64 {
137152
return &value
138153
}

0 commit comments

Comments
 (0)