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>
This commit is contained in:
@@ -522,13 +522,17 @@ func usageLogFromServiceUser(l *service.UsageLog) UsageLog {
|
|||||||
// 普通用户 DTO:严禁包含管理员字段(例如 account_rate_multiplier、ip_address、account)。
|
// 普通用户 DTO:严禁包含管理员字段(例如 account_rate_multiplier、ip_address、account)。
|
||||||
requestType := l.EffectiveRequestType()
|
requestType := l.EffectiveRequestType()
|
||||||
stream, openAIWSMode := service.ApplyLegacyRequestFields(requestType, l.Stream, l.OpenAIWSMode)
|
stream, openAIWSMode := service.ApplyLegacyRequestFields(requestType, l.Stream, l.OpenAIWSMode)
|
||||||
|
requestedModel := l.RequestedModel
|
||||||
|
if requestedModel == "" {
|
||||||
|
requestedModel = l.Model
|
||||||
|
}
|
||||||
return UsageLog{
|
return UsageLog{
|
||||||
ID: l.ID,
|
ID: l.ID,
|
||||||
UserID: l.UserID,
|
UserID: l.UserID,
|
||||||
APIKeyID: l.APIKeyID,
|
APIKeyID: l.APIKeyID,
|
||||||
AccountID: l.AccountID,
|
AccountID: l.AccountID,
|
||||||
RequestID: l.RequestID,
|
RequestID: l.RequestID,
|
||||||
Model: l.RequestedModel,
|
Model: requestedModel,
|
||||||
ServiceTier: l.ServiceTier,
|
ServiceTier: l.ServiceTier,
|
||||||
ReasoningEffort: l.ReasoningEffort,
|
ReasoningEffort: l.ReasoningEffort,
|
||||||
InboundEndpoint: l.InboundEndpoint,
|
InboundEndpoint: l.InboundEndpoint,
|
||||||
|
|||||||
@@ -133,6 +133,21 @@ func TestUsageLogFromService_UsesRequestedModelAndKeepsUpstreamAdminOnly(t *test
|
|||||||
require.Contains(t, string(adminJSON), `"upstream_model":"claude-sonnet-4-20250514"`)
|
require.Contains(t, string(adminJSON), `"upstream_model":"claude-sonnet-4-20250514"`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUsageLogFromService_FallsBackToLegacyModelWhenRequestedModelMissing(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
log := &service.UsageLog{
|
||||||
|
RequestID: "req_legacy",
|
||||||
|
Model: "claude-3",
|
||||||
|
}
|
||||||
|
|
||||||
|
userDTO := UsageLogFromService(log)
|
||||||
|
adminDTO := UsageLogFromServiceAdmin(log)
|
||||||
|
|
||||||
|
require.Equal(t, "claude-3", userDTO.Model)
|
||||||
|
require.Equal(t, "claude-3", adminDTO.Model)
|
||||||
|
}
|
||||||
|
|
||||||
func f64Ptr(value float64) *float64 {
|
func f64Ptr(value float64) *float64 {
|
||||||
return &value
|
return &value
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user