mirror of
				https://github.com/songquanpeng/one-api.git
				synced 2025-11-04 15:53:42 +08:00 
			
		
		
		
	feat: enhance response handling to support gemini-2.0-thinking (#1995)
This commit is contained in:
		@@ -7,4 +7,5 @@ var ModelList = []string{
 | 
			
		||||
	"gemini-1.5-flash", "gemini-1.5-pro",
 | 
			
		||||
	"text-embedding-004", "aqa",
 | 
			
		||||
	"gemini-2.0-flash-exp",
 | 
			
		||||
	"gemini-2.0-flash-thinking-exp",
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -55,6 +55,10 @@ func ConvertRequest(textRequest model.GeneralOpenAIRequest) *ChatRequest {
 | 
			
		||||
				Category:  "HARM_CATEGORY_DANGEROUS_CONTENT",
 | 
			
		||||
				Threshold: config.GeminiSafetySetting,
 | 
			
		||||
			},
 | 
			
		||||
			{
 | 
			
		||||
				Category:  "HARM_CATEGORY_CIVIC_INTEGRITY",
 | 
			
		||||
				Threshold: config.GeminiSafetySetting,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		GenerationConfig: ChatGenerationConfig{
 | 
			
		||||
			Temperature:     textRequest.Temperature,
 | 
			
		||||
@@ -247,7 +251,14 @@ func responseGeminiChat2OpenAI(response *ChatResponse) *openai.TextResponse {
 | 
			
		||||
			if candidate.Content.Parts[0].FunctionCall != nil {
 | 
			
		||||
				choice.Message.ToolCalls = getToolCalls(&candidate)
 | 
			
		||||
			} else {
 | 
			
		||||
				choice.Message.Content = candidate.Content.Parts[0].Text
 | 
			
		||||
				var builder strings.Builder
 | 
			
		||||
				for _, part := range candidate.Content.Parts {
 | 
			
		||||
					if i > 0 {
 | 
			
		||||
						builder.WriteString("\n")
 | 
			
		||||
					}
 | 
			
		||||
					builder.WriteString(part.Text)
 | 
			
		||||
				}
 | 
			
		||||
				choice.Message.Content = builder.String()
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			choice.Message.Content = ""
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@ var ModelList = []string{
 | 
			
		||||
	"gemini-pro", "gemini-pro-vision",
 | 
			
		||||
	"gemini-1.5-pro-001", "gemini-1.5-flash-001",
 | 
			
		||||
	"gemini-1.5-pro-002", "gemini-1.5-flash-002",
 | 
			
		||||
	"gemini-2.0-flash-exp",
 | 
			
		||||
	"gemini-2.0-flash-exp", "gemini-2.0-flash-thinking-exp",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Adaptor struct {
 | 
			
		||||
 
 | 
			
		||||
@@ -108,14 +108,15 @@ var ModelRatio = map[string]float64{
 | 
			
		||||
	"bge-large-en":       0.002 * RMB,
 | 
			
		||||
	"tao-8k":             0.002 * RMB,
 | 
			
		||||
	// https://ai.google.dev/pricing
 | 
			
		||||
	"gemini-pro":           1, // $0.00025 / 1k characters -> $0.001 / 1k tokens
 | 
			
		||||
	"gemini-1.0-pro":       1,
 | 
			
		||||
	"gemini-1.5-pro":       1,
 | 
			
		||||
	"gemini-1.5-pro-001":   1,
 | 
			
		||||
	"gemini-1.5-flash":     1,
 | 
			
		||||
	"gemini-1.5-flash-001": 1,
 | 
			
		||||
	"gemini-2.0-flash-exp": 1,
 | 
			
		||||
	"aqa":                  1,
 | 
			
		||||
	"gemini-pro":                    1, // $0.00025 / 1k characters -> $0.001 / 1k tokens
 | 
			
		||||
	"gemini-1.0-pro":                1,
 | 
			
		||||
	"gemini-1.5-pro":                1,
 | 
			
		||||
	"gemini-1.5-pro-001":            1,
 | 
			
		||||
	"gemini-1.5-flash":              1,
 | 
			
		||||
	"gemini-1.5-flash-001":          1,
 | 
			
		||||
	"gemini-2.0-flash-exp":          1,
 | 
			
		||||
	"gemini-2.0-flash-thinking-exp": 1,
 | 
			
		||||
	"aqa":                           1,
 | 
			
		||||
	// https://open.bigmodel.cn/pricing
 | 
			
		||||
	"glm-4":         0.1 * RMB,
 | 
			
		||||
	"glm-4v":        0.1 * RMB,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user