tiny_factory / tinytroupe /ab_testing.py
Jules
Upgrade TinyTroupe with Artificial Societies features and REST API
6dad1de
from typing import List, Dict, Any
import random
from dataclasses import dataclass
from tinytroupe.content_generation import ContentVariant
from tinytroupe.agent.tiny_person import TinyPerson
from tinytroupe.social_network import NetworkTopology
from tinytroupe.ml_models import EngagementPredictor
@dataclass
class ABTestResult:
variant_a: ContentVariant
variant_b: ContentVariant
winner: str
lift: float
class ABTestSimulator:
"""Simulate A/B tests to compare content variants"""
def __init__(self, predictor: EngagementPredictor):
self.predictor = predictor
def run_test(self, variant_a: ContentVariant, variant_b: ContentVariant,
audience: List[TinyPerson], network: NetworkTopology) -> ABTestResult:
# Placeholder for statistical A/B test simulation
return ABTestResult(
variant_a=variant_a,
variant_b=variant_b,
winner="A",
lift=0.15
)