Skip to content

Commit

Permalink
Update llm_config_object.py
Browse files Browse the repository at this point in the history
  • Loading branch information
aflament committed Mar 14, 2024
1 parent a640c26 commit 44ac0ea
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions council/llm/llm_config_object.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import yaml

from council.utils import DataObject, DataObjectSpecBase
from council.utils.parameter import Undefined


class LLMProviders(str, Enum):
Expand Down Expand Up @@ -58,17 +59,20 @@ def to_dict(self) -> Dict[str, Any]:
def must_get_value(self, key: str) -> Any:
return self.get_value(key=key, required=True)

def get_value(self, key: str, required: bool = False) -> Optional[Any]:
def get_value(self, key: str, required: bool = False, default: Optional[Any] = Undefined()) -> Optional[Any]:
maybe_value = self._specs.get(key, None)
if maybe_value is None and required:
raise Exception(f"{key} is required")
if maybe_value is None:
if not isinstance(default, Undefined):
return default

if isinstance(maybe_value, dict):
name: Optional[str] = maybe_value.get("fromEnvVar", None)
if name is not None:
value = os.environ.get(name)
return value
default_value: Optional[str] = maybe_value.get("default", None)
env_var_name: Optional[str] = maybe_value.get("fromEnvVar", None)
if env_var_name is not None:
maybe_value = os.environ.get(env_var_name, default_value)

if maybe_value is None and required:
raise Exception(f"LLMProvider {self.name} - A required key {key} is missing.")
return maybe_value

def __str__(self):
Expand Down

0 comments on commit 44ac0ea

Please sign in to comment.