فهرست منبع

Merge pull request #1148 from RedwindA/x-goog-api-key

feat: support X-goog-api-key;remove [Done] in stream mode
Calcium-Ion 9 ماه پیش
والد
کامیت
4e20a747bc
2فایلهای تغییر یافته به همراه7 افزوده شده و 2 حذف شده
  1. 5 0
      middleware/auth.go
  2. 2 2
      relay/channel/gemini/relay-gemini-native.go

+ 5 - 0
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)

+ 2 - 2
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
 }