from pydantic_settings import BaseSettings from rdagent.components.workflow.conf import BasePropSetting class ModelBasePropSetting(BasePropSetting): class Config: env_prefix = "QLIB_MODEL_" """Use `QLIB_MODEL_` as prefix for environment variables""" protected_namespaces = () """Add 'model_' to the protected namespaces""" # 1) override base settings scen: str = "rdagent.scenarios.qlib.experiment.model_experiment.QlibModelScenario" """Scenario class for Qlib Model""" hypothesis_gen: str = "rdagent.scenarios.qlib.proposal.model_proposal.QlibModelHypothesisGen" """Hypothesis generation class""" hypothesis2experiment: str = "rdagent.scenarios.qlib.proposal.model_proposal.QlibModelHypothesis2Experiment" """Hypothesis to experiment class""" coder: str = "rdagent.scenarios.qlib.developer.model_coder.QlibModelCoSTEER" """Coder class""" runner: str = "rdagent.scenarios.qlib.developer.model_runner.QlibModelRunner" """Runner class""" summarizer: str = "rdagent.scenarios.qlib.developer.feedback.QlibModelHypothesisExperiment2Feedback" """Summarizer class""" evolving_n: int = 10 """Number of evolutions""" class FactorBasePropSetting(BasePropSetting): class Config: env_prefix = "QLIB_FACTOR_" """Use `QLIB_FACTOR_` as prefix for environment variables""" protected_namespaces = () """Add 'factor_' to the protected namespaces""" # 1) override base settings scen: str = "rdagent.scenarios.qlib.experiment.factor_experiment.QlibFactorScenario" """Scenario class for Qlib Factor""" hypothesis_gen: str = "rdagent.scenarios.qlib.proposal.factor_proposal.QlibFactorHypothesisGen" """Hypothesis generation class""" hypothesis2experiment: str = "rdagent.scenarios.qlib.proposal.factor_proposal.QlibFactorHypothesis2Experiment" """Hypothesis to experiment class""" coder: str = "rdagent.scenarios.qlib.developer.factor_coder.QlibFactorCoSTEER" """Coder class""" runner: str = "rdagent.scenarios.qlib.developer.factor_runner.QlibFactorRunner" """Runner class""" summarizer: str = "rdagent.scenarios.qlib.developer.feedback.QlibFactorHypothesisExperiment2Feedback" """Summarizer class""" evolving_n: int = 10 """Number of evolutions""" class FactorFromReportPropSetting(FactorBasePropSetting): # 1) override the scen attribute scen: str = "rdagent.scenarios.qlib.experiment.factor_from_report_experiment.QlibFactorFromReportScenario" """Scenario class for Qlib Factor from Report""" # 2) sub task specific: report_result_json_file_path: str = "git_ignore_folder/report_list.json" """Path to the JSON file listing research reports for factor extraction""" max_factors_per_exp: int = 10000 """Maximum number of factors implemented per experiment""" FACTOR_PROP_SETTING = FactorBasePropSetting() FACTOR_FROM_REPORT_PROP_SETTING = FactorFromReportPropSetting() MODEL_PROP_SETTING = ModelBasePropSetting()