init
This commit is contained in:
59
AlgoriAgent/src/agentscope/models/config.py
Normal file
59
AlgoriAgent/src/agentscope/models/config.py
Normal file
@@ -0,0 +1,59 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""The model config."""
|
||||
from typing import Union, Sequence, Any
|
||||
|
||||
from loguru import logger
|
||||
|
||||
|
||||
class _ModelConfig(dict):
|
||||
"""Base class for model config."""
|
||||
|
||||
__getattr__ = dict.__getitem__
|
||||
__setattr__ = dict.__setitem__
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
config_name: str,
|
||||
model_type: str = None,
|
||||
**kwargs: Any,
|
||||
):
|
||||
"""Initialize the config with the given arguments, and checking the
|
||||
type of the arguments.
|
||||
|
||||
Args:
|
||||
config_name (`str`): A unique name of the model config.
|
||||
model_type (`str`, optional): The class name (or its model type) of
|
||||
the generated model wrapper. Defaults to None.
|
||||
|
||||
Raises:
|
||||
`ValueError`: If `config_name` is not provided.
|
||||
"""
|
||||
if config_name is None:
|
||||
raise ValueError("The `config_name` field is required for Cfg")
|
||||
if model_type is None:
|
||||
logger.warning(
|
||||
f"`model_type` is not provided in config [{config_name}],"
|
||||
" use `PostAPIModelWrapperBase` by default.",
|
||||
)
|
||||
super().__init__(
|
||||
config_name=config_name,
|
||||
model_type=model_type,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def format_configs(
|
||||
cls,
|
||||
configs: Union[Sequence[dict], dict],
|
||||
) -> Sequence:
|
||||
"""Covert config dicts into a list of _ModelConfig.
|
||||
|
||||
Args:
|
||||
configs (Union[Sequence[dict], dict]): configs in dict format.
|
||||
|
||||
Returns:
|
||||
Sequence[_ModelConfig]: converted ModelConfig list.
|
||||
"""
|
||||
if isinstance(configs, dict):
|
||||
return [_ModelConfig(**configs)]
|
||||
return [_ModelConfig(**cfg) for cfg in configs]
|
||||
Reference in New Issue
Block a user