# config_list_from_json

## `autogen.config_list_from_json`

```python
config_list_from_json(env_or_file, file_location='', filter_dict=None)
```

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.<br>**TYPE:** `str` |
| `file_location`   | The directory path where the file is located, if `env_or_file` is a filename.<br>**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.<br>**TYPE:** `dict` **DEFAULT:** `None` |

### 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         | 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`

```python
@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."
    # function implementation...
    return latest_config_list_from_json(
        env_or_file=env_or_file,
        file_location=file_location,
        filter_dict=filter_dict,
    )
```
