DB-GPT/dbgpt/serve/core/config.py
2024-03-18 18:29:27 +08:00

32 lines
1.0 KiB
Python

from dataclasses import dataclass
from dbgpt.component import AppConfig
from dbgpt.util import BaseParameters
@dataclass
class BaseServeConfig(BaseParameters):
"""Base configuration class for serve"""
@classmethod
def from_app_config(cls, config: AppConfig, config_prefix: str):
"""Create a configuration object from a dictionary
Args:
config (AppConfig): Application configuration
config_prefix (str): Configuration prefix
"""
global_prefix = "dbgpt.app.global."
global_dict = config.get_all_by_prefix(global_prefix)
config_dict = config.get_all_by_prefix(config_prefix)
# remove prefix
config_dict = {
k[len(config_prefix) :]: v
for k, v in config_dict.items()
if k.startswith(config_prefix)
}
for k, v in global_dict.items():
if k not in config_dict and k[len(global_prefix) :] in cls().__dict__:
config_dict[k[len(global_prefix) :]] = v
return cls(**config_dict)