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