edsl 0.1.27.dev2__py3-none-any.whl → 0.1.29__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 +107 -30
- edsl/BaseDiff.py +260 -0
- edsl/__init__.py +25 -21
- edsl/__version__.py +1 -1
- edsl/agents/Agent.py +103 -46
- edsl/agents/AgentList.py +97 -13
- edsl/agents/Invigilator.py +23 -10
- edsl/agents/InvigilatorBase.py +19 -14
- edsl/agents/PromptConstructionMixin.py +342 -100
- edsl/agents/descriptors.py +5 -2
- edsl/base/Base.py +289 -0
- edsl/config.py +2 -1
- edsl/conjure/AgentConstructionMixin.py +152 -0
- edsl/conjure/Conjure.py +56 -0
- edsl/conjure/InputData.py +659 -0
- edsl/conjure/InputDataCSV.py +48 -0
- edsl/conjure/InputDataMixinQuestionStats.py +182 -0
- edsl/conjure/InputDataPyRead.py +91 -0
- edsl/conjure/InputDataSPSS.py +8 -0
- edsl/conjure/InputDataStata.py +8 -0
- edsl/conjure/QuestionOptionMixin.py +76 -0
- edsl/conjure/QuestionTypeMixin.py +23 -0
- edsl/conjure/RawQuestion.py +65 -0
- edsl/conjure/SurveyResponses.py +7 -0
- edsl/conjure/__init__.py +9 -4
- edsl/conjure/examples/placeholder.txt +0 -0
- edsl/conjure/naming_utilities.py +263 -0
- edsl/conjure/utilities.py +165 -28
- edsl/conversation/Conversation.py +238 -0
- edsl/conversation/car_buying.py +58 -0
- edsl/conversation/mug_negotiation.py +81 -0
- edsl/conversation/next_speaker_utilities.py +93 -0
- edsl/coop/coop.py +337 -121
- edsl/coop/utils.py +56 -70
- edsl/data/Cache.py +74 -22
- edsl/data/CacheHandler.py +10 -9
- edsl/data/SQLiteDict.py +11 -3
- edsl/inference_services/AnthropicService.py +1 -0
- edsl/inference_services/DeepInfraService.py +20 -13
- edsl/inference_services/GoogleService.py +7 -1
- edsl/inference_services/InferenceServicesCollection.py +33 -7
- edsl/inference_services/OpenAIService.py +17 -10
- edsl/inference_services/models_available_cache.py +69 -0
- edsl/inference_services/rate_limits_cache.py +25 -0
- edsl/inference_services/write_available.py +10 -0
- edsl/jobs/Answers.py +15 -1
- edsl/jobs/Jobs.py +322 -73
- edsl/jobs/buckets/BucketCollection.py +9 -3
- edsl/jobs/buckets/ModelBuckets.py +4 -2
- edsl/jobs/buckets/TokenBucket.py +1 -2
- edsl/jobs/interviews/Interview.py +7 -10
- edsl/jobs/interviews/InterviewStatusMixin.py +3 -3
- edsl/jobs/interviews/InterviewTaskBuildingMixin.py +39 -20
- edsl/jobs/interviews/retry_management.py +4 -4
- edsl/jobs/runners/JobsRunnerAsyncio.py +103 -65
- edsl/jobs/runners/JobsRunnerStatusData.py +3 -3
- edsl/jobs/tasks/QuestionTaskCreator.py +4 -2
- edsl/jobs/tasks/TaskHistory.py +4 -3
- edsl/language_models/LanguageModel.py +42 -55
- edsl/language_models/ModelList.py +96 -0
- edsl/language_models/registry.py +14 -0
- edsl/language_models/repair.py +97 -25
- edsl/notebooks/Notebook.py +157 -32
- edsl/prompts/Prompt.py +31 -19
- edsl/questions/QuestionBase.py +145 -23
- edsl/questions/QuestionBudget.py +5 -6
- edsl/questions/QuestionCheckBox.py +7 -3
- edsl/questions/QuestionExtract.py +5 -3
- edsl/questions/QuestionFreeText.py +3 -3
- edsl/questions/QuestionFunctional.py +0 -3
- edsl/questions/QuestionList.py +3 -4
- edsl/questions/QuestionMultipleChoice.py +16 -8
- edsl/questions/QuestionNumerical.py +4 -3
- edsl/questions/QuestionRank.py +5 -3
- edsl/questions/__init__.py +4 -3
- edsl/questions/descriptors.py +9 -4
- edsl/questions/question_registry.py +27 -31
- edsl/questions/settings.py +1 -1
- edsl/results/Dataset.py +31 -0
- edsl/results/DatasetExportMixin.py +493 -0
- edsl/results/Result.py +42 -82
- edsl/results/Results.py +178 -66
- edsl/results/ResultsDBMixin.py +10 -9
- edsl/results/ResultsExportMixin.py +23 -507
- edsl/results/ResultsGGMixin.py +3 -3
- edsl/results/ResultsToolsMixin.py +9 -9
- edsl/scenarios/FileStore.py +140 -0
- edsl/scenarios/Scenario.py +59 -6
- edsl/scenarios/ScenarioList.py +138 -52
- edsl/scenarios/ScenarioListExportMixin.py +32 -0
- edsl/scenarios/ScenarioListPdfMixin.py +2 -1
- edsl/scenarios/__init__.py +1 -0
- edsl/study/ObjectEntry.py +173 -0
- edsl/study/ProofOfWork.py +113 -0
- edsl/study/SnapShot.py +73 -0
- edsl/study/Study.py +498 -0
- edsl/study/__init__.py +4 -0
- edsl/surveys/MemoryPlan.py +11 -4
- edsl/surveys/Survey.py +124 -37
- edsl/surveys/SurveyExportMixin.py +25 -5
- edsl/surveys/SurveyFlowVisualizationMixin.py +6 -4
- edsl/tools/plotting.py +4 -2
- edsl/utilities/__init__.py +21 -20
- edsl/utilities/gcp_bucket/__init__.py +0 -0
- edsl/utilities/gcp_bucket/cloud_storage.py +96 -0
- edsl/utilities/gcp_bucket/simple_example.py +9 -0
- edsl/utilities/interface.py +90 -73
- edsl/utilities/repair_functions.py +28 -0
- edsl/utilities/utilities.py +59 -6
- {edsl-0.1.27.dev2.dist-info → edsl-0.1.29.dist-info}/METADATA +42 -15
- edsl-0.1.29.dist-info/RECORD +203 -0
- edsl/conjure/RawResponseColumn.py +0 -327
- edsl/conjure/SurveyBuilder.py +0 -308
- edsl/conjure/SurveyBuilderCSV.py +0 -78
- edsl/conjure/SurveyBuilderSPSS.py +0 -118
- edsl/data/RemoteDict.py +0 -103
- edsl-0.1.27.dev2.dist-info/RECORD +0 -172
- {edsl-0.1.27.dev2.dist-info → edsl-0.1.29.dist-info}/LICENSE +0 -0
- {edsl-0.1.27.dev2.dist-info → edsl-0.1.29.dist-info}/WHEEL +0 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
models_available = {
|
2
|
+
"openai": [
|
3
|
+
"gpt-3.5-turbo-1106",
|
4
|
+
"gpt-4-0125-preview",
|
5
|
+
"gpt-4-turbo-preview",
|
6
|
+
"gpt-3.5-turbo-16k",
|
7
|
+
"gpt-4-1106-preview",
|
8
|
+
"gpt-4-turbo-2024-04-09",
|
9
|
+
"gpt-3.5-turbo-16k-0613",
|
10
|
+
"gpt-4o-2024-05-13",
|
11
|
+
"gpt-4-turbo",
|
12
|
+
"gpt-3.5-turbo-0613",
|
13
|
+
"gpt-4",
|
14
|
+
"gpt-4-0613",
|
15
|
+
"gpt-3.5-turbo-0125",
|
16
|
+
"gpt-3.5-turbo",
|
17
|
+
"gpt-3.5-turbo-instruct",
|
18
|
+
"gpt-3.5-turbo-instruct-0914",
|
19
|
+
"gpt-3.5-turbo-0301",
|
20
|
+
"gpt-4-vision-preview",
|
21
|
+
"gpt-4-1106-vision-preview",
|
22
|
+
"gpt-4o",
|
23
|
+
],
|
24
|
+
"anthropic": [
|
25
|
+
"claude-3-5-sonnet-20240620",
|
26
|
+
"claude-3-opus-20240229",
|
27
|
+
"claude-3-sonnet-20240229",
|
28
|
+
"claude-3-haiku-20240307",
|
29
|
+
],
|
30
|
+
"deep_infra": [
|
31
|
+
"meta-llama/Llama-2-13b-chat-hf",
|
32
|
+
"mistralai/Mixtral-8x22B-Instruct-v0.1",
|
33
|
+
"Gryphe/MythoMax-L2-13b-turbo",
|
34
|
+
"mistralai/Mistral-7B-Instruct-v0.1",
|
35
|
+
"Austism/chronos-hermes-13b-v2",
|
36
|
+
"meta-llama/Llama-2-70b-chat-hf",
|
37
|
+
"mistralai/Mistral-7B-Instruct-v0.3",
|
38
|
+
"meta-llama/Llama-2-7b-chat-hf",
|
39
|
+
"Qwen/Qwen2-72B-Instruct",
|
40
|
+
"HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1",
|
41
|
+
"cognitivecomputations/dolphin-2.6-mixtral-8x7b",
|
42
|
+
"bigcode/starcoder2-15b",
|
43
|
+
"microsoft/WizardLM-2-8x22B",
|
44
|
+
"codellama/CodeLlama-70b-Instruct-hf",
|
45
|
+
"Gryphe/MythoMax-L2-13b",
|
46
|
+
"microsoft/WizardLM-2-7B",
|
47
|
+
"01-ai/Yi-34B-Chat",
|
48
|
+
"bigcode/starcoder2-15b-instruct-v0.1",
|
49
|
+
"mistralai/Mixtral-8x7B-Instruct-v0.1",
|
50
|
+
"openchat/openchat-3.6-8b",
|
51
|
+
"meta-llama/Meta-Llama-3-8B-Instruct",
|
52
|
+
"microsoft/Phi-3-medium-4k-instruct",
|
53
|
+
"Phind/Phind-CodeLlama-34B-v2",
|
54
|
+
"google/codegemma-7b-it",
|
55
|
+
"mistralai/Mistral-7B-Instruct-v0.2",
|
56
|
+
"deepinfra/airoboros-70b",
|
57
|
+
"mistralai/Mixtral-8x22B-v0.1",
|
58
|
+
"llava-hf/llava-1.5-7b-hf",
|
59
|
+
"codellama/CodeLlama-34b-Instruct-hf",
|
60
|
+
"google/gemma-1.1-7b-it",
|
61
|
+
"lizpreciatior/lzlv_70b_fp16_hf",
|
62
|
+
"databricks/dbrx-instruct",
|
63
|
+
"nvidia/Nemotron-4-340B-Instruct",
|
64
|
+
"Qwen/Qwen2-7B-Instruct",
|
65
|
+
"meta-llama/Meta-Llama-3-70B-Instruct",
|
66
|
+
"openchat/openchat_3.5",
|
67
|
+
],
|
68
|
+
"google": ["gemini-pro"],
|
69
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
rate_limits = {
|
2
|
+
"openai": {
|
3
|
+
"date": "Tue, 02 Jul 2024 15:25:28 GMT",
|
4
|
+
"content-type": "application/json",
|
5
|
+
"transfer-encoding": "chunked",
|
6
|
+
"connection": "keep-alive",
|
7
|
+
"openai-organization": "user-wmu32omw8ulzzutk6mjhtqgk",
|
8
|
+
"openai-processing-ms": "760",
|
9
|
+
"openai-version": "2020-10-01",
|
10
|
+
"strict-transport-security": "max-age=31536000; includeSubDomains",
|
11
|
+
"x-ratelimit-limit-requests": "5000",
|
12
|
+
"x-ratelimit-limit-tokens": "600000",
|
13
|
+
"x-ratelimit-remaining-requests": "4999",
|
14
|
+
"x-ratelimit-remaining-tokens": "599978",
|
15
|
+
"x-ratelimit-reset-requests": "12ms",
|
16
|
+
"x-ratelimit-reset-tokens": "2ms",
|
17
|
+
"x-request-id": "req_971608f3647f660a0cd6537fbe21f69c",
|
18
|
+
"cf-cache-status": "DYNAMIC",
|
19
|
+
"set-cookie": "__cf_bm=MJfUk.0TXdjtiNkUUqlUO2gaN3wzm0iHsRQRWExy52o-1719933928-1.0.1.1-0xk9gFxy_mD1KzAsKQ_HpL2pdQJ90D4B5frt65xU.c9k9QwD0oTBILqXB0rykXNh04Pm1UB1.H_W9sFJVOcSaw; path=/; expires=Tue, 02-Jul-24 15:55:28 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None, _cfuvid=GbheRct_iw9_I8iLWmt5ZRcLYZ_QVnroCrAt8QMVsUg-1719933928399-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None",
|
20
|
+
"server": "cloudflare",
|
21
|
+
"cf-ray": "89cfa6059bb9b68f-OTP",
|
22
|
+
"content-encoding": "gzip",
|
23
|
+
"alt-svc": 'h3=":443"; ma=86400',
|
24
|
+
}
|
25
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
from edsl.inference_services.registry import default
|
2
|
+
|
3
|
+
|
4
|
+
def write_available():
|
5
|
+
d = {}
|
6
|
+
for service in default.services:
|
7
|
+
d[service._inference_service_] = service.available()
|
8
|
+
|
9
|
+
with open("models_available_cache.py", "w") as f:
|
10
|
+
f.write(f"models_available = {d}")
|
edsl/jobs/Answers.py
CHANGED
@@ -8,7 +8,15 @@ class Answers(UserDict):
|
|
8
8
|
"""Helper class to hold the answers to a survey."""
|
9
9
|
|
10
10
|
def add_answer(self, response, question) -> None:
|
11
|
-
"""Add a response to the answers dictionary.
|
11
|
+
"""Add a response to the answers dictionary.
|
12
|
+
|
13
|
+
>>> from edsl import QuestionFreeText
|
14
|
+
>>> q = QuestionFreeText.example()
|
15
|
+
>>> answers = Answers()
|
16
|
+
>>> answers.add_answer({"answer": "yes"}, q)
|
17
|
+
>>> answers[q.question_name]
|
18
|
+
'yes'
|
19
|
+
"""
|
12
20
|
answer = response.get("answer")
|
13
21
|
comment = response.pop("comment", None)
|
14
22
|
# record the answer
|
@@ -42,3 +50,9 @@ class Answers(UserDict):
|
|
42
50
|
table.add_row(attr_name, repr(attr_value))
|
43
51
|
|
44
52
|
return table
|
53
|
+
|
54
|
+
|
55
|
+
if __name__ == "__main__":
|
56
|
+
import doctest
|
57
|
+
|
58
|
+
doctest.testmod()
|