| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package model_setting
- import (
- "net/http"
- "one-api/setting/config"
- )
- //var claudeHeadersSettings = map[string][]string{}
- //
- //var ClaudeThinkingAdapterEnabled = true
- //var ClaudeThinkingAdapterMaxTokens = 8192
- //var ClaudeThinkingAdapterBudgetTokensPercentage = 0.8
- // ClaudeSettings 定义Claude模型的配置
- 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)
- }
- // GetClaudeSettings 获取Claude配置
- func GetClaudeSettings() *ClaudeSettings {
- // check default max tokens must have default key
- 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"]
- }
|