Generators¶
- class sim_panel.generators.GeneratorConfig(schema_version='0.1.0', seed=0, n_periods=1, policy=<factory>, selection=<factory>, execution=<factory>, outcome=None, validate_on_finish=True, max_errors=50, include_panelist_features_in_events=True, include_product_features_in_events=True, include_product_features_in_selection_prompt=True, event_namespace='sim_panel.v0', max_workers=1, prompting_strategy='persona', row_meta=<factory>)[source]¶
Bases:
objectTop-level generation config (YAML-governed in the CLI).
- Generators orchestrate:
policy exposure decisions
panelist selection/evaluation calls
outcome parsing/validation
schema event construction
optional schema validation
Notes
schema_version is stored per row and validated against schema registry.
seed governs RNG for exposure decisions and deterministic event ids.
- Parameters:
schema_version (str)
seed (int)
n_periods (int)
policy (PolicyConfig)
selection (SelectionConfig)
execution (ExecutionConfig)
outcome (OutcomeConfig | None)
validate_on_finish (bool)
max_errors (int)
include_panelist_features_in_events (bool)
include_product_features_in_events (bool)
include_product_features_in_selection_prompt (bool)
event_namespace (str)
max_workers (int)
prompting_strategy (str)
row_meta (Dict[str, Any])
- schema_version: str = '0.1.0'¶
- seed: int = 0¶
- n_periods: int = 1¶
- policy: PolicyConfig¶
- selection: SelectionConfig¶
- execution: ExecutionConfig¶
- outcome: OutcomeConfig | None = None¶
- validate_on_finish: bool = True¶
- max_errors: int = 50¶
- include_panelist_features_in_events: bool = True¶
- include_product_features_in_events: bool = True¶
- include_product_features_in_selection_prompt: bool = True¶
- event_namespace: str = 'sim_panel.v0'¶
- max_workers: int = 1¶
- prompting_strategy: str = 'persona'¶
- row_meta: Dict[str, Any]¶
- class sim_panel.generators.ExecutionConfig(rules=ExecutionRules(enforce_subset_of_choice_set=True, max_evals_per_panelist_per_t=None, allow_empty=True, keep_strategy='keep_first'))[source]¶
Bases:
objectGenerator-side operational rules (NOT panelist constraints). This controls how many evaluations we actually execute after parsing selection.
- Parameters:
rules (ExecutionRules)
- rules: ExecutionRules = ExecutionRules(enforce_subset_of_choice_set=True, max_evals_per_panelist_per_t=None, allow_empty=True, keep_strategy='keep_first')¶
- class sim_panel.generators.EventGenerator(cfg)[source]¶
Bases:
objectOrchestrates policy exposure + panelist selection/evaluation + outcomes into schema rows.
- Expectations:
panelists: Sequence[Panelist] runtime agents (LLM-capable)
products: Sequence[Product] runtime wrappers (record + display())
- Parameters:
cfg (GeneratorConfig)
- cfg: GeneratorConfig¶
- class sim_panel.generators.pipeline.EventGenerator(cfg)[source]¶
Bases:
objectOrchestrates policy exposure + panelist selection/evaluation + outcomes into schema rows.
- Expectations:
panelists: Sequence[Panelist] runtime agents (LLM-capable)
products: Sequence[Product] runtime wrappers (record + display())
- Parameters:
cfg (GeneratorConfig)
- cfg: GeneratorConfig¶
- class sim_panel.generators.types.ExecutionConfig(rules=ExecutionRules(enforce_subset_of_choice_set=True, max_evals_per_panelist_per_t=None, allow_empty=True, keep_strategy='keep_first'))[source]¶
Bases:
objectGenerator-side operational rules (NOT panelist constraints). This controls how many evaluations we actually execute after parsing selection.
- Parameters:
rules (ExecutionRules)
- rules: ExecutionRules = ExecutionRules(enforce_subset_of_choice_set=True, max_evals_per_panelist_per_t=None, allow_empty=True, keep_strategy='keep_first')¶
- class sim_panel.generators.types.GeneratorConfig(schema_version='0.1.0', seed=0, n_periods=1, policy=<factory>, selection=<factory>, execution=<factory>, outcome=None, validate_on_finish=True, max_errors=50, include_panelist_features_in_events=True, include_product_features_in_events=True, include_product_features_in_selection_prompt=True, event_namespace='sim_panel.v0', max_workers=1, prompting_strategy='persona', row_meta=<factory>)[source]¶
Bases:
objectTop-level generation config (YAML-governed in the CLI).
- Generators orchestrate:
policy exposure decisions
panelist selection/evaluation calls
outcome parsing/validation
schema event construction
optional schema validation
Notes
schema_version is stored per row and validated against schema registry.
seed governs RNG for exposure decisions and deterministic event ids.
- Parameters:
schema_version (str)
seed (int)
n_periods (int)
policy (PolicyConfig)
selection (SelectionConfig)
execution (ExecutionConfig)
outcome (OutcomeConfig | None)
validate_on_finish (bool)
max_errors (int)
include_panelist_features_in_events (bool)
include_product_features_in_events (bool)
include_product_features_in_selection_prompt (bool)
event_namespace (str)
max_workers (int)
prompting_strategy (str)
row_meta (Dict[str, Any])
- schema_version: str = '0.1.0'¶
- seed: int = 0¶
- n_periods: int = 1¶
- policy: PolicyConfig¶
- selection: SelectionConfig¶
- execution: ExecutionConfig¶
- outcome: OutcomeConfig | None = None¶
- validate_on_finish: bool = True¶
- max_errors: int = 50¶
- include_panelist_features_in_events: bool = True¶
- include_product_features_in_events: bool = True¶
- include_product_features_in_selection_prompt: bool = True¶
- event_namespace: str = 'sim_panel.v0'¶
- max_workers: int = 1¶
- prompting_strategy: str = 'persona'¶
- row_meta: Dict[str, Any]¶