oai.client_utils
Utilities for client classes
validate_parameter
def validate_parameter(params: Dict[str, Any], param_name: str,
allowed_types: Tuple, allow_None: bool,
default_value: Any, numerical_bound: Tuple,
allowed_values: list) -> Any
Validates a given config parameter, checking its type, values, and setting defaults
Arguments:
params
Dict[str, Any] - Dictionary containing parameters to validate.param_name
str - The name of the parameter to validate.allowed_types
Tuple - Tuple of acceptable types for the parameter.allow_None
bool - Whether the parameter can beNone
.default_value
Any - The default value to use if the parameter is invalid or missing. numerical_bound (Optional[Tuple[Optional[float], Optional[float]]]): A tuple specifying the lower and upper bounds for numerical parameters. Each bound can beNone
if not applicable.allowed_values
Optional[List[Any]] - A list of acceptable values for the parameter. Can beNone
if no specific values are required.
Returns:
Any
- The validated parameter value or the default value if validation fails.
Raises:
-
TypeError
- Ifallowed_values
is provided but is not a list.Example Usage:
# Validating a numerical parameter within specific bounds
params = {"temperature": 0.5, "safety_model": "Meta-Llama/Llama-Guard-7b"}
temperature = validate_parameter(params, "temperature", (int, float), True, 0.7, (0, 1), None)
# Result: 0.5
# Validating a parameter that can be one of a list of allowed values
model = validate_parameter(
params, "safety_model", str, True, None, None, ["Meta-Llama/Llama-Guard-7b", "Meta-Llama/Llama-Guard-13b"]
)
# If "safety_model" is missing or invalid in params, defaults to "default"
should_hide_tools
def should_hide_tools(messages: List[Dict[str, Any]], tools: List[Dict[str,
Any]],
hide_tools_param: str) -> bool
Determines if tools should be hidden. This function is used to hide tools when they have been run, minimising the chance of the LLM choosing them when they shouldn't.
Arguments:
messages
List[Dict[str, Any]] - List of messagestools
List[Dict[str, Any]] - List of toolshide_tools_param
str - "hide_tools" parameter value. Can be "if_all_run" (hide tools if all tools have been run), "if_any_run" (hide tools if any of the tools have been run), "never" (never hide tools). Default is "never".
Returns:
-
bool
- Indicates whether the tools should be excluded from the response create requestExample Usage:
# Validating a numerical parameter within specific bounds
messages = params.get("messages", [])
tools = params.get("tools", None)
hide_tools = should_hide_tools(messages, tools, params["hide_tools"])