| | package model_setting |
| |
|
| | import ( |
| | "one-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"` |
| | } |
| |
|
| | |
| | var defaultGeminiSettings = GeminiSettings{ |
| | SafetySettings: map[string]string{ |
| | "default": "OFF", |
| | "HARM_CATEGORY_CIVIC_INTEGRITY": "BLOCK_NONE", |
| | }, |
| | 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", |
| | }, |
| | ThinkingAdapterEnabled: false, |
| | ThinkingAdapterBudgetTokensPercentage: 0.6, |
| | } |
| |
|
| | |
| | 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 |
| | } |
| |
|