Retrieves a list of API configurations from a JSON stored in an environment variable or a file.
This function attempts to parse JSON data from the given env_or_file
parameter. If env_or_file
is an environment variable containing JSON data, it will be used directly. Otherwise, it is assumed to be a filename, and the function will attempt to read the file from the specified file_location
.
The filter_dict
parameter allows for filtering the configurations based on specified criteria. Each key in the filter_dict
corresponds to a field in the configuration dictionaries, and the associated value is a list or set of acceptable values for that field. If a field is missing in a configuration and None
is included in the list of acceptable values for that field, the configuration will still be considered a match.
PARAMETER | DESCRIPTION |
env_or_file | The name of the environment variable, the filename, or the environment variable of the filename that containing the JSON data. TYPE: str |
file_location | The directory path where the file is located, if env_or_file is a filename. TYPE: str DEFAULT: '' |
filter_dict | A dictionary specifying the filtering criteria for the configurations, with keys representing field names and values being lists or sets of acceptable values for those fields. TYPE: dict DEFAULT: None |
Example:
# Suppose we have an environment variable 'CONFIG_JSON' with the following content:
# '[{"model": "gpt-3.5-turbo", "api_type": "azure"}, {"model": "gpt-4"}]'
# We can retrieve a filtered list of configurations like this:
filter_criteria = {"model": ["gpt-3.5-turbo"]}
configs = config_list_from_json("CONFIG_JSON", filter_dict=filter_criteria)
# The 'configs' variable will now contain only the configurations that match the filter criteria.
RETURNS | DESCRIPTION |
list[dict[str, Any]] | List[Dict]: A list of configuration dictionaries that match the filtering criteria specified in filter_dict . |
RAISES | DESCRIPTION |
FileNotFoundError | if env_or_file is neither found as an environment variable nor a file |
Source code in autogen/oai/openai_utils.py
| @export_module("autogen")
@deprecated(
"`autogen.config_list_from_json(...)` is deprecated. "
'Please use the "autogen.LLMConfig.from_json(path="OAI_CONFIG_LIST")" method instead. '
"Scheduled for removal in 0.11.0 version."
)
def config_list_from_json(
env_or_file: str,
file_location: str | None = "",
filter_dict: dict[str, list[str | None] | set[str | None]] | None = None,
) -> list[dict[str, Any]]:
"""Retrieves a list of API configurations from a JSON stored in an environment variable or a file.
This function attempts to parse JSON data from the given `env_or_file` parameter. If `env_or_file` is an
environment variable containing JSON data, it will be used directly. Otherwise, it is assumed to be a filename,
and the function will attempt to read the file from the specified `file_location`.
The `filter_dict` parameter allows for filtering the configurations based on specified criteria. Each key in the
`filter_dict` corresponds to a field in the configuration dictionaries, and the associated value is a list or set
of acceptable values for that field. If a field is missing in a configuration and `None` is included in the list
of acceptable values for that field, the configuration will still be considered a match.
Args:
env_or_file (str): The name of the environment variable, the filename, or the environment variable of the filename
that containing the JSON data.
file_location (str, optional): The directory path where the file is located, if `env_or_file` is a filename.
filter_dict (dict, optional): A dictionary specifying the filtering criteria for the configurations, with
keys representing field names and values being lists or sets of acceptable values for those fields.
Example:
```python
# Suppose we have an environment variable 'CONFIG_JSON' with the following content:
# '[{"model": "gpt-3.5-turbo", "api_type": "azure"}, {"model": "gpt-4"}]'
# We can retrieve a filtered list of configurations like this:
filter_criteria = {"model": ["gpt-3.5-turbo"]}
configs = config_list_from_json("CONFIG_JSON", filter_dict=filter_criteria)
# The 'configs' variable will now contain only the configurations that match the filter criteria.
```
Returns:
List[Dict]: A list of configuration dictionaries that match the filtering criteria specified in `filter_dict`.
Raises:
FileNotFoundError: if env_or_file is neither found as an environment variable nor a file
"""
warnings.warn(
"`autogen.config_list_from_json(...)` is deprecated. "
'Please use the "autogen.LLMConfig.from_json(path="OAI_CONFIG_LIST")" method instead. '
"Scheduled for removal in 0.11.0 version.",
DeprecationWarning,
)
return latest_config_list_from_json(
env_or_file=env_or_file,
file_location=file_location,
filter_dict=filter_dict,
)
|