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.
Files changed (86) hide show
  1. edsl/Base.py +28 -0
  2. edsl/__init__.py +1 -1
  3. edsl/__version__.py +1 -1
  4. edsl/agents/Agent.py +8 -16
  5. edsl/agents/Invigilator.py +13 -14
  6. edsl/agents/InvigilatorBase.py +4 -1
  7. edsl/agents/PromptConstructor.py +42 -22
  8. edsl/agents/QuestionInstructionPromptBuilder.py +1 -1
  9. edsl/auto/AutoStudy.py +18 -5
  10. edsl/auto/StageBase.py +53 -40
  11. edsl/auto/StageQuestions.py +2 -1
  12. edsl/auto/utilities.py +0 -6
  13. edsl/coop/coop.py +21 -5
  14. edsl/data/Cache.py +29 -18
  15. edsl/data/CacheHandler.py +0 -2
  16. edsl/data/RemoteCacheSync.py +154 -46
  17. edsl/data/hack.py +10 -0
  18. edsl/enums.py +7 -0
  19. edsl/inference_services/AnthropicService.py +38 -16
  20. edsl/inference_services/AvailableModelFetcher.py +7 -1
  21. edsl/inference_services/GoogleService.py +5 -1
  22. edsl/inference_services/InferenceServicesCollection.py +18 -2
  23. edsl/inference_services/OpenAIService.py +46 -31
  24. edsl/inference_services/TestService.py +1 -3
  25. edsl/inference_services/TogetherAIService.py +5 -3
  26. edsl/inference_services/data_structures.py +74 -2
  27. edsl/jobs/AnswerQuestionFunctionConstructor.py +148 -113
  28. edsl/jobs/FetchInvigilator.py +10 -3
  29. edsl/jobs/InterviewsConstructor.py +6 -4
  30. edsl/jobs/Jobs.py +299 -233
  31. edsl/jobs/JobsChecks.py +2 -2
  32. edsl/jobs/JobsPrompts.py +1 -1
  33. edsl/jobs/JobsRemoteInferenceHandler.py +160 -136
  34. edsl/jobs/async_interview_runner.py +138 -0
  35. edsl/jobs/check_survey_scenario_compatibility.py +85 -0
  36. edsl/jobs/data_structures.py +120 -0
  37. edsl/jobs/interviews/Interview.py +80 -42
  38. edsl/jobs/results_exceptions_handler.py +98 -0
  39. edsl/jobs/runners/JobsRunnerAsyncio.py +87 -357
  40. edsl/jobs/runners/JobsRunnerStatus.py +131 -164
  41. edsl/jobs/tasks/TaskHistory.py +24 -3
  42. edsl/language_models/LanguageModel.py +59 -4
  43. edsl/language_models/ModelList.py +19 -8
  44. edsl/language_models/__init__.py +1 -1
  45. edsl/language_models/model.py +256 -0
  46. edsl/language_models/repair.py +1 -1
  47. edsl/questions/QuestionBase.py +35 -26
  48. edsl/questions/QuestionBasePromptsMixin.py +1 -1
  49. edsl/questions/QuestionBudget.py +1 -1
  50. edsl/questions/QuestionCheckBox.py +2 -2
  51. edsl/questions/QuestionExtract.py +5 -7
  52. edsl/questions/QuestionFreeText.py +1 -1
  53. edsl/questions/QuestionList.py +9 -15
  54. edsl/questions/QuestionMatrix.py +1 -1
  55. edsl/questions/QuestionMultipleChoice.py +1 -1
  56. edsl/questions/QuestionNumerical.py +1 -1
  57. edsl/questions/QuestionRank.py +1 -1
  58. edsl/questions/SimpleAskMixin.py +1 -1
  59. edsl/questions/__init__.py +1 -1
  60. edsl/questions/data_structures.py +20 -0
  61. edsl/questions/{QuestionBaseGenMixin.py → question_base_gen_mixin.py} +52 -49
  62. edsl/questions/{ResponseValidatorABC.py → response_validator_abc.py} +6 -18
  63. edsl/questions/{ResponseValidatorFactory.py → response_validator_factory.py} +7 -1
  64. edsl/results/DatasetExportMixin.py +60 -119
  65. edsl/results/Result.py +109 -3
  66. edsl/results/Results.py +50 -39
  67. edsl/results/file_exports.py +252 -0
  68. edsl/scenarios/ScenarioList.py +35 -7
  69. edsl/surveys/Survey.py +71 -20
  70. edsl/test_h +1 -0
  71. edsl/utilities/gcp_bucket/example.py +50 -0
  72. {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev4.dist-info}/METADATA +2 -2
  73. {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev4.dist-info}/RECORD +85 -76
  74. edsl/language_models/registry.py +0 -180
  75. /edsl/agents/{QuestionOptionProcessor.py → question_option_processor.py} +0 -0
  76. /edsl/questions/{AnswerValidatorMixin.py → answer_validator_mixin.py} +0 -0
  77. /edsl/questions/{LoopProcessor.py → loop_processor.py} +0 -0
  78. /edsl/questions/{RegisterQuestionsMeta.py → register_questions_meta.py} +0 -0
  79. /edsl/results/{ResultsFetchMixin.py → results_fetch_mixin.py} +0 -0
  80. /edsl/results/{Selector.py → results_selector.py} +0 -0
  81. /edsl/results/{ResultsToolsMixin.py → results_tools_mixin.py} +0 -0
  82. /edsl/scenarios/{DirectoryScanner.py → directory_scanner.py} +0 -0
  83. /edsl/scenarios/{ScenarioJoin.py → scenario_join.py} +0 -0
  84. /edsl/scenarios/{ScenarioSelector.py → scenario_selector.py} +0 -0
  85. {edsl-0.1.39.dev2.dist-info → edsl-0.1.39.dev4.dist-info}/LICENSE +0 -0
  86. {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
- return {
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
- jobs: "Jobs" = self.get_job(model=model, agent=agent, **kwargs)
944
+
945
+
946
+
947
+ jobs: "Jobs" = self.get_job(model=model, agent=agent, **kwargs).using(c)
902
948
  return await jobs.run_async(
903
- cache=c, disable_remote_inference=disable_remote_inference
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.registry import Model
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.questions.QuestionMultipleChoice import QuestionMultipleChoice
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 = QuestionMultipleChoice(
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 = QuestionMultipleChoice(
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 == 'yes'", q2)
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.dev2
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