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:
paramsDict[str, Any] - Dictionary containing parameters to validate.param_namestr - The name of the parameter to validate.allowed_typesTuple - Tuple of acceptable types for the parameter.allow_Nonebool - Whether the parameter can beNone.default_valueAny - 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 beNoneif not applicable.allowed_valuesOptional[List[Any]] - A list of acceptable values for the parameter. Can beNoneif no specific values are required.
Returns:
Any- The validated parameter value or the default value if validation fails.
Raises:
-
TypeError- Ifallowed_valuesis 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:
messagesList[Dict[str, Any]] - List of messagestoolsList[Dict[str, Any]] - List of toolshide_tools_paramstr - "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"])