parseUsageFromMap 从 map 解析 usage
(usageData map[string]any)
| 577 | |
| 578 | // parseUsageFromMap 从 map 解析 usage |
| 579 | func (p *GeminiProvider) parseUsageFromMap(usageData map[string]any) *TokenUsage { |
| 580 | usage := &TokenUsage{} |
| 581 | |
| 582 | if promptTokens, ok := usageData["promptTokenCount"].(float64); ok { |
| 583 | usage.InputTokens = int64(promptTokens) |
| 584 | } |
| 585 | if candidatesTokens, ok := usageData["candidatesTokenCount"].(float64); ok { |
| 586 | usage.OutputTokens = int64(candidatesTokens) |
| 587 | } |
| 588 | if totalTokens, ok := usageData["totalTokenCount"].(float64); ok { |
| 589 | usage.TotalTokens = int64(totalTokens) |
| 590 | } |
| 591 | |
| 592 | // Gemini 支持 Context Caching |
| 593 | if cachedTokens, ok := usageData["cachedContentTokenCount"].(float64); ok { |
| 594 | usage.CachedTokens = int64(cachedTokens) |
| 595 | } |
| 596 | |
| 597 | return usage |
| 598 | } |
| 599 | |
| 600 | // Config 返回配置 |
| 601 | func (p *GeminiProvider) Config() *types.ModelConfig { |
no outgoing calls
no test coverage detected