claude.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package model_setting
  2. import (
  3. "net/http"
  4. "one-api/setting/config"
  5. )
  6. //var claudeHeadersSettings = map[string][]string{}
  7. //
  8. //var ClaudeThinkingAdapterEnabled = true
  9. //var ClaudeThinkingAdapterMaxTokens = 8192
  10. //var ClaudeThinkingAdapterBudgetTokensPercentage = 0.8
  11. // ClaudeSettings 定义Claude模型的配置
  12. type ClaudeSettings struct {
  13. HeadersSettings map[string][]string `json:"headers_settings"`
  14. ThinkingAdapterEnabled bool `json:"thinking_adapter_enabled"`
  15. ThinkingAdapterMaxTokens int `json:"thinking_adapter_max_tokens"`
  16. ThinkingAdapterBudgetTokensPercentage float64 `json:"thinking_adapter_budget_tokens_percentage"`
  17. }
  18. // 默认配置
  19. var defaultClaudeSettings = ClaudeSettings{
  20. HeadersSettings: map[string][]string{},
  21. ThinkingAdapterEnabled: true,
  22. ThinkingAdapterMaxTokens: 8192,
  23. ThinkingAdapterBudgetTokensPercentage: 0.8,
  24. }
  25. // 全局实例
  26. var claudeSettings = defaultClaudeSettings
  27. func init() {
  28. // 注册到全局配置管理器
  29. config.GlobalConfig.Register("claude", &claudeSettings)
  30. }
  31. // GetClaudeSettings 获取Claude配置
  32. func GetClaudeSettings() *ClaudeSettings {
  33. return &claudeSettings
  34. }
  35. func (c *ClaudeSettings) WriteHeaders(headers *http.Header) {
  36. for key, values := range c.HeadersSettings {
  37. headers.Del(key)
  38. for _, value := range values {
  39. headers.Add(key, value)
  40. }
  41. }
  42. }