发布 0.3.0:恢复 Chat 接口并增强云端事件通知
This commit is contained in:
@@ -73,12 +73,20 @@ func RespPassthroughUsage(payload []byte) *aiwire.Usage {
|
||||
var root struct {
|
||||
Usage *aiwire.RespUsage `json:"usage"`
|
||||
}
|
||||
if json.Unmarshal(payload, &root) != nil || root.Usage == nil {
|
||||
if json.Unmarshal(payload, &root) != nil {
|
||||
return nil
|
||||
}
|
||||
usage := &aiwire.Usage{PromptTokens: root.Usage.InputTokens,
|
||||
CompletionTokens: root.Usage.OutputTokens, TotalTokens: root.Usage.TotalTokens}
|
||||
if cached := root.Usage.InputTokensDetails.CachedTokens; cached > 0 {
|
||||
return usageFromResp(root.Usage)
|
||||
}
|
||||
|
||||
// usageFromResp 换算 Responses usage 为 OpenAI 口径(缓存命中透传);nil 原样返回。
|
||||
func usageFromResp(u *aiwire.RespUsage) *aiwire.Usage {
|
||||
if u == nil {
|
||||
return nil
|
||||
}
|
||||
usage := &aiwire.Usage{PromptTokens: u.InputTokens,
|
||||
CompletionTokens: u.OutputTokens, TotalTokens: u.TotalTokens}
|
||||
if cached := u.InputTokensDetails.CachedTokens; cached > 0 {
|
||||
usage.PromptTokensDetails = &aiwire.PromptTokensDetails{CachedTokens: cached}
|
||||
}
|
||||
return usage
|
||||
|
||||
Reference in New Issue
Block a user