File size: 2,248 Bytes
aceb1b2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
"""
User Simulator for Potato Annotation Platform.

This module provides tools for simulating multiple annotators with varying
competence levels and behaviors for testing purposes.

Example usage:
    from potato.simulator import SimulatorManager, SimulatorConfig

    config = SimulatorConfig(
        user_count=10,
        strategy="random",
        competence_distribution={"good": 0.5, "average": 0.3, "poor": 0.2}
    )

    manager = SimulatorManager(config, "http://localhost:8000")
    results = manager.run_parallel(max_annotations_per_user=20)

    print(manager.get_summary())
"""

from .config import (
    SimulatorConfig,
    UserConfig,
    TimingConfig,
    LLMStrategyConfig,
    BiasedStrategyConfig,
    PatternStrategyConfig,
    AgentStrategyConfig,
    InteractiveConfig,
    CompetenceLevel,
    AnnotationStrategyType,
)
from .competence_profiles import (
    CompetenceProfile,
    create_competence_profile,
)
from .annotation_strategies import (
    AnnotationStrategy,
    RandomStrategy,
    BiasedStrategy,
    LLMStrategy,
    PatternStrategy,
    create_strategy,
)
from .agent_strategy import AgentSimulatorStrategy
from .interactive_runner import InteractiveSessionRunner, InteractiveSessionResult
from .timing_models import TimingModel
from .user_simulator import SimulatedUser, UserSimulationResult, AnnotationRecord
from .simulator_manager import SimulatorManager
from .reporting import SimulationReporter

__all__ = [
    # Config
    "SimulatorConfig",
    "UserConfig",
    "TimingConfig",
    "LLMStrategyConfig",
    "BiasedStrategyConfig",
    "PatternStrategyConfig",
    "AgentStrategyConfig",
    "InteractiveConfig",
    "CompetenceLevel",
    "AnnotationStrategyType",
    # Competence
    "CompetenceProfile",
    "create_competence_profile",
    # Strategies
    "AnnotationStrategy",
    "RandomStrategy",
    "BiasedStrategy",
    "LLMStrategy",
    "PatternStrategy",
    "AgentSimulatorStrategy",
    "InteractiveSessionRunner",
    "InteractiveSessionResult",
    "create_strategy",
    # Timing
    "TimingModel",
    # User simulation
    "SimulatedUser",
    "UserSimulationResult",
    "AnnotationRecord",
    # Manager
    "SimulatorManager",
    # Reporting
    "SimulationReporter",
]