edsl 0.1.39.dev1__py3-none-any.whl → 0.1.39.dev3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- edsl/Base.py +332 -332
- edsl/BaseDiff.py +260 -260
- edsl/TemplateLoader.py +24 -24
- edsl/__init__.py +49 -49
- edsl/__version__.py +1 -1
- edsl/agents/Agent.py +867 -867
- edsl/agents/AgentList.py +413 -413
- edsl/agents/Invigilator.py +233 -233
- edsl/agents/InvigilatorBase.py +270 -265
- edsl/agents/PromptConstructor.py +354 -354
- edsl/agents/__init__.py +3 -3
- edsl/agents/descriptors.py +99 -99
- edsl/agents/prompt_helpers.py +129 -129
- edsl/auto/AutoStudy.py +117 -117
- edsl/auto/StageBase.py +230 -230
- edsl/auto/StageGenerateSurvey.py +178 -178
- edsl/auto/StageLabelQuestions.py +125 -125
- edsl/auto/StagePersona.py +61 -61
- edsl/auto/StagePersonaDimensionValueRanges.py +88 -88
- edsl/auto/StagePersonaDimensionValues.py +74 -74
- edsl/auto/StagePersonaDimensions.py +69 -69
- edsl/auto/StageQuestions.py +73 -73
- edsl/auto/SurveyCreatorPipeline.py +21 -21
- edsl/auto/utilities.py +224 -224
- edsl/base/Base.py +279 -279
- edsl/config.py +157 -157
- edsl/conversation/Conversation.py +290 -290
- edsl/conversation/car_buying.py +58 -58
- edsl/conversation/chips.py +95 -95
- edsl/conversation/mug_negotiation.py +81 -81
- edsl/conversation/next_speaker_utilities.py +93 -93
- edsl/coop/PriceFetcher.py +54 -54
- edsl/coop/__init__.py +2 -2
- edsl/coop/coop.py +1028 -1028
- edsl/coop/utils.py +131 -131
- edsl/data/Cache.py +555 -555
- edsl/data/CacheEntry.py +233 -233
- edsl/data/CacheHandler.py +149 -149
- edsl/data/RemoteCacheSync.py +78 -78
- edsl/data/SQLiteDict.py +292 -292
- edsl/data/__init__.py +4 -4
- edsl/data/orm.py +10 -10
- edsl/data_transfer_models.py +73 -73
- edsl/enums.py +175 -175
- edsl/exceptions/BaseException.py +21 -21
- edsl/exceptions/__init__.py +54 -54
- edsl/exceptions/agents.py +42 -42
- edsl/exceptions/cache.py +5 -5
- edsl/exceptions/configuration.py +16 -16
- edsl/exceptions/coop.py +10 -10
- edsl/exceptions/data.py +14 -14
- edsl/exceptions/general.py +34 -34
- edsl/exceptions/jobs.py +33 -33
- edsl/exceptions/language_models.py +63 -63
- edsl/exceptions/prompts.py +15 -15
- edsl/exceptions/questions.py +91 -91
- edsl/exceptions/results.py +29 -29
- edsl/exceptions/scenarios.py +22 -22
- edsl/exceptions/surveys.py +37 -37
- edsl/inference_services/AnthropicService.py +87 -87
- edsl/inference_services/AwsBedrock.py +120 -120
- edsl/inference_services/AzureAI.py +217 -217
- edsl/inference_services/DeepInfraService.py +18 -18
- edsl/inference_services/GoogleService.py +148 -148
- edsl/inference_services/GroqService.py +20 -20
- edsl/inference_services/InferenceServiceABC.py +147 -147
- edsl/inference_services/InferenceServicesCollection.py +97 -97
- edsl/inference_services/MistralAIService.py +123 -123
- edsl/inference_services/OllamaService.py +18 -18
- edsl/inference_services/OpenAIService.py +224 -224
- edsl/inference_services/PerplexityService.py +163 -163
- edsl/inference_services/TestService.py +89 -89
- edsl/inference_services/TogetherAIService.py +170 -170
- edsl/inference_services/models_available_cache.py +118 -118
- edsl/inference_services/rate_limits_cache.py +25 -25
- edsl/inference_services/registry.py +41 -41
- edsl/inference_services/write_available.py +10 -10
- edsl/jobs/Answers.py +56 -56
- edsl/jobs/Jobs.py +898 -898
- edsl/jobs/JobsChecks.py +147 -147
- edsl/jobs/JobsPrompts.py +268 -268
- edsl/jobs/JobsRemoteInferenceHandler.py +239 -239
- edsl/jobs/__init__.py +1 -1
- edsl/jobs/buckets/BucketCollection.py +63 -63
- edsl/jobs/buckets/ModelBuckets.py +65 -65
- edsl/jobs/buckets/TokenBucket.py +251 -251
- edsl/jobs/interviews/Interview.py +661 -661
- edsl/jobs/interviews/InterviewExceptionCollection.py +99 -99
- edsl/jobs/interviews/InterviewExceptionEntry.py +186 -186
- edsl/jobs/interviews/InterviewStatistic.py +63 -63
- edsl/jobs/interviews/InterviewStatisticsCollection.py +25 -25
- edsl/jobs/interviews/InterviewStatusDictionary.py +78 -78
- edsl/jobs/interviews/InterviewStatusLog.py +92 -92
- edsl/jobs/interviews/ReportErrors.py +66 -66
- edsl/jobs/interviews/interview_status_enum.py +9 -9
- edsl/jobs/runners/JobsRunnerAsyncio.py +466 -466
- edsl/jobs/runners/JobsRunnerStatus.py +330 -330
- edsl/jobs/tasks/QuestionTaskCreator.py +242 -242
- edsl/jobs/tasks/TaskCreators.py +64 -64
- edsl/jobs/tasks/TaskHistory.py +450 -450
- edsl/jobs/tasks/TaskStatusLog.py +23 -23
- edsl/jobs/tasks/task_status_enum.py +163 -163
- edsl/jobs/tokens/InterviewTokenUsage.py +27 -27
- edsl/jobs/tokens/TokenUsage.py +34 -34
- edsl/language_models/KeyLookup.py +30 -30
- edsl/language_models/LanguageModel.py +668 -668
- edsl/language_models/ModelList.py +155 -155
- edsl/language_models/RegisterLanguageModelsMeta.py +184 -184
- edsl/language_models/__init__.py +3 -3
- edsl/language_models/fake_openai_call.py +15 -15
- edsl/language_models/fake_openai_service.py +61 -61
- edsl/language_models/registry.py +190 -190
- edsl/language_models/repair.py +156 -156
- edsl/language_models/unused/ReplicateBase.py +83 -83
- edsl/language_models/utilities.py +64 -64
- edsl/notebooks/Notebook.py +258 -258
- edsl/notebooks/__init__.py +1 -1
- edsl/prompts/Prompt.py +362 -362
- edsl/prompts/__init__.py +2 -2
- edsl/questions/AnswerValidatorMixin.py +289 -289
- edsl/questions/QuestionBase.py +664 -664
- edsl/questions/QuestionBaseGenMixin.py +161 -161
- edsl/questions/QuestionBasePromptsMixin.py +217 -217
- edsl/questions/QuestionBudget.py +227 -227
- edsl/questions/QuestionCheckBox.py +359 -359
- edsl/questions/QuestionExtract.py +182 -182
- edsl/questions/QuestionFreeText.py +114 -114
- edsl/questions/QuestionFunctional.py +166 -166
- edsl/questions/QuestionList.py +231 -231
- edsl/questions/QuestionMultipleChoice.py +286 -286
- edsl/questions/QuestionNumerical.py +153 -153
- edsl/questions/QuestionRank.py +324 -324
- edsl/questions/Quick.py +41 -41
- edsl/questions/RegisterQuestionsMeta.py +71 -71
- edsl/questions/ResponseValidatorABC.py +174 -174
- edsl/questions/SimpleAskMixin.py +73 -73
- edsl/questions/__init__.py +26 -26
- edsl/questions/compose_questions.py +98 -98
- edsl/questions/decorators.py +21 -21
- edsl/questions/derived/QuestionLikertFive.py +76 -76
- edsl/questions/derived/QuestionLinearScale.py +87 -87
- edsl/questions/derived/QuestionTopK.py +93 -93
- edsl/questions/derived/QuestionYesNo.py +82 -82
- edsl/questions/descriptors.py +413 -413
- edsl/questions/prompt_templates/question_budget.jinja +13 -13
- edsl/questions/prompt_templates/question_checkbox.jinja +32 -32
- edsl/questions/prompt_templates/question_extract.jinja +11 -11
- edsl/questions/prompt_templates/question_free_text.jinja +3 -3
- edsl/questions/prompt_templates/question_linear_scale.jinja +11 -11
- edsl/questions/prompt_templates/question_list.jinja +17 -17
- edsl/questions/prompt_templates/question_multiple_choice.jinja +33 -33
- edsl/questions/prompt_templates/question_numerical.jinja +36 -36
- edsl/questions/question_registry.py +177 -177
- edsl/questions/settings.py +12 -12
- edsl/questions/templates/budget/answering_instructions.jinja +7 -7
- edsl/questions/templates/budget/question_presentation.jinja +7 -7
- edsl/questions/templates/checkbox/answering_instructions.jinja +10 -10
- edsl/questions/templates/checkbox/question_presentation.jinja +22 -22
- edsl/questions/templates/extract/answering_instructions.jinja +7 -7
- edsl/questions/templates/likert_five/answering_instructions.jinja +10 -10
- edsl/questions/templates/likert_five/question_presentation.jinja +11 -11
- edsl/questions/templates/linear_scale/answering_instructions.jinja +5 -5
- edsl/questions/templates/linear_scale/question_presentation.jinja +5 -5
- edsl/questions/templates/list/answering_instructions.jinja +3 -3
- edsl/questions/templates/list/question_presentation.jinja +5 -5
- edsl/questions/templates/multiple_choice/answering_instructions.jinja +9 -9
- edsl/questions/templates/multiple_choice/question_presentation.jinja +11 -11
- edsl/questions/templates/numerical/answering_instructions.jinja +6 -6
- edsl/questions/templates/numerical/question_presentation.jinja +6 -6
- edsl/questions/templates/rank/answering_instructions.jinja +11 -11
- edsl/questions/templates/rank/question_presentation.jinja +15 -15
- edsl/questions/templates/top_k/answering_instructions.jinja +8 -8
- edsl/questions/templates/top_k/question_presentation.jinja +22 -22
- edsl/questions/templates/yes_no/answering_instructions.jinja +6 -6
- edsl/questions/templates/yes_no/question_presentation.jinja +11 -11
- edsl/results/CSSParameterizer.py +108 -108
- edsl/results/Dataset.py +424 -424
- edsl/results/DatasetExportMixin.py +731 -731
- edsl/results/DatasetTree.py +275 -275
- edsl/results/Result.py +465 -465
- edsl/results/Results.py +1165 -1165
- edsl/results/ResultsDBMixin.py +238 -238
- edsl/results/ResultsExportMixin.py +43 -43
- edsl/results/ResultsFetchMixin.py +33 -33
- edsl/results/ResultsGGMixin.py +121 -121
- edsl/results/ResultsToolsMixin.py +98 -98
- edsl/results/Selector.py +135 -135
- edsl/results/TableDisplay.py +198 -198
- edsl/results/__init__.py +2 -2
- edsl/results/table_display.css +77 -77
- edsl/results/tree_explore.py +115 -115
- edsl/scenarios/FileStore.py +632 -632
- edsl/scenarios/Scenario.py +601 -601
- edsl/scenarios/ScenarioHtmlMixin.py +64 -64
- edsl/scenarios/ScenarioJoin.py +127 -127
- edsl/scenarios/ScenarioList.py +1287 -1287
- edsl/scenarios/ScenarioListExportMixin.py +52 -52
- edsl/scenarios/ScenarioListPdfMixin.py +261 -261
- edsl/scenarios/__init__.py +4 -4
- edsl/shared.py +1 -1
- edsl/study/ObjectEntry.py +173 -173
- edsl/study/ProofOfWork.py +113 -113
- edsl/study/SnapShot.py +80 -80
- edsl/study/Study.py +528 -528
- edsl/study/__init__.py +4 -4
- edsl/surveys/DAG.py +148 -148
- edsl/surveys/Memory.py +31 -31
- edsl/surveys/MemoryPlan.py +244 -244
- edsl/surveys/Rule.py +326 -326
- edsl/surveys/RuleCollection.py +387 -387
- edsl/surveys/Survey.py +1801 -1801
- edsl/surveys/SurveyCSS.py +261 -261
- edsl/surveys/SurveyExportMixin.py +259 -259
- edsl/surveys/SurveyFlowVisualizationMixin.py +179 -179
- edsl/surveys/SurveyQualtricsImport.py +284 -284
- edsl/surveys/__init__.py +3 -3
- edsl/surveys/base.py +53 -53
- edsl/surveys/descriptors.py +56 -56
- edsl/surveys/instructions/ChangeInstruction.py +49 -49
- edsl/surveys/instructions/Instruction.py +65 -65
- edsl/surveys/instructions/InstructionCollection.py +77 -77
- edsl/templates/error_reporting/base.html +23 -23
- edsl/templates/error_reporting/exceptions_by_model.html +34 -34
- edsl/templates/error_reporting/exceptions_by_question_name.html +16 -16
- edsl/templates/error_reporting/exceptions_by_type.html +16 -16
- edsl/templates/error_reporting/interview_details.html +115 -115
- edsl/templates/error_reporting/interviews.html +19 -19
- edsl/templates/error_reporting/overview.html +4 -4
- edsl/templates/error_reporting/performance_plot.html +1 -1
- edsl/templates/error_reporting/report.css +73 -73
- edsl/templates/error_reporting/report.html +117 -117
- edsl/templates/error_reporting/report.js +25 -25
- edsl/tools/__init__.py +1 -1
- edsl/tools/clusters.py +192 -192
- edsl/tools/embeddings.py +27 -27
- edsl/tools/embeddings_plotting.py +118 -118
- edsl/tools/plotting.py +112 -112
- edsl/tools/summarize.py +18 -18
- edsl/utilities/SystemInfo.py +28 -28
- edsl/utilities/__init__.py +22 -22
- edsl/utilities/ast_utilities.py +25 -25
- edsl/utilities/data/Registry.py +6 -6
- edsl/utilities/data/__init__.py +1 -1
- edsl/utilities/data/scooter_results.json +1 -1
- edsl/utilities/decorators.py +77 -77
- edsl/utilities/gcp_bucket/cloud_storage.py +96 -96
- edsl/utilities/interface.py +627 -627
- edsl/utilities/naming_utilities.py +263 -263
- edsl/utilities/repair_functions.py +28 -28
- edsl/utilities/restricted_python.py +70 -70
- edsl/utilities/utilities.py +424 -424
- {edsl-0.1.39.dev1.dist-info → edsl-0.1.39.dev3.dist-info}/LICENSE +21 -21
- {edsl-0.1.39.dev1.dist-info → edsl-0.1.39.dev3.dist-info}/METADATA +1 -1
- edsl-0.1.39.dev3.dist-info/RECORD +277 -0
- edsl-0.1.39.dev1.dist-info/RECORD +0 -277
- {edsl-0.1.39.dev1.dist-info → edsl-0.1.39.dev3.dist-info}/WHEEL +0 -0
edsl/auto/AutoStudy.py
CHANGED
@@ -1,117 +1,117 @@
|
|
1
|
-
from typing import Optional
|
2
|
-
|
3
|
-
from edsl import Model
|
4
|
-
from edsl.auto.StageQuestions import StageQuestions
|
5
|
-
from edsl.auto.StagePersona import StagePersona
|
6
|
-
from edsl.auto.StagePersonaDimensions import StagePersonaDimensions
|
7
|
-
from edsl.auto.StagePersonaDimensionValues import StagePersonaDimensionValues
|
8
|
-
from edsl.auto.StagePersonaDimensionValueRanges import (
|
9
|
-
StagePersonaDimensionValueRanges,
|
10
|
-
)
|
11
|
-
from edsl.auto.StageLabelQuestions import StageLabelQuestions
|
12
|
-
from edsl.auto.StageGenerateSurvey import StageGenerateSurvey
|
13
|
-
|
14
|
-
# from edsl.auto.StageBase import gen_pipeline
|
15
|
-
|
16
|
-
from edsl.auto.utilities import agent_generator, create_agents, gen_pipeline
|
17
|
-
|
18
|
-
|
19
|
-
class AutoStudy:
|
20
|
-
def __init__(
|
21
|
-
self,
|
22
|
-
overall_question: str,
|
23
|
-
population: str,
|
24
|
-
model: Optional["Model"] = None,
|
25
|
-
survey: Optional["Survey"] = None,
|
26
|
-
agent_list: Optional["AgentList"] = None,
|
27
|
-
default_num_agents=11,
|
28
|
-
):
|
29
|
-
self.overall_question = overall_question
|
30
|
-
self.population = population
|
31
|
-
self._survey = survey
|
32
|
-
self._agent_list = agent_list
|
33
|
-
self._agent_list_generator = None
|
34
|
-
self._persona_mapping = None
|
35
|
-
self._results = None
|
36
|
-
self.default_num_agents = default_num_agents
|
37
|
-
self.model = model or Model()
|
38
|
-
|
39
|
-
@property
|
40
|
-
def survey(self):
|
41
|
-
if self._survey is None:
|
42
|
-
self._survey = self._create_survey()
|
43
|
-
return self._survey
|
44
|
-
|
45
|
-
@property
|
46
|
-
def persona_mapping(self):
|
47
|
-
if self._persona_mapping is None:
|
48
|
-
self._persona_mapping = self._create_persona_mapping()
|
49
|
-
return self._persona_mapping
|
50
|
-
|
51
|
-
@property
|
52
|
-
def agent_list_generator(self):
|
53
|
-
if self._agent_list_generator is None:
|
54
|
-
self._agent_list_generator = self._create_agent_list_generator()
|
55
|
-
return self._agent_list_generator
|
56
|
-
|
57
|
-
@property
|
58
|
-
def results(self):
|
59
|
-
if self._results is None:
|
60
|
-
self._results = self._create_results()
|
61
|
-
return self._results
|
62
|
-
|
63
|
-
def _create_survey(self):
|
64
|
-
survey_pipline_stages = [
|
65
|
-
StageQuestions,
|
66
|
-
StageLabelQuestions,
|
67
|
-
StageGenerateSurvey,
|
68
|
-
]
|
69
|
-
survey_pipeline = gen_pipeline(survey_pipline_stages)
|
70
|
-
return survey_pipeline.process(
|
71
|
-
data=survey_pipeline.input(
|
72
|
-
overall_question=self.overall_question, population=self.population
|
73
|
-
)
|
74
|
-
).survey
|
75
|
-
|
76
|
-
def _create_persona_mapping(self):
|
77
|
-
persona_pipeline_stages = [
|
78
|
-
StageQuestions,
|
79
|
-
StagePersona,
|
80
|
-
StagePersonaDimensions,
|
81
|
-
StagePersonaDimensionValues,
|
82
|
-
StagePersonaDimensionValueRanges,
|
83
|
-
]
|
84
|
-
|
85
|
-
persona_pipeline = gen_pipeline(persona_pipeline_stages)
|
86
|
-
sample_agent_results = persona_pipeline.process(
|
87
|
-
persona_pipeline.input(
|
88
|
-
overall_question=overall_question, population=self.population
|
89
|
-
)
|
90
|
-
)
|
91
|
-
return sample_agent_results
|
92
|
-
|
93
|
-
def _create_agent_list_generator(self):
|
94
|
-
return agent_generator(
|
95
|
-
persona=self.persona_mapping.persona,
|
96
|
-
dimension_dict=self.persona_mapping.mapping,
|
97
|
-
)
|
98
|
-
|
99
|
-
def agent_list(self, num_agents):
|
100
|
-
return create_agents(
|
101
|
-
agent_generator=self.agent_list_generator,
|
102
|
-
survey=self.survey,
|
103
|
-
num_agents=num_agents,
|
104
|
-
)
|
105
|
-
|
106
|
-
def _create_results(self, num_agents=None):
|
107
|
-
if num_agents is None:
|
108
|
-
num_agents = self.default_num_agents
|
109
|
-
agent_list = self.agent_list(num_agents)
|
110
|
-
return self.survey.by(agent_list).by(self.model).run()
|
111
|
-
|
112
|
-
|
113
|
-
if __name__ == "__main__":
|
114
|
-
overall_question = "Should online platforms be regulated with respect to selling electric scooters?"
|
115
|
-
auto_study = AutoStudy(overall_question, population="US Adults")
|
116
|
-
|
117
|
-
results = auto_study.results
|
1
|
+
from typing import Optional
|
2
|
+
|
3
|
+
from edsl import Model
|
4
|
+
from edsl.auto.StageQuestions import StageQuestions
|
5
|
+
from edsl.auto.StagePersona import StagePersona
|
6
|
+
from edsl.auto.StagePersonaDimensions import StagePersonaDimensions
|
7
|
+
from edsl.auto.StagePersonaDimensionValues import StagePersonaDimensionValues
|
8
|
+
from edsl.auto.StagePersonaDimensionValueRanges import (
|
9
|
+
StagePersonaDimensionValueRanges,
|
10
|
+
)
|
11
|
+
from edsl.auto.StageLabelQuestions import StageLabelQuestions
|
12
|
+
from edsl.auto.StageGenerateSurvey import StageGenerateSurvey
|
13
|
+
|
14
|
+
# from edsl.auto.StageBase import gen_pipeline
|
15
|
+
|
16
|
+
from edsl.auto.utilities import agent_generator, create_agents, gen_pipeline
|
17
|
+
|
18
|
+
|
19
|
+
class AutoStudy:
|
20
|
+
def __init__(
|
21
|
+
self,
|
22
|
+
overall_question: str,
|
23
|
+
population: str,
|
24
|
+
model: Optional["Model"] = None,
|
25
|
+
survey: Optional["Survey"] = None,
|
26
|
+
agent_list: Optional["AgentList"] = None,
|
27
|
+
default_num_agents=11,
|
28
|
+
):
|
29
|
+
self.overall_question = overall_question
|
30
|
+
self.population = population
|
31
|
+
self._survey = survey
|
32
|
+
self._agent_list = agent_list
|
33
|
+
self._agent_list_generator = None
|
34
|
+
self._persona_mapping = None
|
35
|
+
self._results = None
|
36
|
+
self.default_num_agents = default_num_agents
|
37
|
+
self.model = model or Model()
|
38
|
+
|
39
|
+
@property
|
40
|
+
def survey(self):
|
41
|
+
if self._survey is None:
|
42
|
+
self._survey = self._create_survey()
|
43
|
+
return self._survey
|
44
|
+
|
45
|
+
@property
|
46
|
+
def persona_mapping(self):
|
47
|
+
if self._persona_mapping is None:
|
48
|
+
self._persona_mapping = self._create_persona_mapping()
|
49
|
+
return self._persona_mapping
|
50
|
+
|
51
|
+
@property
|
52
|
+
def agent_list_generator(self):
|
53
|
+
if self._agent_list_generator is None:
|
54
|
+
self._agent_list_generator = self._create_agent_list_generator()
|
55
|
+
return self._agent_list_generator
|
56
|
+
|
57
|
+
@property
|
58
|
+
def results(self):
|
59
|
+
if self._results is None:
|
60
|
+
self._results = self._create_results()
|
61
|
+
return self._results
|
62
|
+
|
63
|
+
def _create_survey(self):
|
64
|
+
survey_pipline_stages = [
|
65
|
+
StageQuestions,
|
66
|
+
StageLabelQuestions,
|
67
|
+
StageGenerateSurvey,
|
68
|
+
]
|
69
|
+
survey_pipeline = gen_pipeline(survey_pipline_stages)
|
70
|
+
return survey_pipeline.process(
|
71
|
+
data=survey_pipeline.input(
|
72
|
+
overall_question=self.overall_question, population=self.population
|
73
|
+
)
|
74
|
+
).survey
|
75
|
+
|
76
|
+
def _create_persona_mapping(self):
|
77
|
+
persona_pipeline_stages = [
|
78
|
+
StageQuestions,
|
79
|
+
StagePersona,
|
80
|
+
StagePersonaDimensions,
|
81
|
+
StagePersonaDimensionValues,
|
82
|
+
StagePersonaDimensionValueRanges,
|
83
|
+
]
|
84
|
+
|
85
|
+
persona_pipeline = gen_pipeline(persona_pipeline_stages)
|
86
|
+
sample_agent_results = persona_pipeline.process(
|
87
|
+
persona_pipeline.input(
|
88
|
+
overall_question=overall_question, population=self.population
|
89
|
+
)
|
90
|
+
)
|
91
|
+
return sample_agent_results
|
92
|
+
|
93
|
+
def _create_agent_list_generator(self):
|
94
|
+
return agent_generator(
|
95
|
+
persona=self.persona_mapping.persona,
|
96
|
+
dimension_dict=self.persona_mapping.mapping,
|
97
|
+
)
|
98
|
+
|
99
|
+
def agent_list(self, num_agents):
|
100
|
+
return create_agents(
|
101
|
+
agent_generator=self.agent_list_generator,
|
102
|
+
survey=self.survey,
|
103
|
+
num_agents=num_agents,
|
104
|
+
)
|
105
|
+
|
106
|
+
def _create_results(self, num_agents=None):
|
107
|
+
if num_agents is None:
|
108
|
+
num_agents = self.default_num_agents
|
109
|
+
agent_list = self.agent_list(num_agents)
|
110
|
+
return self.survey.by(agent_list).by(self.model).run()
|
111
|
+
|
112
|
+
|
113
|
+
if __name__ == "__main__":
|
114
|
+
overall_question = "Should online platforms be regulated with respect to selling electric scooters?"
|
115
|
+
auto_study = AutoStudy(overall_question, population="US Adults")
|
116
|
+
|
117
|
+
results = auto_study.results
|