edsl 0.1.39.dev2__py3-none-any.whl → 0.1.39.dev4__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 +28 -0
- edsl/__init__.py +1 -1
- edsl/__version__.py +1 -1
- edsl/agents/Agent.py +8 -16
- edsl/agents/Invigilator.py +13 -14
- edsl/agents/InvigilatorBase.py +4 -1
- edsl/agents/PromptConstructor.py +42 -22
- edsl/agents/QuestionInstructionPromptBuilder.py +1 -1
- edsl/auto/AutoStudy.py +18 -5
- edsl/auto/StageBase.py +53 -40
- edsl/auto/StageQuestions.py +2 -1
- edsl/auto/utilities.py +0 -6
- edsl/coop/coop.py +21 -5
- edsl/data/Cache.py +29 -18
- edsl/data/CacheHandler.py +0 -2
- edsl/data/RemoteCacheSync.py +154 -46
- edsl/data/hack.py +10 -0
- edsl/enums.py +7 -0
- edsl/inference_services/AnthropicService.py +38 -16
- edsl/inference_services/AvailableModelFetcher.py +7 -1
- edsl/inference_services/GoogleService.py +5 -1
- edsl/inference_services/InferenceServicesCollection.py +18 -2
- edsl/inference_services/OpenAIService.py +46 -31
- edsl/inference_services/TestService.py +1 -3
- edsl/inference_services/TogetherAIService.py +5 -3
- edsl/inference_services/data_structures.py +74 -2
- edsl/jobs/AnswerQuestionFunctionConstructor.py +148 -113
- edsl/jobs/FetchInvigilator.py +10 -3
- edsl/jobs/InterviewsConstructor.py +6 -4
- edsl/jobs/Jobs.py +299 -233
- edsl/jobs/JobsChecks.py +2 -2
- edsl/jobs/JobsPrompts.py +1 -1
- edsl/jobs/JobsRemoteInferenceHandler.py +160 -136
- edsl/jobs/async_interview_runner.py +138 -0
- edsl/jobs/check_survey_scenario_compatibility.py +85 -0
- edsl/jobs/data_structures.py +120 -0
- edsl/jobs/interviews/Interview.py +80 -42
- edsl/jobs/results_exceptions_handler.py +98 -0
- edsl/jobs/runners/JobsRunnerAsyncio.py +87 -357
- edsl/jobs/runners/JobsRunnerStatus.py +131 -164
- edsl/jobs/tasks/TaskHistory.py +24 -3
- edsl/language_models/LanguageModel.py +59 -4
- edsl/language_models/ModelList.py +19 -8
- edsl/language_models/__init__.py +1 -1
- edsl/language_models/model.py +256 -0
- edsl/language_models/repair.py +1 -1
- edsl/questions/QuestionBase.py +35 -26
- edsl/questions/QuestionBasePromptsMixin.py +1 -1
- edsl/questions/QuestionBudget.py +1 -1
- edsl/questions/QuestionCheckBox.py +2 -2
- edsl/questions/QuestionExtract.py +5 -7
- edsl/questions/QuestionFreeText.py +1 -1
- edsl/questions/QuestionList.py +9 -15
- edsl/questions/QuestionMatrix.py +1 -1
- edsl/questions/QuestionMultipleChoice.py +1 -1
- edsl/questions/QuestionNumerical.py +1 -1
- edsl/questions/QuestionRank.py +1 -1
- edsl/questions/SimpleAskMixin.py +1 -1
- edsl/questions/__init__.py +1 -1
- edsl/questions/data_structures.py +20 -0
- edsl/questions/{QuestionBaseGenMixin.py → question_base_gen_mixin.py} +52 -49
- edsl/questions/{ResponseValidatorABC.py → response_validator_abc.py} +6 -18
- edsl/questions/{ResponseValidatorFactory.py → response_validator_factory.py} +7 -1
- edsl/results/DatasetExportMixin.py +60 -119
- edsl/results/Result.py +109 -3
- edsl/results/Results.py +50 -39
- edsl/results/file_exports.py +252 -0
- edsl/scenarios/ScenarioList.py +35 -7
- edsl/surveys/Survey.py +71 -20
- edsl/test_h +1 -0
- edsl/utilities/gcp_bucket/example.py +50 -0
- {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev4.dist-info}/METADATA +2 -2
- {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev4.dist-info}/RECORD +85 -76
- edsl/language_models/registry.py +0 -180
- /edsl/agents/{QuestionOptionProcessor.py → question_option_processor.py} +0 -0
- /edsl/questions/{AnswerValidatorMixin.py → answer_validator_mixin.py} +0 -0
- /edsl/questions/{LoopProcessor.py → loop_processor.py} +0 -0
- /edsl/questions/{RegisterQuestionsMeta.py → register_questions_meta.py} +0 -0
- /edsl/results/{ResultsFetchMixin.py → results_fetch_mixin.py} +0 -0
- /edsl/results/{Selector.py → results_selector.py} +0 -0
- /edsl/results/{ResultsToolsMixin.py → results_tools_mixin.py} +0 -0
- /edsl/scenarios/{DirectoryScanner.py → directory_scanner.py} +0 -0
- /edsl/scenarios/{ScenarioJoin.py → scenario_join.py} +0 -0
- /edsl/scenarios/{ScenarioSelector.py → scenario_selector.py} +0 -0
- {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev4.dist-info}/LICENSE +0 -0
- {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev4.dist-info}/WHEEL +0 -0
edsl/surveys/Survey.py
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
import re
|
5
|
+
import random
|
5
6
|
|
6
7
|
from typing import (
|
7
8
|
Any,
|
@@ -115,6 +116,7 @@ class Survey(SurveyExportMixin, Base):
|
|
115
116
|
rule_collection: Optional["RuleCollection"] = None,
|
116
117
|
question_groups: Optional["QuestionGroupType"] = None,
|
117
118
|
name: Optional[str] = None,
|
119
|
+
questions_to_randomize: Optional[List[str]] = None,
|
118
120
|
):
|
119
121
|
"""Create a new survey.
|
120
122
|
|
@@ -163,6 +165,33 @@ class Survey(SurveyExportMixin, Base):
|
|
163
165
|
|
164
166
|
warnings.warn("name parameter to a survey is deprecated.")
|
165
167
|
|
168
|
+
if questions_to_randomize is not None:
|
169
|
+
self.questions_to_randomize = questions_to_randomize
|
170
|
+
else:
|
171
|
+
self.questions_to_randomize = []
|
172
|
+
|
173
|
+
self._seed = None
|
174
|
+
|
175
|
+
def draw(self) -> "Survey":
|
176
|
+
"""Return a new survey with a randomly selected permutation of the options."""
|
177
|
+
if self._seed is None: # only set once
|
178
|
+
self._seed = hash(self)
|
179
|
+
random.seed(self._seed)
|
180
|
+
|
181
|
+
if len(self.questions_to_randomize) == 0:
|
182
|
+
return self
|
183
|
+
|
184
|
+
new_questions = []
|
185
|
+
for question in self.questions:
|
186
|
+
if question.question_name in self.questions_to_randomize:
|
187
|
+
new_questions.append(question.draw())
|
188
|
+
else:
|
189
|
+
new_questions.append(question.duplicate())
|
190
|
+
|
191
|
+
d = self.to_dict()
|
192
|
+
d["questions"] = [q.to_dict() for q in new_questions]
|
193
|
+
return Survey.from_dict(d)
|
194
|
+
|
166
195
|
def _process_raw_questions(self, questions: Optional[List["QuestionType"]]) -> list:
|
167
196
|
"""Process the raw questions passed to the survey."""
|
168
197
|
handler = InstructionHandler(self)
|
@@ -316,7 +345,9 @@ class Survey(SurveyExportMixin, Base):
|
|
316
345
|
>>> s.to_dict(add_edsl_version = False).keys()
|
317
346
|
dict_keys(['questions', 'memory_plan', 'rule_collection', 'question_groups'])
|
318
347
|
"""
|
319
|
-
|
348
|
+
from edsl import __version__
|
349
|
+
|
350
|
+
d = {
|
320
351
|
"questions": [
|
321
352
|
q.to_dict(add_edsl_version=add_edsl_version)
|
322
353
|
for q in self._recombined_questions_and_instructions()
|
@@ -327,6 +358,13 @@ class Survey(SurveyExportMixin, Base):
|
|
327
358
|
),
|
328
359
|
"question_groups": self.question_groups,
|
329
360
|
}
|
361
|
+
if self.questions_to_randomize != []:
|
362
|
+
d["questions_to_randomize"] = self.questions_to_randomize
|
363
|
+
|
364
|
+
if add_edsl_version:
|
365
|
+
d["edsl_version"] = __version__
|
366
|
+
d["edsl_class_name"] = "Survey"
|
367
|
+
return d
|
330
368
|
|
331
369
|
@classmethod
|
332
370
|
@remove_edsl_version
|
@@ -370,11 +408,16 @@ class Survey(SurveyExportMixin, Base):
|
|
370
408
|
get_class(q_dict).from_dict(q_dict) for q_dict in data["questions"]
|
371
409
|
]
|
372
410
|
memory_plan = MemoryPlan.from_dict(data["memory_plan"])
|
411
|
+
if "questions_to_randomize" in data:
|
412
|
+
questions_to_randomize = data["questions_to_randomize"]
|
413
|
+
else:
|
414
|
+
questions_to_randomize = None
|
373
415
|
survey = cls(
|
374
416
|
questions=questions,
|
375
417
|
memory_plan=memory_plan,
|
376
418
|
rule_collection=RuleCollection.from_dict(data["rule_collection"]),
|
377
419
|
question_groups=data["question_groups"],
|
420
|
+
questions_to_randomize=questions_to_randomize,
|
378
421
|
)
|
379
422
|
return survey
|
380
423
|
|
@@ -870,6 +913,7 @@ class Survey(SurveyExportMixin, Base):
|
|
870
913
|
agent: Optional["Agent"] = None,
|
871
914
|
cache: Optional["Cache"] = None,
|
872
915
|
disable_remote_inference: bool = False,
|
916
|
+
disable_remote_cache: bool = False,
|
873
917
|
**kwargs,
|
874
918
|
):
|
875
919
|
"""Run the survey with default model, taking the required survey as arguments.
|
@@ -879,7 +923,7 @@ class Survey(SurveyExportMixin, Base):
|
|
879
923
|
>>> def f(scenario, agent_traits): return "yes" if scenario["period"] == "morning" else "no"
|
880
924
|
>>> q = QuestionFunctional(question_name = "q0", func = f)
|
881
925
|
>>> s = Survey([q])
|
882
|
-
>>> async def test_run_async(): result = await s.run_async(period="morning", disable_remote_inference = True); print(result.select("answer.q0").first())
|
926
|
+
>>> async def test_run_async(): result = await s.run_async(period="morning", disable_remote_inference = True, disable_remote_cache=True); print(result.select("answer.q0").first())
|
883
927
|
>>> asyncio.run(test_run_async())
|
884
928
|
yes
|
885
929
|
>>> import asyncio
|
@@ -887,20 +931,23 @@ class Survey(SurveyExportMixin, Base):
|
|
887
931
|
>>> def f(scenario, agent_traits): return "yes" if scenario["period"] == "morning" else "no"
|
888
932
|
>>> q = QuestionFunctional(question_name = "q0", func = f)
|
889
933
|
>>> s = Survey([q])
|
890
|
-
>>> async def test_run_async(): result = await s.run_async(period="evening", disable_remote_inference = True); print(result.select("answer.q0").first())
|
891
|
-
>>> asyncio.run(test_run_async())
|
934
|
+
>>> async def test_run_async(): result = await s.run_async(period="evening", disable_remote_inference = True, disable_remote_cache = True); print(result.select("answer.q0").first())
|
935
|
+
>>> results = asyncio.run(test_run_async())
|
892
936
|
no
|
893
937
|
"""
|
894
938
|
# TODO: temp fix by creating a cache
|
895
939
|
if cache is None:
|
896
940
|
from edsl.data import Cache
|
897
|
-
|
898
941
|
c = Cache()
|
899
942
|
else:
|
900
943
|
c = cache
|
901
|
-
|
944
|
+
|
945
|
+
|
946
|
+
|
947
|
+
jobs: "Jobs" = self.get_job(model=model, agent=agent, **kwargs).using(c)
|
902
948
|
return await jobs.run_async(
|
903
|
-
|
949
|
+
disable_remote_inference=disable_remote_inference,
|
950
|
+
disable_remote_cache=disable_remote_cache,
|
904
951
|
)
|
905
952
|
|
906
953
|
def run(self, *args, **kwargs) -> "Results":
|
@@ -918,6 +965,12 @@ class Survey(SurveyExportMixin, Base):
|
|
918
965
|
|
919
966
|
return Jobs(survey=self).run(*args, **kwargs)
|
920
967
|
|
968
|
+
def using(self, obj: Union["Cache", "KeyLookup", "BucketCollection"]) -> "Jobs":
|
969
|
+
"""Turn the survey into a Job and appends the arguments to the Job."""
|
970
|
+
from edsl.jobs.Jobs import Jobs
|
971
|
+
|
972
|
+
return Jobs(survey=self).using(obj)
|
973
|
+
|
921
974
|
def duplicate(self):
|
922
975
|
"""Duplicate the survey.
|
923
976
|
|
@@ -1086,7 +1139,7 @@ class Survey(SurveyExportMixin, Base):
|
|
1086
1139
|
# questions_string = ", ".join([repr(q) for q in self._questions])
|
1087
1140
|
questions_string = ", ".join([repr(q) for q in self.raw_passed_questions or []])
|
1088
1141
|
# question_names_string = ", ".join([repr(name) for name in self.question_names])
|
1089
|
-
return f"Survey(questions=[{questions_string}], memory_plan={self.memory_plan}, rule_collection={self.rule_collection}, question_groups={self.question_groups})"
|
1142
|
+
return f"Survey(questions=[{questions_string}], memory_plan={self.memory_plan}, rule_collection={self.rule_collection}, question_groups={self.question_groups}, questions_to_randomize={self.questions_to_randomize})"
|
1090
1143
|
|
1091
1144
|
def _summary(self) -> dict:
|
1092
1145
|
return {
|
@@ -1172,7 +1225,7 @@ class Survey(SurveyExportMixin, Base):
|
|
1172
1225
|
|
1173
1226
|
def get_job(self, model=None, agent=None, **kwargs):
|
1174
1227
|
if model is None:
|
1175
|
-
from edsl.language_models.
|
1228
|
+
from edsl.language_models.model import Model
|
1176
1229
|
|
1177
1230
|
model = Model()
|
1178
1231
|
|
@@ -1193,26 +1246,24 @@ def main():
|
|
1193
1246
|
|
1194
1247
|
def example_survey():
|
1195
1248
|
"""Return an example survey."""
|
1196
|
-
from edsl
|
1197
|
-
from edsl.surveys.Survey import Survey
|
1249
|
+
from edsl import QuestionMultipleChoice, QuestionList, QuestionNumerical, Survey
|
1198
1250
|
|
1199
1251
|
q0 = QuestionMultipleChoice(
|
1200
|
-
question_text="Do you like school?",
|
1201
|
-
question_options=["yes", "no"],
|
1202
1252
|
question_name="q0",
|
1253
|
+
question_text="What is the capital of France?",
|
1254
|
+
question_options=["London", "Paris", "Rome", "Boston", "I don't know"]
|
1203
1255
|
)
|
1204
|
-
q1 =
|
1205
|
-
question_text="Why not?",
|
1206
|
-
question_options=["killer bees in cafeteria", "other"],
|
1256
|
+
q1 = QuestionList(
|
1207
1257
|
question_name="q1",
|
1258
|
+
question_text="Name some cities in France.",
|
1259
|
+
max_list_items = 5
|
1208
1260
|
)
|
1209
|
-
q2 =
|
1210
|
-
question_text="Why?",
|
1211
|
-
question_options=["**lack*** of killer bees in cafeteria", "other"],
|
1261
|
+
q2 = QuestionNumerical(
|
1212
1262
|
question_name="q2",
|
1263
|
+
question_text="What is the population of {{ q0.answer }}?"
|
1213
1264
|
)
|
1214
1265
|
s = Survey(questions=[q0, q1, q2])
|
1215
|
-
s = s.add_rule(q0, "q0 == '
|
1266
|
+
s = s.add_rule(q0, "q0 == 'Paris'", q2)
|
1216
1267
|
return s
|
1217
1268
|
|
1218
1269
|
s = example_survey()
|
edsl/test_h
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
[{'model_name': 'nvidia/Nemotron-4-340B-Instruct', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Nemotron-4-340B-Instruct is a chat model intended for use for the English language, designed for Synthetic Data Generation', 'cover_img_url': 'https://shared.deepinfra.com/models/nvidia/Nemotron-4-340B-Instruct/cover_image.6223332b8dfbf8dba008d030548970e7dbee4cfb571412430cc5ff8c007b7072.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'meta-llama/Llama-2-7b-chat-hf', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Llama 2 is a collection of pretrained and fine-tuned generative text models ranging in scale from 7 billion to 70 billion parameters. This is the repository for the 7B fine-tuned model, optimized for dialogue use cases and converted for the Hugging Face Transformers format. ', 'cover_img_url': 'https://shared.deepinfra.com/models/meta-llama/Llama-2-7b-chat-hf/cover_image.10373e7a429dd725e0eb9e57cd20aeb815426c077217b27d9aedce37bd5c2173.jpg', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': 'meta-llama/Meta-Llama-3-8B-Instruct', 'deprecated': 1718309480, 'quantization': 'fp16'}, {'model_name': 'meta-llama/Llama-2-13b-chat-hf', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Llama 2 is a collection of pretrained and fine-tuned generative text models ranging in scale from 7 billion to 70 billion parameters. This is the repository for the 7B fine-tuned model, optimized for dialogue use cases and converted for the Hugging Face Transformers format. ', 'cover_img_url': 'https://shared.deepinfra.com/models/meta-llama/Llama-2-13b-chat-hf/cover_image.6cbca6a3445de3ac6e75983f8828fe6b6323ae8a2d3c025ae1561ac5e56e6326.jpg', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': 'meta-llama/Meta-Llama-3-8B-Instruct', 'deprecated': 1718228019, 'quantization': 'fp16'}, {'model_name': 'deepinfra/airoboros-70b', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Latest version of the Airoboros model fine-tunned version of llama-2-70b using the Airoboros dataset. This model is currently running jondurbin/airoboros-l2-70b-2.2.1 ', 'cover_img_url': 'https://shared.deepinfra.com/models/deepinfra/airoboros-70b/cover_image.4df6a78233488497ec8cad9a032e070a1c2e0c510c7d3b2ebd5c159e15b69793.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': 'lizpreciatior/lzlv_70b_fp16_hf', 'deprecated': 1718067221, 'quantization': 'fp16'}, {'model_name': '01-ai/Yi-34B-Chat', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': '', 'cover_img_url': 'https://shared.deepinfra.com/models/01-ai/Yi-34B-Chat/cover_image.ba50c187d0414ba799d008eef1756d102f2a016b33109023a5d05ac7370f21c8.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': 'cognitivecomputations/dolphin-2.6-mixtral-8x7b', 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'mistralai/Mistral-7B-Instruct-v0.2', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'The Mistral-7B-Instruct-v0.2 Large Language Model (LLM) is a instruct fine-tuned version of the Mistral-7B-v0.2 generative text model using a variety of publicly available conversation datasets.', 'cover_img_url': 'https://shared.deepinfra.com/models/mistralai/Mistral-7B-Instruct-v0.2/cover_image.429fef8a2a09e5c4104ede511db12beaea9d3917c4754d709b05a65d5d6f6c1f.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 32768, 'replaced_by': None, 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'Qwen/Qwen2-7B-Instruct', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'The 7 billion parameter Qwen2 excels in language understanding, multilingual capabilities, coding, mathematics, and reasoning.', 'cover_img_url': 'https://shared.deepinfra.com/models/Qwen/Qwen2-7B-Instruct/cover_image.e8c2257ba46edbd20ef17c81343ad40fdf27f7bc3838837d079557accd2879e2.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 32768, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'Qwen/Qwen2-72B-Instruct', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'The 72 billion parameter Qwen2 excels in language understanding, multilingual capabilities, coding, mathematics, and reasoning.', 'cover_img_url': 'https://shared.deepinfra.com/models/Qwen/Qwen2-72B-Instruct/cover_image.6771b7ff122c6ffaa9d5ae6b6ab54db0d46079a8f90441fa7770d60cfd4c6f4f.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 32768, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'google/codegemma-7b-it', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'CodeGemma is a collection of lightweight open code models built on top of Gemma. CodeGemma models are text-to-text and text-to-code decoder-only models and are available as a 7 billion pretrained variant that specializes in code completion and code generation tasks, a 7 billion parameter instruction-tuned variant for code chat and instruction following and a 2 billion parameter pretrained variant for fast code completion.', 'cover_img_url': 'https://shared.deepinfra.com/models/google/codegemma-7b-it/cover_image.ecf88bf320526e3a113a1e51057501ffe65b8e264912e0c920ae7f95553f74b2.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 8192, 'replaced_by': 'google/gemma-1.1-7b-it', 'deprecated': 1718830428, 'quantization': 'fp16'}, {'model_name': 'mistralai/Mistral-7B-Instruct-v0.3', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Mistral-7B-Instruct-v0.3 is an instruction-tuned model, next iteration of of Mistral 7B that has larger vocabulary, newer tokenizer and supports function calling.', 'cover_img_url': 'https://shared.deepinfra.com/models/mistralai/Mistral-7B-Instruct-v0.3/cover_image.716d64cdc98717436953bde0b80dede06d7071f66cb46f1df85caaa270e5cdd6.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 32768, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'mistralai/Mixtral-8x7B-Instruct-v0.1', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Mixtral is mixture of expert large language model (LLM) from Mistral AI. This is state of the art machine learning model using a mixture 8 of experts (MoE) 7b models. During inference 2 expers are selected. This architecture allows large models to be fast and cheap at inference. The Mixtral-8x7B outperforms Llama 2 70B on most benchmarks.', 'cover_img_url': 'https://shared.deepinfra.com/models/mistralai/Mixtral-8x7B-Instruct-v0.1/cover_image.a3146cc88bb3c77e6eae14b35d8db03d7952a597633a53378ef8182186c5a9d7.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 32768, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'openchat/openchat_3.5', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'OpenChat is a library of open-source language models that have been fine-tuned with C-RLFT, a strategy inspired by offline reinforcement learning. These models can learn from mixed-quality data without preference labels and have achieved exceptional performance comparable to ChatGPT. The developers of OpenChat are dedicated to creating a high-performance, commercially viable, open-source large language model and are continuously making progress towards this goal.', 'cover_img_url': 'https://shared.deepinfra.com/models/openchat/openchat_3.5/cover_image.6112a8e07a704c30bd7c354351fa79c13904d9df7667a0064fb6b30bc80e728b.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 8192, 'replaced_by': None, 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'bigcode/starcoder2-15b-instruct-v0.1', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'We introduce StarCoder2-15B-Instruct-v0.1, the very first entirely self-aligned code Large Language Model (LLM) trained with a fully permissive and transparent pipeline. Our open-source pipeline uses StarCoder2-15B to generate thousands of instruction-response pairs, which are then used to fine-tune StarCoder-15B itself without any human annotations or distilled data from huge and proprietary LLMs.', 'cover_img_url': 'https://shared.deepinfra.com/models/bigcode/starcoder2-15b-instruct-v0.1/cover_image.f20836d5d430a93c8aa95eefc92154d14e93dc69b17967410ecce3187a07c601.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': None, 'replaced_by': 'Phind/Phind-CodeLlama-34B-v2', 'deprecated': 1718830388, 'quantization': 'fp16'}, {'model_name': 'mistralai/Mistral-7B-Instruct-v0.1', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'The Mistral-7B-Instruct-v0.1 Large Language Model (LLM) is a instruct fine-tuned version of the Mistral-7B-v0.1 generative text model using a variety of publicly available conversation datasets.', 'cover_img_url': 'https://shared.deepinfra.com/models/mistralai/Mistral-7B-Instruct-v0.1/cover_image.cdb70679749ff93eb56b8480215bb8cd1382cbeffcec00a06bdb0145be9ef511.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 32768, 'replaced_by': None, 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'meta-llama/Meta-Llama-3-8B-Instruct', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Meta developed and released the Meta Llama 3 family of large language models (LLMs), a collection of pretrained and instruction tuned generative text models in 8 and 70B sizes.', 'cover_img_url': 'https://shared.deepinfra.com/models/meta-llama/Meta-Llama-3-8B-Instruct/cover_image.9ea753fd36aabfbca4939ee488b859e08e95c4626ffff71ec3a385be66b1d3ba.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 8192, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'codellama/CodeLlama-34b-Instruct-hf', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Code Llama is a state-of-the-art LLM capable of generating code, and natural language about code, from both code and natural language prompts. This particular instance is the 34b instruct variant', 'cover_img_url': 'https://shared.deepinfra.com/models/codellama/CodeLlama-34b-Instruct-hf/cover_image.6b78b2c46fdafdd29a6eb2bcc388412b0afea3f4286d5ac90ab3c65e2da61be7.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': 'Phind/Phind-CodeLlama-34B-v2', 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Zephyr 141B-A35B is an instruction-tuned (assistant) version of Mixtral-8x22B. It was fine-tuned on a mix of publicly available, synthetic datasets. It achieves strong performance on chat benchmarks.', 'cover_img_url': 'https://shared.deepinfra.com/models/HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1/cover_image.06f8e4df28f71df5ed7d0f5c995f296ca5e259f6c9b3a3e8914ba58805fb83a6.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 65536, 'replaced_by': 'mistralai/Mixtral-8x22B-Instruct-v0.1', 'deprecated': None, 'quantization': 'fp8'}, {'model_name': 'Gryphe/MythoMax-L2-13b-turbo', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Faster version of Gryphe/MythoMax-L2-13b running on multiple H100 cards in fp8 precision. Up to 160 tps. ', 'cover_img_url': 'https://shared.deepinfra.com/models/Gryphe/MythoMax-L2-13b-turbo/cover_image.1975a8dba4bcf6809a083fe29aff31cb2895a749171f89e0db650bc039da051a.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': 'Gryphe/MythoMax-L2-13b', 'deprecated': 1718830497, 'quantization': 'fp8'}, {'model_name': 'codellama/CodeLlama-70b-Instruct-hf', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'CodeLlama-70b is the largest and latest code generation from the Code Llama collection. ', 'cover_img_url': 'https://shared.deepinfra.com/models/codellama/CodeLlama-70b-Instruct-hf/cover_image.6fc1f8b121f95b8075d0bff6f5d6fe39fdac93454078d88467697abe8ecd416b.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': 'Phind/Phind-CodeLlama-34B-v2', 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'microsoft/WizardLM-2-8x22B', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': "WizardLM-2 8x22B is Microsoft AI's most advanced Wizard model. It demonstrates highly competitive performance compared to those leading proprietary models.", 'cover_img_url': 'https://shared.deepinfra.com/models/microsoft/WizardLM-2-8x22B/cover_image.395b63e0d661def89bf43c88976a699b066f69208b3b58ae5cc2663693033ee8.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 65536, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'databricks/dbrx-instruct', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'DBRX is an open source LLM created by Databricks. It uses mixture-of-experts (MoE) architecture with 132B total parameters of which 36B parameters are active on any input. It outperforms existing open source LLMs like Llama 2 70B and Mixtral-8x7B on standard industry benchmarks for language understanding, programming, math, and logic.', 'cover_img_url': 'https://shared.deepinfra.com/models/databricks/dbrx-instruct/cover_image.061dbf63fed77872a3f1b97053081189ceefa2d6fafdc912d2d74111cfbd75c0.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 32768, 'replaced_by': 'cognitivecomputations/dolphin-2.6-mixtral-8x7b', 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'microsoft/WizardLM-2-7B', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': "WizardLM-2 7B is the smaller variant of Microsoft AI's latest Wizard model. It is the fastest and achieves comparable performance with existing 10x larger open-source leading models", 'cover_img_url': 'https://shared.deepinfra.com/models/microsoft/WizardLM-2-7B/cover_image.305876b2901f4833a14d17e09a3876b59ca7561b73017518970a75643fe9ff69.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 32768, 'replaced_by': None, 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'mistralai/Mixtral-8x22B-v0.1', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Mixtral-8x22B is the latest and largest mixture of expert large language model (LLM) from Mistral AI. This is state of the art machine learning model using a mixture 8 of experts (MoE) 22b models. During inference 2 expers are selected. This architecture allows large models to be fast and cheap at inference. This model is not instruction tuned. ', 'cover_img_url': 'https://shared.deepinfra.com/models/mistralai/Mixtral-8x22B-v0.1/cover_image.eb92d1199149a5d7fa5e7b2dc17dc991f7398301747b92bd60032c3b7fc77a0f.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 65536, 'replaced_by': 'mistralai/Mixtral-8x22B-Instruct-v0.1', 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'mistralai/Mixtral-8x22B-Instruct-v0.1', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'This is the instruction fine-tuned version of Mixtral-8x22B - the latest and largest mixture of experts large language model (LLM) from Mistral AI. This state of the art machine learning model uses a mixture 8 of experts (MoE) 22b models. During inference 2 experts are selected. This architecture allows large models to be fast and cheap at inference.', 'cover_img_url': 'https://shared.deepinfra.com/models/mistralai/Mixtral-8x22B-Instruct-v0.1/cover_image.8bb1b015367a1537fd23c69d5b8117675a86b207c9bd3cce326b750ef877bcb6.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 65536, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'meta-llama/Llama-2-70b-chat-hf', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'LLaMa 2 is a collections of LLMs trained by Meta. This is the 70B chat optimized version. This endpoint has per token pricing.', 'cover_img_url': 'https://shared.deepinfra.com/models/meta-llama/Llama-2-70b-chat-hf/cover_image.7b3407408b20bd422edfb75da90ee92d0a05649e94b59bf409c827e845fc3c46.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': 'meta-llama/Meta-Llama-3-70B-Instruct', 'deprecated': 1718309527, 'quantization': 'fp16'}, {'model_name': 'google/gemma-1.1-7b-it', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Gemma is an open-source model designed by Google. This is Gemma 1.1 7B (IT), an update over the original instruction-tuned Gemma release. Gemma 1.1 was trained using a novel RLHF method, leading to substantial gains on quality, coding capabilities, factuality, instruction following and multi-turn conversation quality.', 'cover_img_url': 'https://shared.deepinfra.com/models/google/gemma-1.1-7b-it/cover_image.18ce701e05fe6377f27c31c2e0d05649b7962f184f8dc894e31aad3ffb468f70.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 8192, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'Gryphe/MythoMax-L2-13b', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': '', 'cover_img_url': 'https://shared.deepinfra.com/models/Gryphe/MythoMax-L2-13b/cover_image.7567613d62f797fa930227a88202f7aee5ef30da38e6c9c7b775979cc71220bc.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': None, 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'openchat/openchat-3.6-8b', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Openchat 3.6 is a LLama-3-8b fine tune that outperforms it on multiple benchmarks.', 'cover_img_url': 'https://shared.deepinfra.com/models/openchat/openchat-3.6-8b/cover_image.c5792073e4034a0847ff5112e00356adb411c4a5c900ed22c32ad65c5d97e8d1.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 8192, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'Austism/chronos-hermes-13b-v2', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'This offers the imaginative writing style of chronos while still retaining coherency and being capable. Outputs are long and utilize exceptional prose. Supports a maxium context length of 4096. The model follows the Alpaca prompt format.', 'cover_img_url': '', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': None, 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'Phind/Phind-CodeLlama-34B-v2', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Phind-CodeLlama-34B-v2 is an open-source language model that has been fine-tuned on 1.5B tokens of high-quality programming-related data and achieved a pass@1 rate of 73.8% on HumanEval. It is multi-lingual and proficient in Python, C/C++, TypeScript, Java, and more. It has been trained on a proprietary dataset of instruction-answer pairs instead of code completion examples. The model is instruction-tuned on the Alpaca/Vicuna format to be steerable and easy-to-use. It accepts the Alpaca/Vicuna instruction format and can generate one completion for each prompt.', 'cover_img_url': 'https://shared.deepinfra.com/models/Phind/Phind-CodeLlama-34B-v2/cover_image.0d7cb500b84d00e46b7bf490b75cf8eda73a3ad775fa4360c8deba541c3349b3.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': None, 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'lizpreciatior/lzlv_70b_fp16_hf', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'A Mythomax/MLewd_13B-style merge of selected 70B models A multi-model merge of several LLaMA2 70B finetunes for roleplaying and creative work. The goal was to create a model that combines creativity with intelligence for an enhanced experience.', 'cover_img_url': 'https://shared.deepinfra.com/models/lizpreciatior/lzlv_70b_fp16_hf/cover_image.2bb893141f7dce176afce500c4ec8ca22cfe5e2b00253d997fea31a7f60adc1b.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': None, 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'cognitivecomputations/dolphin-2.6-mixtral-8x7b', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'The Dolphin 2.6 Mixtral 8x7b model is a finetuned version of the Mixtral-8x7b model, trained on a variety of data including coding data, for 3 days on 4 A100 GPUs. It is uncensored and requires trust_remote_code. The model is very obedient and good at coding, but not DPO tuned. The dataset has been filtered for alignment and bias. The model is compliant with user requests and can be used for various purposes such as generating code or engaging in general chat.', 'cover_img_url': 'https://shared.deepinfra.com/models/cognitivecomputations/dolphin-2.6-mixtral-8x7b/cover_image.b265207e1a422c62c06f23a86e6ef6e8ee326de40a24bb1c5d9f102c1f2acd6b.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 32768, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'bigcode/starcoder2-15b', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'StarCoder2-15B model is a 15B parameter model trained on 600+ programming languages. It specializes in code completion.', 'cover_img_url': 'https://shared.deepinfra.com/models/bigcode/starcoder2-15b/cover_image.8981f6e7c85d72bf816c2abcb90d811c905db812ce0560ba5216df8cbc314464.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 16384, 'replaced_by': 'Phind/Phind-CodeLlama-34B-v2', 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'llava-hf/llava-1.5-7b-hf', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'LLaVa is a multimodal model that supports vision and language models combined.', 'cover_img_url': 'https://shared.deepinfra.com/models/llava-hf/llava-1.5-7b-hf/cover_image.ed4fba7a25b147e7fe6675e9f760585e11274e8ee72596e6412447260493cd4f.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': None, 'deprecated': None, 'quantization': 'fp16'}, {'model_name': 'meta-llama/Meta-Llama-3-70B-Instruct', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'Model Details Meta developed and released the Meta Llama 3 family of large language models (LLMs), a collection of pretrained and instruction tuned generative text models in 8 and 70B sizes.', 'cover_img_url': 'https://shared.deepinfra.com/models/meta-llama/Meta-Llama-3-70B-Instruct/cover_image.bcffae761540e7dd36aea32e2a576690d43592a0fc39b9edbe83a5420758aabf.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 8192, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}, {'model_name': 'microsoft/Phi-3-medium-4k-instruct', 'type': 'text-generation', 'reported_type': 'text-generation', 'description': 'The Phi-3-Medium-4K-Instruct is a powerful and lightweight language model with 14 billion parameters, trained on high-quality data to excel in instruction following and safety measures. It demonstrates exceptional performance across benchmarks, including common sense, language understanding, and logical reasoning, outperforming models of similar size.', 'cover_img_url': 'https://shared.deepinfra.com/models/microsoft/Phi-3-medium-4k-instruct/cover_image.6c7f810d3584719025ba43de13448d318bda84043a08af1b9718c61d9498b18c.webp', 'tags': [...], 'pricing': {...}, 'max_tokens': 4096, 'replaced_by': None, 'deprecated': None, 'quantization': 'bfloat16'}]
|
@@ -0,0 +1,50 @@
|
|
1
|
+
from edsl.utilities.gcp_bucket.cloud_storage import CloudStorageManager
|
2
|
+
|
3
|
+
# API URLs
|
4
|
+
secret_token = "your-secret-token"
|
5
|
+
|
6
|
+
# File paths and names
|
7
|
+
upload_file_path = "./app.py"
|
8
|
+
upload_file_name = "new_upload.py"
|
9
|
+
|
10
|
+
# Initialize CloudStorageManager
|
11
|
+
manager = CloudStorageManager(secret_token=secret_token) # secret_token only for upload operations
|
12
|
+
|
13
|
+
# Upload Process
|
14
|
+
try:
|
15
|
+
manager.upload_file(upload_file_path, upload_file_name)
|
16
|
+
print("File upload process completed.")
|
17
|
+
except Exception as e:
|
18
|
+
print(f"Upload error: {str(e)}")
|
19
|
+
|
20
|
+
# Download Process
|
21
|
+
file_name = "new_upload.py" # Name for the downloaded file
|
22
|
+
save_name = "res_download.py"
|
23
|
+
try:
|
24
|
+
manager.download_file(file_name, save_name)
|
25
|
+
print("File download process completed.")
|
26
|
+
except Exception as e:
|
27
|
+
print(f"Download error: {str(e)}")
|
28
|
+
|
29
|
+
# List files
|
30
|
+
try:
|
31
|
+
print("listing files")
|
32
|
+
out = manager.list_files()
|
33
|
+
for x in out["data"]:
|
34
|
+
print(f"file_name: {x['file_name']}", f"url: {x['url']}")
|
35
|
+
except Exception as e:
|
36
|
+
print(f"Exception in listing files", str(e))
|
37
|
+
|
38
|
+
# Delete file
|
39
|
+
try:
|
40
|
+
manager.delete_file("new_upload.py")
|
41
|
+
except Exception as e:
|
42
|
+
print(f"Exception in deleting file", str(e))
|
43
|
+
# List files
|
44
|
+
try:
|
45
|
+
print("listing files")
|
46
|
+
out = manager.list_files()
|
47
|
+
for x in out["data"]:
|
48
|
+
print(f"file_name: {x['file_name']}", f"url: {x['url']}")
|
49
|
+
except Exception as e:
|
50
|
+
print(f"Exception in listing files", str(e))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: edsl
|
3
|
-
Version: 0.1.39.
|
3
|
+
Version: 0.1.39.dev4
|
4
4
|
Summary: Create and analyze LLM-based surveys
|
5
5
|
Home-page: https://www.expectedparrot.com/
|
6
6
|
License: MIT
|
@@ -107,5 +107,5 @@ See instructions on [storing API keys](https://docs.expectedparrot.com/en/latest
|
|
107
107
|
|
108
108
|
## 💡 Contributions, feature requests & bugs
|
109
109
|
Interested in contributing? Want us to add a new feature? Found a bug for us to squash?
|
110
|
-
Please send us an email at [info@expectedparrot.com](mailto:info@expectedparrot.com) or message us at our [Discord channel](https://discord.com/invite/mxAYkjfy9m)
|
110
|
+
Please send us an email at [info@expectedparrot.com](mailto:info@expectedparrot.com) or message us at our [Discord channel](https://discord.com/invite/mxAYkjfy9m)..
|
111
111
|
|