|
|
package model_setting |
|
|
|
|
|
import ( |
|
|
"github.com/QuantumNous/new-api/setting/config" |
|
|
) |
|
|
|
|
|
|
|
|
type GeminiSettings struct { |
|
|
SafetySettings map[string]string `json:"safety_settings"` |
|
|
VersionSettings map[string]string `json:"version_settings"` |
|
|
SupportedImagineModels []string `json:"supported_imagine_models"` |
|
|
ThinkingAdapterEnabled bool `json:"thinking_adapter_enabled"` |
|
|
ThinkingAdapterBudgetTokensPercentage float64 `json:"thinking_adapter_budget_tokens_percentage"` |
|
|
FunctionCallThoughtSignatureEnabled bool `json:"function_call_thought_signature_enabled"` |
|
|
} |
|
|
|
|
|
|
|
|
var defaultGeminiSettings = GeminiSettings{ |
|
|
SafetySettings: map[string]string{ |
|
|
"default": "OFF", |
|
|
}, |
|
|
VersionSettings: map[string]string{ |
|
|
"default": "v1beta", |
|
|
"gemini-1.0-pro": "v1", |
|
|
}, |
|
|
SupportedImagineModels: []string{ |
|
|
"gemini-2.0-flash-exp-image-generation", |
|
|
"gemini-2.0-flash-exp", |
|
|
"gemini-3-pro-image-preview", |
|
|
"gemini-2.5-flash-image", |
|
|
"nano-banana", |
|
|
"nano-banana-pro", |
|
|
}, |
|
|
ThinkingAdapterEnabled: false, |
|
|
ThinkingAdapterBudgetTokensPercentage: 0.6, |
|
|
FunctionCallThoughtSignatureEnabled: true, |
|
|
} |
|
|
|
|
|
|
|
|
var geminiSettings = defaultGeminiSettings |
|
|
|
|
|
func init() { |
|
|
|
|
|
config.GlobalConfig.Register("gemini", &geminiSettings) |
|
|
} |
|
|
|
|
|
|
|
|
func GetGeminiSettings() *GeminiSettings { |
|
|
return &geminiSettings |
|
|
} |
|
|
|
|
|
|
|
|
func GetGeminiSafetySetting(key string) string { |
|
|
if value, ok := geminiSettings.SafetySettings[key]; ok { |
|
|
return value |
|
|
} |
|
|
return geminiSettings.SafetySettings["default"] |
|
|
} |
|
|
|
|
|
|
|
|
func GetGeminiVersionSetting(key string) string { |
|
|
if value, ok := geminiSettings.VersionSettings[key]; ok { |
|
|
return value |
|
|
} |
|
|
return geminiSettings.VersionSettings["default"] |
|
|
} |
|
|
|
|
|
func IsGeminiModelSupportImagine(model string) bool { |
|
|
for _, v := range geminiSettings.SupportedImagineModels { |
|
|
if v == model { |
|
|
return true |
|
|
} |
|
|
} |
|
|
return false |
|
|
} |
|
|
|