def __init__(self, **kwargs: Any) -> None:
outside_properties = list((self._get_base_model_class()).model_json_schema()["properties"].keys())
outside_properties.remove("config_list")
if "config_list" in kwargs and isinstance(kwargs["config_list"], dict):
kwargs["config_list"] = [kwargs["config_list"]]
modified_kwargs = (
kwargs
if "config_list" in kwargs
else {
**{
"config_list": [
{k: v for k, v in kwargs.items() if k not in outside_properties},
]
},
**{k: v for k, v in kwargs.items() if k in outside_properties},
}
)
modified_kwargs["config_list"] = [
_add_default_api_type(v) if isinstance(v, dict) else v for v in modified_kwargs["config_list"]
]
for x in ["max_tokens", "top_p"]:
if x in modified_kwargs:
modified_kwargs["config_list"] = [{**v, x: modified_kwargs[x]} for v in modified_kwargs["config_list"]]
modified_kwargs.pop(x)
self._model = self._get_base_model_class()(**modified_kwargs)