diff --git a/relay/channel/openai/relay-openai.go b/relay/channel/openai/relay-openai.go index 02387fe0..222bb28f 100644 --- a/relay/channel/openai/relay-openai.go +++ b/relay/channel/openai/relay-openai.go @@ -703,13 +703,19 @@ func extractLlamaCachedTokensFromBody(body []byte) (int, bool) { } var payload struct { - Usage struct { - CachedTokens *int `json:"cache_n"` + Timings struct { + Usage struct { + CachedTokens *int `json:"cache_n"` + } `json:"usage"` } `json:"timings"` } if err := common.Unmarshal(body, &payload); err != nil { return 0, false } - return *payload.Usage.CachedTokens, true + + if payload.Timings.Usage.CachedTokens == nil { + return 0, false + } + return *payload.Timings.Usage.CachedTokens, true }