| | package model_setting |
| |
|
| | import ( |
| | "net/http" |
| | "one-api/setting/config" |
| | ) |
| |
|
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | type ClaudeSettings struct { |
| | HeadersSettings map[string]map[string][]string `json:"model_headers_settings"` |
| | DefaultMaxTokens map[string]int `json:"default_max_tokens"` |
| | ThinkingAdapterEnabled bool `json:"thinking_adapter_enabled"` |
| | ThinkingAdapterBudgetTokensPercentage float64 `json:"thinking_adapter_budget_tokens_percentage"` |
| | } |
| |
|
| | |
| | var defaultClaudeSettings = ClaudeSettings{ |
| | HeadersSettings: map[string]map[string][]string{}, |
| | ThinkingAdapterEnabled: true, |
| | DefaultMaxTokens: map[string]int{ |
| | "default": 8192, |
| | }, |
| | ThinkingAdapterBudgetTokensPercentage: 0.8, |
| | } |
| |
|
| | |
| | var claudeSettings = defaultClaudeSettings |
| |
|
| | func init() { |
| | |
| | config.GlobalConfig.Register("claude", &claudeSettings) |
| | } |
| |
|
| | |
| | func GetClaudeSettings() *ClaudeSettings { |
| | |
| | if _, ok := claudeSettings.DefaultMaxTokens["default"]; !ok { |
| | claudeSettings.DefaultMaxTokens["default"] = 8192 |
| | } |
| | return &claudeSettings |
| | } |
| |
|
| | func (c *ClaudeSettings) WriteHeaders(originModel string, httpHeader *http.Header) { |
| | if headers, ok := c.HeadersSettings[originModel]; ok { |
| | for headerKey, headerValues := range headers { |
| | httpHeader.Del(headerKey) |
| | for _, headerValue := range headerValues { |
| | httpHeader.Add(headerKey, headerValue) |
| | } |
| | } |
| | } |
| | } |
| |
|
| | func (c *ClaudeSettings) GetDefaultMaxTokens(model string) int { |
| | if maxTokens, ok := c.DefaultMaxTokens[model]; ok { |
| | return maxTokens |
| | } |
| | return c.DefaultMaxTokens["default"] |
| | } |
| |
|