(req *gemini.GeminiChatRequest, info *relaycommon.RelayInfo)
| 62 | } |
| 63 | |
| 64 | func getGeminiInputTokens(req *gemini.GeminiChatRequest, info *relaycommon.RelayInfo) int { |
| 65 | // 计算输入 token 数量 |
| 66 | var inputTexts []string |
| 67 | for _, content := range req.Contents { |
| 68 | for _, part := range content.Parts { |
| 69 | if part.Text != "" { |
| 70 | inputTexts = append(inputTexts, part.Text) |
| 71 | } |
| 72 | } |
| 73 | } |
| 74 | |
| 75 | inputText := strings.Join(inputTexts, "\n") |
| 76 | inputTokens := service.CountTokenInput(inputText, info.UpstreamModelName) |
| 77 | info.PromptTokens = inputTokens |
| 78 | return inputTokens |
| 79 | } |
| 80 | |
| 81 | func isNoThinkingRequest(req *gemini.GeminiChatRequest) bool { |
| 82 | if req.GenerationConfig.ThinkingConfig != nil && req.GenerationConfig.ThinkingConfig.ThinkingBudget != nil { |
no test coverage detected