diff --git a/middleware/auth.go b/middleware/auth.go index ce86bb36..f387029f 100644 --- a/middleware/auth.go +++ b/middleware/auth.go @@ -189,6 +189,11 @@ func TokenAuth() func(c *gin.Context) { if skKey != "" { c.Request.Header.Set("Authorization", "Bearer "+skKey) } + // 从x-goog-api-key header中获取key + xGoogKey := c.Request.Header.Get("x-goog-api-key") + if xGoogKey != "" { + c.Request.Header.Set("Authorization", "Bearer "+xGoogKey) + } } key := c.Request.Header.Get("Authorization") parts := make([]string, 0) diff --git a/relay/channel/gemini/relay-gemini-native.go b/relay/channel/gemini/relay-gemini-native.go index c055e299..8e2eae04 100644 --- a/relay/channel/gemini/relay-gemini-native.go +++ b/relay/channel/gemini/relay-gemini-native.go @@ -121,8 +121,8 @@ func GeminiTextGenerationStreamHandler(c *gin.Context, resp *http.Response, info usage.PromptTokensDetails.TextTokens = usage.PromptTokens usage.CompletionTokens = usage.TotalTokens - usage.PromptTokens - // 结束流式响应 - helper.Done(c) + // 移除流式响应结尾的[Done],因为Gemini API没有发送Done的行为 + //helper.Done(c) return usage, nil }