ciyidogan commited on
Commit
61eaacc
·
verified ·
1 Parent(s): 52b46b2

Update config_models.py

Browse files
Files changed (1) hide show
  1. config_models.py +39 -1
config_models.py CHANGED
@@ -30,6 +30,45 @@ class ProviderDefinition(BaseModelWithDatetime):
30
  requires_api_key: bool
31
  requires_repo_info: Optional[bool] = False
32
  description: str
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
 
35
  class ProviderSettings(BaseModelWithDatetime):
@@ -38,7 +77,6 @@ class ProviderSettings(BaseModelWithDatetime):
38
  endpoint: Optional[str] = None
39
  settings: Optional[Dict[str, Any]] = Field(default_factory=dict)
40
 
41
-
42
  # ===================== Global Config =====================
43
  class GlobalConfig(BaseModelWithDatetime):
44
  llm_provider: ProviderSettings = Field(
 
30
  requires_api_key: bool
31
  requires_repo_info: Optional[bool] = False
32
  description: str
33
+ features: Optional[Dict[str, Any]] = Field(default_factory=dict)
34
+
35
+ def has_feature(self, feature_name: str) -> bool:
36
+ """Check if provider has a specific feature"""
37
+ return feature_name in self.features if self.features else False
38
+
39
+ def get_feature(self, feature_name: str, default: Any = None) -> Any:
40
+ """Get feature value with default"""
41
+ if not self.features:
42
+ return default
43
+ return self.features.get(feature_name, default)
44
+
45
+ def get_feature_bool(self, feature_name: str, default: bool = False) -> bool:
46
+ """Get boolean feature value"""
47
+ if not self.features:
48
+ return default
49
+ value = self.features.get(feature_name, default)
50
+ if isinstance(value, bool):
51
+ return value
52
+ if isinstance(value, str):
53
+ return value.lower() in ('true', '1', 'yes', 'on')
54
+ return bool(value)
55
+
56
+ def get_feature_int(self, feature_name: str, default: int = 0) -> int:
57
+ """Get integer feature value"""
58
+ if not self.features:
59
+ return default
60
+ value = self.features.get(feature_name, default)
61
+ try:
62
+ return int(value)
63
+ except (ValueError, TypeError):
64
+ return default
65
+
66
+ def get_feature_str(self, feature_name: str, default: str = "") -> str:
67
+ """Get string feature value"""
68
+ if not self.features:
69
+ return default
70
+ value = self.features.get(feature_name, default)
71
+ return str(value) if value is not None else default
72
 
73
 
74
  class ProviderSettings(BaseModelWithDatetime):
 
77
  endpoint: Optional[str] = None
78
  settings: Optional[Dict[str, Any]] = Field(default_factory=dict)
79
 
 
80
  # ===================== Global Config =====================
81
  class GlobalConfig(BaseModelWithDatetime):
82
  llm_provider: ProviderSettings = Field(