edsl 0.1.34__py3-none-any.whl → 0.1.34.dev1__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/__version__.py +1 -1
- edsl/agents/PromptConstructor.py +10 -10
- edsl/jobs/Jobs.py +10 -91
- edsl/jobs/interviews/Interview.py +9 -12
- edsl/jobs/runners/JobsRunnerAsyncio.py +9 -9
- edsl/language_models/LanguageModel.py +2 -2
- edsl/language_models/utilities.py +2 -4
- edsl/questions/QuestionBase.py +1 -2
- edsl/questions/QuestionMultipleChoice.py +3 -3
- edsl/questions/templates/numerical/answering_instructions.jinja +1 -0
- edsl/scenarios/FileStore.py +5 -0
- edsl/surveys/base.py +0 -4
- {edsl-0.1.34.dist-info → edsl-0.1.34.dev1.dist-info}/METADATA +1 -1
- {edsl-0.1.34.dist-info → edsl-0.1.34.dev1.dist-info}/RECORD +16 -16
- {edsl-0.1.34.dist-info → edsl-0.1.34.dev1.dist-info}/LICENSE +0 -0
- {edsl-0.1.34.dist-info → edsl-0.1.34.dev1.dist-info}/WHEEL +0 -0
edsl/__version__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.1.34"
|
1
|
+
__version__ = "0.1.34.dev1"
|
edsl/agents/PromptConstructor.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
from typing import Dict, Any, Optional, Set
|
3
3
|
from collections import UserList
|
4
|
-
import
|
4
|
+
import enum
|
5
5
|
|
6
6
|
from jinja2 import Environment, meta
|
7
7
|
|
@@ -172,6 +172,7 @@ class PromptConstructor:
|
|
172
172
|
"""
|
173
173
|
# The user might have passed a custom prompt, which would be stored in _question_instructions_prompt
|
174
174
|
if not hasattr(self, "_question_instructions_prompt"):
|
175
|
+
|
175
176
|
# Gets the instructions for the question - this is how the question should be answered
|
176
177
|
question_prompt = self.question.get_instructions(model=self.model.model)
|
177
178
|
|
@@ -197,15 +198,14 @@ class PromptConstructor:
|
|
197
198
|
self.question.question_options = question_options
|
198
199
|
|
199
200
|
# might be getting it from the prior answers
|
200
|
-
if
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
self.question.question_options = question_options
|
201
|
+
if isinstance(
|
202
|
+
question_options := self.prior_answers_dict()
|
203
|
+
.get(question_option_key)
|
204
|
+
.answer,
|
205
|
+
list,
|
206
|
+
):
|
207
|
+
question_data["question_options"] = question_options
|
208
|
+
self.question.question_options = question_options
|
209
209
|
|
210
210
|
replacement_dict = (
|
211
211
|
{key: f"<see file {key}>" for key in self.scenario_file_keys}
|
edsl/jobs/Jobs.py
CHANGED
@@ -145,21 +145,14 @@ class Jobs(Base):
|
|
145
145
|
>>> Jobs.example().prompts()
|
146
146
|
Dataset(...)
|
147
147
|
"""
|
148
|
-
from edsl import Coop
|
149
|
-
|
150
|
-
c = Coop()
|
151
|
-
price_lookup = c.fetch_prices()
|
152
148
|
|
153
149
|
interviews = self.interviews()
|
154
150
|
# data = []
|
155
151
|
interview_indices = []
|
156
|
-
|
152
|
+
question_indices = []
|
157
153
|
user_prompts = []
|
158
154
|
system_prompts = []
|
159
155
|
scenario_indices = []
|
160
|
-
agent_indices = []
|
161
|
-
models = []
|
162
|
-
costs = []
|
163
156
|
from edsl.results.Dataset import Dataset
|
164
157
|
|
165
158
|
for interview_index, interview in enumerate(interviews):
|
@@ -167,97 +160,23 @@ class Jobs(Base):
|
|
167
160
|
interview._get_invigilator(question)
|
168
161
|
for question in self.survey.questions
|
169
162
|
]
|
163
|
+
# list(interview._build_invigilators(debug=False))
|
170
164
|
for _, invigilator in enumerate(invigilators):
|
171
165
|
prompts = invigilator.get_prompts()
|
172
|
-
|
173
|
-
|
174
|
-
user_prompts.append(user_prompt)
|
175
|
-
system_prompts.append(system_prompt)
|
176
|
-
agent_index = self.agents.index(invigilator.agent)
|
177
|
-
agent_indices.append(agent_index)
|
166
|
+
user_prompts.append(prompts["user_prompt"])
|
167
|
+
system_prompts.append(prompts["system_prompt"])
|
178
168
|
interview_indices.append(interview_index)
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
question_names.append(invigilator.question.question_name)
|
183
|
-
# cost calculation
|
184
|
-
key = (invigilator.model._inference_service_, invigilator.model.model)
|
185
|
-
relevant_prices = price_lookup[key]
|
186
|
-
inverse_output_price = relevant_prices["output"]["one_usd_buys"]
|
187
|
-
inverse_input_price = relevant_prices["input"]["one_usd_buys"]
|
188
|
-
input_tokens = len(str(user_prompt) + str(system_prompt)) // 4
|
189
|
-
output_tokens = len(str(user_prompt) + str(system_prompt)) // 4
|
190
|
-
cost = input_tokens / float(
|
191
|
-
inverse_input_price
|
192
|
-
) + output_tokens / float(inverse_output_price)
|
193
|
-
costs.append(cost)
|
194
|
-
|
195
|
-
d = Dataset(
|
169
|
+
scenario_indices.append(invigilator.scenario)
|
170
|
+
question_indices.append(invigilator.question.question_name)
|
171
|
+
return Dataset(
|
196
172
|
[
|
197
|
-
{"user_prompt": user_prompts},
|
198
|
-
{"system_prompt": system_prompts},
|
199
173
|
{"interview_index": interview_indices},
|
200
|
-
{"
|
174
|
+
{"question_index": question_indices},
|
175
|
+
{"user_prompt": user_prompts},
|
201
176
|
{"scenario_index": scenario_indices},
|
202
|
-
{"
|
203
|
-
{"model": models},
|
204
|
-
{"estimated_cost": costs},
|
177
|
+
{"system_prompt": system_prompts},
|
205
178
|
]
|
206
179
|
)
|
207
|
-
return d
|
208
|
-
# if table:
|
209
|
-
# d.to_scenario_list().print(format="rich")
|
210
|
-
# else:
|
211
|
-
# return d
|
212
|
-
|
213
|
-
def show_prompts(self) -> None:
|
214
|
-
"""Print the prompts."""
|
215
|
-
self.prompts().to_scenario_list().print(format="rich")
|
216
|
-
|
217
|
-
def estimate_job_cost(self):
|
218
|
-
from edsl import Coop
|
219
|
-
|
220
|
-
c = Coop()
|
221
|
-
price_lookup = c.fetch_prices()
|
222
|
-
|
223
|
-
prompts = self.prompts()
|
224
|
-
|
225
|
-
text_len = 0
|
226
|
-
for prompt in prompts:
|
227
|
-
text_len += len(str(prompt))
|
228
|
-
|
229
|
-
input_token_aproximations = text_len // 4
|
230
|
-
|
231
|
-
aproximation_cost = {}
|
232
|
-
total_cost = 0
|
233
|
-
for model in self.models:
|
234
|
-
key = (model._inference_service_, model.model)
|
235
|
-
relevant_prices = price_lookup[key]
|
236
|
-
inverse_output_price = relevant_prices["output"]["one_usd_buys"]
|
237
|
-
inverse_input_price = relevant_prices["input"]["one_usd_buys"]
|
238
|
-
|
239
|
-
aproximation_cost[key] = {
|
240
|
-
"input": input_token_aproximations / float(inverse_input_price),
|
241
|
-
"output": input_token_aproximations / float(inverse_output_price),
|
242
|
-
}
|
243
|
-
##TODO curenlty we approximate the number of output tokens with the number
|
244
|
-
# of input tokens. A better solution will be to compute the quesiton answer options length and sum them
|
245
|
-
# to compute the output tokens
|
246
|
-
|
247
|
-
total_cost += input_token_aproximations / float(inverse_input_price)
|
248
|
-
total_cost += input_token_aproximations / float(inverse_output_price)
|
249
|
-
|
250
|
-
# multiply_factor = len(self.agents or [1]) * len(self.scenarios or [1])
|
251
|
-
multiply_factor = 1
|
252
|
-
out = {
|
253
|
-
"input_token_aproximations": input_token_aproximations,
|
254
|
-
"models_costs": aproximation_cost,
|
255
|
-
"estimated_total_cost": total_cost * multiply_factor,
|
256
|
-
"multiply_factor": multiply_factor,
|
257
|
-
"single_config_cost": total_cost,
|
258
|
-
}
|
259
|
-
|
260
|
-
return out
|
261
180
|
|
262
181
|
@staticmethod
|
263
182
|
def _get_container_class(object):
|
@@ -3,7 +3,6 @@
|
|
3
3
|
from __future__ import annotations
|
4
4
|
import asyncio
|
5
5
|
from typing import Any, Type, List, Generator, Optional, Union
|
6
|
-
import copy
|
7
6
|
|
8
7
|
from tenacity import (
|
9
8
|
retry,
|
@@ -100,17 +99,15 @@ class Interview(InterviewStatusMixin):
|
|
100
99
|
|
101
100
|
"""
|
102
101
|
self.agent = agent
|
103
|
-
|
104
|
-
self.survey = copy.deepcopy(survey) # survey copy.deepcopy(survey)
|
105
|
-
# self.survey = survey
|
102
|
+
self.survey = survey
|
106
103
|
self.scenario = scenario
|
107
104
|
self.model = model
|
108
105
|
self.debug = debug
|
109
106
|
self.iteration = iteration
|
110
107
|
self.cache = cache
|
111
|
-
self.answers: dict[
|
112
|
-
|
113
|
-
|
108
|
+
self.answers: dict[str, str] = (
|
109
|
+
Answers()
|
110
|
+
) # will get filled in as interview progresses
|
114
111
|
self.sidecar_model = sidecar_model
|
115
112
|
|
116
113
|
# self.stop_on_exception = False
|
@@ -431,11 +428,11 @@ class Interview(InterviewStatusMixin):
|
|
431
428
|
"""
|
432
429
|
current_question_index: int = self.to_index[current_question.question_name]
|
433
430
|
|
434
|
-
next_question: Union[
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
431
|
+
next_question: Union[int, EndOfSurvey] = (
|
432
|
+
self.survey.rule_collection.next_question(
|
433
|
+
q_now=current_question_index,
|
434
|
+
answers=self.answers | self.scenario | self.agent["traits"],
|
435
|
+
)
|
439
436
|
)
|
440
437
|
|
441
438
|
next_question_index = next_question.next_q
|
@@ -173,19 +173,19 @@ class JobsRunnerAsyncio:
|
|
173
173
|
|
174
174
|
prompt_dictionary = {}
|
175
175
|
for answer_key_name in answer_key_names:
|
176
|
-
prompt_dictionary[
|
177
|
-
answer_key_name
|
178
|
-
|
179
|
-
prompt_dictionary[
|
180
|
-
answer_key_name
|
181
|
-
|
176
|
+
prompt_dictionary[answer_key_name + "_user_prompt"] = (
|
177
|
+
question_name_to_prompts[answer_key_name]["user_prompt"]
|
178
|
+
)
|
179
|
+
prompt_dictionary[answer_key_name + "_system_prompt"] = (
|
180
|
+
question_name_to_prompts[answer_key_name]["system_prompt"]
|
181
|
+
)
|
182
182
|
|
183
183
|
raw_model_results_dictionary = {}
|
184
184
|
for result in valid_results:
|
185
185
|
question_name = result.question_name
|
186
|
-
raw_model_results_dictionary[
|
187
|
-
|
188
|
-
|
186
|
+
raw_model_results_dictionary[question_name + "_raw_model_response"] = (
|
187
|
+
result.raw_model_response
|
188
|
+
)
|
189
189
|
raw_model_results_dictionary[question_name + "_cost"] = result.cost
|
190
190
|
one_use_buys = (
|
191
191
|
"NA"
|
@@ -490,7 +490,7 @@ class LanguageModel(
|
|
490
490
|
"user_prompt": user_prompt,
|
491
491
|
"system_prompt": system_prompt,
|
492
492
|
"files_list": files_list
|
493
|
-
|
493
|
+
#**({"encoded_image": encoded_image} if encoded_image else {}),
|
494
494
|
}
|
495
495
|
# response = await f(**params)
|
496
496
|
response = await asyncio.wait_for(f(**params), timeout=TIMEOUT)
|
@@ -534,7 +534,7 @@ class LanguageModel(
|
|
534
534
|
system_prompt: str,
|
535
535
|
cache: "Cache",
|
536
536
|
iteration: int = 1,
|
537
|
-
files_list: Optional[List[
|
537
|
+
files_list: Optional[List['File']] = None,
|
538
538
|
) -> dict:
|
539
539
|
"""Get response, parse, and return as string.
|
540
540
|
|
@@ -40,10 +40,8 @@ def create_language_model(
|
|
40
40
|
_tpm = 1000000000000
|
41
41
|
|
42
42
|
async def async_execute_model_call(
|
43
|
-
self,
|
44
|
-
|
45
|
-
system_prompt: str,
|
46
|
-
files_list: Optional[List[Any]] = None,
|
43
|
+
self, user_prompt: str, system_prompt: str,
|
44
|
+
files_list: Optional[List[Any]] = None
|
47
45
|
) -> dict[str, Any]:
|
48
46
|
question_number = int(
|
49
47
|
user_prompt.split("XX")[1]
|
edsl/questions/QuestionBase.py
CHANGED
@@ -82,8 +82,7 @@ class QuestionBase(
|
|
82
82
|
if not hasattr(self, "_fake_data_factory"):
|
83
83
|
from polyfactory.factories.pydantic_factory import ModelFactory
|
84
84
|
|
85
|
-
class FakeData(ModelFactory[self.response_model]):
|
86
|
-
...
|
85
|
+
class FakeData(ModelFactory[self.response_model]): ...
|
87
86
|
|
88
87
|
self._fake_data_factory = FakeData
|
89
88
|
return self._fake_data_factory
|
@@ -120,9 +120,9 @@ class QuestionMultipleChoice(QuestionBase):
|
|
120
120
|
|
121
121
|
question_type = "multiple_choice"
|
122
122
|
purpose = "When options are known and limited"
|
123
|
-
question_options: Union[
|
124
|
-
|
125
|
-
|
123
|
+
question_options: Union[list[str], list[list], list[float], list[int]] = (
|
124
|
+
QuestionOptionsDescriptor()
|
125
|
+
)
|
126
126
|
_response_model = None
|
127
127
|
response_validator_class = MultipleChoiceResponseValidator
|
128
128
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
This question requires a numerical response in the form of an integer or decimal (e.g., -12, 0, 1, 2, 3.45, ...).
|
2
2
|
Respond with just your number on a single line.
|
3
3
|
If your response is equivalent to zero, report '0'
|
4
|
+
If you cannot determine the answer, report 'None'
|
4
5
|
|
5
6
|
{% if include_comment %}
|
6
7
|
After the answer, put a comment explaining your choice on the next line.
|
edsl/scenarios/FileStore.py
CHANGED
@@ -263,6 +263,7 @@ class FileStore(Scenario):
|
|
263
263
|
|
264
264
|
|
265
265
|
class CSVFileStore(FileStore):
|
266
|
+
|
266
267
|
@classmethod
|
267
268
|
def example(cls):
|
268
269
|
from edsl.results.Results import Results
|
@@ -281,6 +282,7 @@ class CSVFileStore(FileStore):
|
|
281
282
|
|
282
283
|
|
283
284
|
class PDFFileStore(FileStore):
|
285
|
+
|
284
286
|
def view(self):
|
285
287
|
pdf_path = self.to_tempfile()
|
286
288
|
print(f"PDF path: {pdf_path}") # Print the path to ensure it exists
|
@@ -356,6 +358,7 @@ class PDFFileStore(FileStore):
|
|
356
358
|
|
357
359
|
|
358
360
|
class PNGFileStore(FileStore):
|
361
|
+
|
359
362
|
@classmethod
|
360
363
|
def example(cls):
|
361
364
|
import textwrap
|
@@ -379,6 +382,7 @@ class PNGFileStore(FileStore):
|
|
379
382
|
|
380
383
|
|
381
384
|
class SQLiteFileStore(FileStore):
|
385
|
+
|
382
386
|
@classmethod
|
383
387
|
def example(cls):
|
384
388
|
import sqlite3
|
@@ -401,6 +405,7 @@ class SQLiteFileStore(FileStore):
|
|
401
405
|
|
402
406
|
|
403
407
|
class HTMLFileStore(FileStore):
|
408
|
+
|
404
409
|
@classmethod
|
405
410
|
def example(cls):
|
406
411
|
import tempfile
|
edsl/surveys/base.py
CHANGED
@@ -2,12 +2,12 @@ edsl/Base.py,sha256=wdFpHWlQlGNL4XfOmYA0AK9YupMDxK3G7mDHCQp60o4,9295
|
|
2
2
|
edsl/BaseDiff.py,sha256=RoVEh52UJs22yMa7k7jv8se01G62jJNWnBzaZngo-Ug,8260
|
3
3
|
edsl/TemplateLoader.py,sha256=sDBlSMt7EfOduM7w3h6v03gvh_Rzn9hVrlS-iLSQdZA,849
|
4
4
|
edsl/__init__.py,sha256=UZcx9RHSi3Dslh2lWvCOeppdMW9Xzw_YLs-kFaNW1MU,1770
|
5
|
-
edsl/__version__.py,sha256=
|
5
|
+
edsl/__version__.py,sha256=XhBgcCdTjSpYn65HiKUqna67rnO8Ic__tIbjoMBXW6g,28
|
6
6
|
edsl/agents/Agent.py,sha256=ww6DK177eHQUlYkzgnt1b-MBDKXCdhVx3HezAZZ7TKk,28473
|
7
7
|
edsl/agents/AgentList.py,sha256=qo8VK3Ov0YOSbsBcHmlwLZBH81CcDfy5IEcx9AVH78M,10963
|
8
8
|
edsl/agents/Invigilator.py,sha256=6xd4sJ6Jzxld8LZDWZuSCZLL_MfaSux4LJCAm_RLEOM,9077
|
9
9
|
edsl/agents/InvigilatorBase.py,sha256=qIdAiriXAbnJH_SN9w2UAXHcDgQvk8Ar3QerKFjtPwM,10341
|
10
|
-
edsl/agents/PromptConstructor.py,sha256=
|
10
|
+
edsl/agents/PromptConstructor.py,sha256=BmScHm5y67vnPKMgo-Diq4p_nyVf_G7MB9IHFY7rml8,14599
|
11
11
|
edsl/agents/__init__.py,sha256=B1dWfV4QWOo8cc2KeuetdFGeNhZ8XHc0Q8YhQW9k7BE,136
|
12
12
|
edsl/agents/descriptors.py,sha256=m8ND3-2-JbgNX1HGakBNLIeemwsgYa1mQxYO9GW33hw,2934
|
13
13
|
edsl/agents/prompt_helpers.py,sha256=rHUxM_F0kCOkJmnhCyK-amFKViAYvpRRLD8LHFLGqQw,5023
|
@@ -88,12 +88,12 @@ edsl/inference_services/registry.py,sha256=CwdaQ-A5PTb5lFKMQdOfl8IqCw2SVJ8HlC-_2
|
|
88
88
|
edsl/inference_services/write_available.py,sha256=NNwhATlaMp8IYY635MSx-oYxt5X15acjAfaqYCo_I1Y,285
|
89
89
|
edsl/jobs/Answers.py,sha256=c4LpigQjdnMr7iJu8571C4FggGPVudfT7hbJgmgKW40,1821
|
90
90
|
edsl/jobs/FailedQuestion.py,sha256=3D5Vcmv1t2_dzBWbkUUIia3_jXHdzQDdyg-4TEIWU2Q,2701
|
91
|
-
edsl/jobs/Jobs.py,sha256=
|
91
|
+
edsl/jobs/Jobs.py,sha256=a2Y-goWT9vGi00OqW7t9L8Oi6SXXiSllymd3s1frX1g,34035
|
92
92
|
edsl/jobs/__init__.py,sha256=aKuAyd_GoalGj-k7djOoVwEbFUE2XLPlikXaA1_8yAg,32
|
93
93
|
edsl/jobs/buckets/BucketCollection.py,sha256=11CRisE1WAPcAlI3YJK3DVvu0AqSvv8KskXo4Q1waSk,2286
|
94
94
|
edsl/jobs/buckets/ModelBuckets.py,sha256=hxw_tzc0V42CiB7mh5jIxlgwDVJ-zFZhlLtKrHEg8ho,2419
|
95
95
|
edsl/jobs/buckets/TokenBucket.py,sha256=7fG4omzTcj5xC2iJLO9bfBkdAGs6Y3weXzlA3BgPr0E,9090
|
96
|
-
edsl/jobs/interviews/Interview.py,sha256=
|
96
|
+
edsl/jobs/interviews/Interview.py,sha256=Vt5-6zNazBnp8EZRTA552hy3MyaFxMPkLGgAaIhikzI,23774
|
97
97
|
edsl/jobs/interviews/InterviewExceptionCollection.py,sha256=Ez8BCZUD3odqoY9h-gzYKKM8yaHynQ-eYw2uMDh7t98,3279
|
98
98
|
edsl/jobs/interviews/InterviewExceptionEntry.py,sha256=BGGjj0sb1wJJ0QmYklt1DyEYKD8mUGygllGfN2WXKbY,4903
|
99
99
|
edsl/jobs/interviews/InterviewStatistic.py,sha256=hY5d2EkIJ96NilPpZAvZZzZoxLXM7ss3xx5MIcKtTPs,1856
|
@@ -103,7 +103,7 @@ edsl/jobs/interviews/InterviewStatusLog.py,sha256=6u0F8gf5tha39VQL-IK_QPkCsQAYVO
|
|
103
103
|
edsl/jobs/interviews/InterviewStatusMixin.py,sha256=VV0Pel-crUsLoGpTifeIIkXsLGj0bfuO--UtpRnH-dU,1251
|
104
104
|
edsl/jobs/interviews/ReportErrors.py,sha256=RSzDU2rWwtjfztj7sqaMab0quCiY-X2bG3AEOxhTim8,1745
|
105
105
|
edsl/jobs/interviews/interview_status_enum.py,sha256=KJ-1yLAHdX-p8TiFnM0M3v1tnBwkq4aMCuBX6-ytrI8,229
|
106
|
-
edsl/jobs/runners/JobsRunnerAsyncio.py,sha256=
|
106
|
+
edsl/jobs/runners/JobsRunnerAsyncio.py,sha256=CxO93PO7UGtr9yzrIWDlBjHdq1uAaKoaevsJsYV_3zA,12856
|
107
107
|
edsl/jobs/runners/JobsRunnerStatus.py,sha256=4eCh9sRpswGdKeSMW9pCGCAjJZa-OrWUPI7tsxIy_g4,12112
|
108
108
|
edsl/jobs/runners/JobsRunnerStatusData.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
109
109
|
edsl/jobs/tasks/QuestionTaskCreator.py,sha256=f26rokFVXVdyKR2M8of_jlZqP6TPcTAINk9tEvb35pw,10122
|
@@ -114,7 +114,7 @@ edsl/jobs/tasks/task_management.py,sha256=KMToZuXzMlnHRHUF_VHL0-lHMTGhklf2GHVuwE
|
|
114
114
|
edsl/jobs/tasks/task_status_enum.py,sha256=DOyrz61YlIS8R1W7izJNphcLrJ7I_ReUlfdRmk23h0Q,5333
|
115
115
|
edsl/jobs/tokens/InterviewTokenUsage.py,sha256=u_6-IHpGFwZ6qMEXr24-jyLVUSSp4dSs_4iAZsBv7O4,1100
|
116
116
|
edsl/jobs/tokens/TokenUsage.py,sha256=odj2-wDNEbHl9noyFAQ0DSKV0D9cv3aDOpmXufKZ8O4,1323
|
117
|
-
edsl/language_models/LanguageModel.py,sha256=
|
117
|
+
edsl/language_models/LanguageModel.py,sha256=_f3Gv-1n4ttKWs7aSJG13xRklzxL-wOAn2Gl1jrWh5M,25193
|
118
118
|
edsl/language_models/ModelList.py,sha256=GhjRV7y1jRvP_Yjgwv6fxksTVb8sFPBiiRRfdqW-hgg,2852
|
119
119
|
edsl/language_models/RegisterLanguageModelsMeta.py,sha256=eMtBSAnlRnC4c-0_o2QkSNyzv-uAce4BEGMXq2PLj2E,7523
|
120
120
|
edsl/language_models/__init__.py,sha256=bvY7Gy6VkX1gSbNkRbGPS-M1kUnb0EohL0FSagaEaTs,109
|
@@ -123,7 +123,7 @@ edsl/language_models/fake_openai_service.py,sha256=2AAsAinELbMZRqiepwBkWhWcLuMe5
|
|
123
123
|
edsl/language_models/registry.py,sha256=hfOlKbTkXrXGpZHQQPKE9uyyUCgOxoUyyIaKL2kf53U,4369
|
124
124
|
edsl/language_models/repair.py,sha256=d0i2S3kJfX7JtuCYhlIyT0QP8hcZkRPLanC09lOW_xo,5353
|
125
125
|
edsl/language_models/unused/ReplicateBase.py,sha256=J1oqf7mEyyKhRwNUomnptVqAsVFYCbS3iTW0EXpKtXo,3331
|
126
|
-
edsl/language_models/utilities.py,sha256=
|
126
|
+
edsl/language_models/utilities.py,sha256=ZEwldu1n4M0YRxcQ1s5q6SOkgc7ld4SLuFMq6hjiHIk,2256
|
127
127
|
edsl/notebooks/Notebook.py,sha256=xi9xkxmkQ6-DwhqbjjMLpYKB0VJV20AtwEonJ6mnqjo,7739
|
128
128
|
edsl/notebooks/__init__.py,sha256=VNUA3nNq04slWNbYaNrzOhQJu3AZANpvBniyCJSzJ7U,45
|
129
129
|
edsl/prompts/Prompt.py,sha256=KsIz0tZnIqZlnbzNWO57C3MwJ0OCcUrZPmu7DBApc4s,11887
|
@@ -143,7 +143,7 @@ edsl/prompts/library/question_rank.py,sha256=WDgXyph0EKWJrSgsW2eqcx3xdU-WA1LEvB2
|
|
143
143
|
edsl/prompts/prompt_config.py,sha256=O3Y5EvBsCeKs9m9IjXiRXOcHWlWvQV0yqsNb2oSR1ow,974
|
144
144
|
edsl/prompts/registry.py,sha256=XOsqGsvNOmIG83jqoszqI72yNZkkszKR4FrEhwSzj_Q,8093
|
145
145
|
edsl/questions/AnswerValidatorMixin.py,sha256=t_ABep50KP02GSc48Y8VAEjp35drVOngfrWXU5aVhgk,11505
|
146
|
-
edsl/questions/QuestionBase.py,sha256=
|
146
|
+
edsl/questions/QuestionBase.py,sha256=NY1M1QT3v2ToZJMbzsER4zejOPmczPzxEA_LKmdbsPk,21153
|
147
147
|
edsl/questions/QuestionBaseGenMixin.py,sha256=CPxjWZjrxuSO8YWelz6dbp7fm788gN7-T8z7jXStboQ,6017
|
148
148
|
edsl/questions/QuestionBasePromptsMixin.py,sha256=Km1P6PpkVJ9O3dS8pJZHNJ6aQABhYGLwdef4Z2vSrqk,9516
|
149
149
|
edsl/questions/QuestionBudget.py,sha256=TJgPsyqafJdJw5if0zVxh7zHloourINUqUWfWIlRq9Y,8131
|
@@ -152,7 +152,7 @@ edsl/questions/QuestionExtract.py,sha256=PlXwMeZgPAFBXIHSXpFMYTToag-HwA9C7u6-Z3b
|
|
152
152
|
edsl/questions/QuestionFreeText.py,sha256=uXJxrrAGCq0-J6WpO6TBNFBNOC2ztoEVa-2UMXuwlak,3384
|
153
153
|
edsl/questions/QuestionFunctional.py,sha256=yZQFLQAxfNsAIETffFoBr-Ltb2oFPeywu-nhm9qjYRc,5133
|
154
154
|
edsl/questions/QuestionList.py,sha256=vs2AE8OnbwVsly-sorb9dfIibdF1BpOaCRYyvwXYSzY,7209
|
155
|
-
edsl/questions/QuestionMultipleChoice.py,sha256=
|
155
|
+
edsl/questions/QuestionMultipleChoice.py,sha256=SrvT8vS9KOCBogcABOFBhO1gb5Lr0vvmOfoxUkSw-h0,10294
|
156
156
|
edsl/questions/QuestionNumerical.py,sha256=_jMZ28DZHYAv_g3Y3vCnmzerMs995on0Ng6j4pDcfHo,4959
|
157
157
|
edsl/questions/QuestionRank.py,sha256=kYHTYXU88X2Uv-zeCiI9w5aEFYTxvg2p7DoGaaER4ik,11596
|
158
158
|
edsl/questions/Quick.py,sha256=h6h4fEvIkLIFJX2JiqfOUEXzku9azWxEpI5o2A4RmVs,1731
|
@@ -205,7 +205,7 @@ edsl/questions/templates/multiple_choice/answering_instructions.jinja,sha256=eSc
|
|
205
205
|
edsl/questions/templates/multiple_choice/html.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
206
206
|
edsl/questions/templates/multiple_choice/question_presentation.jinja,sha256=hoEVj4GQD3EYnR2AStXkMFOJeqISNoEVzBd8-cx2yWg,273
|
207
207
|
edsl/questions/templates/numerical/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
208
|
-
edsl/questions/templates/numerical/answering_instructions.jinja,sha256=
|
208
|
+
edsl/questions/templates/numerical/answering_instructions.jinja,sha256=BfGAeKFJWEzzvB91x8DrpRUERSvDv6kXf3Y0szL27LY,373
|
209
209
|
edsl/questions/templates/numerical/question_presentation.jinja,sha256=8lMUWtEPHD4XOAyVEfCmWSwRFrdUa3lo8sxzogDyzWE,183
|
210
210
|
edsl/questions/templates/rank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
211
211
|
edsl/questions/templates/rank/answering_instructions.jinja,sha256=-LWrhVJ0ZwQW_DXhARh5GweqlarWbhZzoqwr6tE-33s,433
|
@@ -229,7 +229,7 @@ edsl/results/ResultsToolsMixin.py,sha256=mseEFxJCf9sjXdIxpjITt_UZBwdXxw2o2VLg5jM
|
|
229
229
|
edsl/results/Selector.py,sha256=4AsFD71FKTFY1a0_AImsYWcYKx-RXPG6RgwsAvuNW3k,4403
|
230
230
|
edsl/results/__init__.py,sha256=2YcyiVtXi-3vIV0ZzOy1PqBLm2gaziufJVi4fdNrAt8,80
|
231
231
|
edsl/results/tree_explore.py,sha256=hQjiO4E71rIOPDgEHgK8T8ukxqoNdgX_tvyiDlG4_9U,4624
|
232
|
-
edsl/scenarios/FileStore.py,sha256=
|
232
|
+
edsl/scenarios/FileStore.py,sha256=mk8jVl2vvP31ufWPruS5ULT4TmbmMWd7NgQbtRIrJE0,13934
|
233
233
|
edsl/scenarios/Scenario.py,sha256=ZG1x4_MmWP9j0gakLwsxOZ7ESMy3ifwBMhgQlHvsYo8,16809
|
234
234
|
edsl/scenarios/ScenarioHtmlMixin.py,sha256=EmugmbPJYW5eZS30rM6pDMDQD9yrrvHjmgZWB1qBfq4,1882
|
235
235
|
edsl/scenarios/ScenarioList.py,sha256=v5zmM3AOxbVFN9kez6h8GVbFFAxDlykycXqREDc2h8c,40622
|
@@ -253,7 +253,7 @@ edsl/surveys/SurveyExportMixin.py,sha256=Kvkd2ku2Kemsn2Nw-Yt8GTnGFcUqfEiKznmisAe
|
|
253
253
|
edsl/surveys/SurveyFlowVisualizationMixin.py,sha256=dEG_f-L0ZAyWU5Ta584IX5GZurjVt1tbIISo5z61Jvg,4004
|
254
254
|
edsl/surveys/SurveyQualtricsImport.py,sha256=SSZv53D1zVhQSfSw-X0_cte0QnkWhE9v922wLn6RMkI,9771
|
255
255
|
edsl/surveys/__init__.py,sha256=vjMYVlP95fHVqqw2FfKXRuYbTArZkZr1nK4FnXzZWzs,129
|
256
|
-
edsl/surveys/base.py,sha256=
|
256
|
+
edsl/surveys/base.py,sha256=n5PBx0BF0powzBXCsufpUekfNK_9huf3rohtU1mMCq0,1001
|
257
257
|
edsl/surveys/descriptors.py,sha256=3B-hBVvGpLlVBCyOnPuxkLjesvpr0QIuATbggp_MJ7o,2076
|
258
258
|
edsl/surveys/instructions/ChangeInstruction.py,sha256=XDLuI5nVI60iJz1w1kLaKmYryAYE0XIyRbElBtNjVVM,1265
|
259
259
|
edsl/surveys/instructions/Instruction.py,sha256=WaTGihAQ6lCtm5W4vknTamkPzDp-eIAirdtGV37fdbc,925
|
@@ -289,7 +289,7 @@ edsl/utilities/interface.py,sha256=AaKpWiwWBwP2swNXmnFlIf3ZFsjfsR5bjXQAW47tD-8,1
|
|
289
289
|
edsl/utilities/repair_functions.py,sha256=tftmklAqam6LOQQu_-9U44N-llycffhW8LfO63vBmNw,929
|
290
290
|
edsl/utilities/restricted_python.py,sha256=5-_zUhrNbos7pLhDl9nr8d24auRlquR6w-vKkmNjPiA,2060
|
291
291
|
edsl/utilities/utilities.py,sha256=gqMtWWNEZkWLiRR9vHW-VRNy2bStEPlJ-I2aK9CwFiQ,11367
|
292
|
-
edsl-0.1.34.dist-info/LICENSE,sha256=_qszBDs8KHShVYcYzdMz3HNMtH-fKN_p5zjoVAVumFc,1111
|
293
|
-
edsl-0.1.34.dist-info/METADATA,sha256=
|
294
|
-
edsl-0.1.34.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
295
|
-
edsl-0.1.34.dist-info/RECORD,,
|
292
|
+
edsl-0.1.34.dev1.dist-info/LICENSE,sha256=_qszBDs8KHShVYcYzdMz3HNMtH-fKN_p5zjoVAVumFc,1111
|
293
|
+
edsl-0.1.34.dev1.dist-info/METADATA,sha256=S-k9GEY61HYIUZ60rtZxkPBP0g9V2lb6YfG70P41PFk,4476
|
294
|
+
edsl-0.1.34.dev1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
295
|
+
edsl-0.1.34.dev1.dist-info/RECORD,,
|
File without changes
|
File without changes
|