feat: persist feature research and versioned alpha assessments
This commit is contained in:
@@ -6,8 +6,10 @@ from ..ai.capabilities import Capability
|
||||
from ..catalog.research_metadata import ResearchMetadata
|
||||
from ..schemas import Contract
|
||||
from .assets import Assets
|
||||
from .evaluations import Evaluations
|
||||
from .experiments import Experiments
|
||||
from .workspace_contracts import Expansion, SettingVariants
|
||||
from .features import Features
|
||||
from .workspace_contracts import AssetWrite, EvaluateInput, Expansion, FeatureSpec, SettingVariants
|
||||
|
||||
|
||||
class AssetQuery(Contract):
|
||||
@@ -21,6 +23,16 @@ class AssetReference(Contract):
|
||||
version: int | None = Field(default=None, ge=1)
|
||||
|
||||
|
||||
class FixedAssetReference(AssetReference):
|
||||
version: int = Field(ge=1)
|
||||
|
||||
|
||||
class FeatureWrite(Contract):
|
||||
content: FeatureSpec
|
||||
asset_id: str | None = Field(default=None, max_length=36)
|
||||
version: int | None = Field(default=None, ge=1)
|
||||
|
||||
|
||||
class ExperimentReference(Contract):
|
||||
experiment_id: str = Field(min_length=1, max_length=36)
|
||||
|
||||
@@ -105,3 +117,46 @@ CAPABILITIES = (
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
CAPABILITIES += (
|
||||
Capability(
|
||||
name="search_feature_plans",
|
||||
schema=AssetQuery,
|
||||
description="搜索版本化特征方案。",
|
||||
label="搜索特征方案",
|
||||
renderer="research",
|
||||
effect="query",
|
||||
handler=lambda ctx, args: Assets(ctx.business.db).list("feature", **args.model_dump()),
|
||||
),
|
||||
Capability(
|
||||
name="save_feature_plan",
|
||||
schema=FeatureWrite,
|
||||
description="保存固定输入、处理步骤和经济假设,不执行计算或回测。",
|
||||
label="保存特征方案",
|
||||
renderer="research",
|
||||
effect="prepare",
|
||||
handler=lambda ctx, args: Assets(ctx.business.db).save(
|
||||
AssetWrite(kind="feature", content=args.content.model_dump(mode="json"), version=args.version),
|
||||
args.asset_id,
|
||||
),
|
||||
),
|
||||
Capability(
|
||||
name="feature_to_template",
|
||||
schema=FixedAssetReference,
|
||||
description="将指定特征方案版本转为新模板,保留来源。",
|
||||
label="特征转为模板",
|
||||
renderer="research",
|
||||
effect="prepare",
|
||||
handler=lambda ctx, args: Features(ctx.business.db).to_template(args.asset_id, args.version),
|
||||
),
|
||||
Capability(
|
||||
name="evaluate_research",
|
||||
schema=EvaluateInput,
|
||||
description="保存版本化规则评估,缺失数据不会作为通过,不修改研究状态。",
|
||||
label="保存规则评估",
|
||||
renderer="research",
|
||||
effect="prepare",
|
||||
handler=lambda ctx, args: Evaluations(ctx.business.db).create(args),
|
||||
),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user