together 1.5.17__py3-none-any.whl → 2.0.0a8__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 (205) hide show
  1. together/__init__.py +101 -63
  2. together/_base_client.py +1995 -0
  3. together/_client.py +1033 -0
  4. together/_compat.py +219 -0
  5. together/_constants.py +14 -0
  6. together/_exceptions.py +108 -0
  7. together/_files.py +123 -0
  8. together/_models.py +857 -0
  9. together/_qs.py +150 -0
  10. together/_resource.py +43 -0
  11. together/_response.py +830 -0
  12. together/_streaming.py +370 -0
  13. together/_types.py +260 -0
  14. together/_utils/__init__.py +64 -0
  15. together/_utils/_compat.py +45 -0
  16. together/_utils/_datetime_parse.py +136 -0
  17. together/_utils/_logs.py +25 -0
  18. together/_utils/_proxy.py +65 -0
  19. together/_utils/_reflection.py +42 -0
  20. together/_utils/_resources_proxy.py +24 -0
  21. together/_utils/_streams.py +12 -0
  22. together/_utils/_sync.py +58 -0
  23. together/_utils/_transform.py +457 -0
  24. together/_utils/_typing.py +156 -0
  25. together/_utils/_utils.py +421 -0
  26. together/_version.py +4 -0
  27. together/lib/.keep +4 -0
  28. together/lib/__init__.py +23 -0
  29. together/{cli → lib/cli}/api/endpoints.py +108 -75
  30. together/lib/cli/api/evals.py +588 -0
  31. together/{cli → lib/cli}/api/files.py +20 -17
  32. together/{cli/api/finetune.py → lib/cli/api/fine_tuning.py} +161 -120
  33. together/lib/cli/api/models.py +140 -0
  34. together/{cli → lib/cli}/api/utils.py +6 -7
  35. together/{cli → lib/cli}/cli.py +16 -24
  36. together/{constants.py → lib/constants.py} +17 -12
  37. together/lib/resources/__init__.py +11 -0
  38. together/lib/resources/files.py +999 -0
  39. together/lib/resources/fine_tuning.py +280 -0
  40. together/lib/resources/models.py +35 -0
  41. together/lib/types/__init__.py +13 -0
  42. together/lib/types/error.py +9 -0
  43. together/lib/types/fine_tuning.py +455 -0
  44. together/{utils → lib/utils}/__init__.py +6 -14
  45. together/{utils → lib/utils}/_log.py +11 -16
  46. together/lib/utils/files.py +628 -0
  47. together/lib/utils/serializer.py +10 -0
  48. together/{utils → lib/utils}/tools.py +19 -55
  49. together/resources/__init__.py +225 -33
  50. together/resources/audio/__init__.py +72 -21
  51. together/resources/audio/audio.py +198 -0
  52. together/resources/audio/speech.py +574 -122
  53. together/resources/audio/transcriptions.py +282 -0
  54. together/resources/audio/translations.py +256 -0
  55. together/resources/audio/voices.py +135 -0
  56. together/resources/batches.py +417 -0
  57. together/resources/chat/__init__.py +30 -21
  58. together/resources/chat/chat.py +102 -0
  59. together/resources/chat/completions.py +1063 -263
  60. together/resources/code_interpreter/__init__.py +33 -0
  61. together/resources/code_interpreter/code_interpreter.py +258 -0
  62. together/resources/code_interpreter/sessions.py +135 -0
  63. together/resources/completions.py +884 -225
  64. together/resources/embeddings.py +172 -68
  65. together/resources/endpoints.py +598 -395
  66. together/resources/evals.py +452 -0
  67. together/resources/files.py +398 -121
  68. together/resources/fine_tuning.py +1033 -0
  69. together/resources/hardware.py +181 -0
  70. together/resources/images.py +256 -108
  71. together/resources/jobs.py +214 -0
  72. together/resources/models.py +238 -90
  73. together/resources/rerank.py +190 -92
  74. together/resources/videos.py +374 -0
  75. together/types/__init__.py +65 -109
  76. together/types/audio/__init__.py +10 -0
  77. together/types/audio/speech_create_params.py +75 -0
  78. together/types/audio/transcription_create_params.py +54 -0
  79. together/types/audio/transcription_create_response.py +111 -0
  80. together/types/audio/translation_create_params.py +40 -0
  81. together/types/audio/translation_create_response.py +70 -0
  82. together/types/audio/voice_list_response.py +23 -0
  83. together/types/audio_speech_stream_chunk.py +16 -0
  84. together/types/autoscaling.py +13 -0
  85. together/types/autoscaling_param.py +15 -0
  86. together/types/batch_create_params.py +24 -0
  87. together/types/batch_create_response.py +14 -0
  88. together/types/batch_job.py +45 -0
  89. together/types/batch_list_response.py +10 -0
  90. together/types/chat/__init__.py +18 -0
  91. together/types/chat/chat_completion.py +60 -0
  92. together/types/chat/chat_completion_chunk.py +61 -0
  93. together/types/chat/chat_completion_structured_message_image_url_param.py +18 -0
  94. together/types/chat/chat_completion_structured_message_text_param.py +13 -0
  95. together/types/chat/chat_completion_structured_message_video_url_param.py +18 -0
  96. together/types/chat/chat_completion_usage.py +13 -0
  97. together/types/chat/chat_completion_warning.py +9 -0
  98. together/types/chat/completion_create_params.py +329 -0
  99. together/types/code_interpreter/__init__.py +5 -0
  100. together/types/code_interpreter/session_list_response.py +31 -0
  101. together/types/code_interpreter_execute_params.py +45 -0
  102. together/types/completion.py +42 -0
  103. together/types/completion_chunk.py +66 -0
  104. together/types/completion_create_params.py +138 -0
  105. together/types/dedicated_endpoint.py +44 -0
  106. together/types/embedding.py +24 -0
  107. together/types/embedding_create_params.py +31 -0
  108. together/types/endpoint_create_params.py +43 -0
  109. together/types/endpoint_list_avzones_response.py +11 -0
  110. together/types/endpoint_list_params.py +18 -0
  111. together/types/endpoint_list_response.py +41 -0
  112. together/types/endpoint_update_params.py +27 -0
  113. together/types/eval_create_params.py +263 -0
  114. together/types/eval_create_response.py +16 -0
  115. together/types/eval_list_params.py +21 -0
  116. together/types/eval_list_response.py +10 -0
  117. together/types/eval_status_response.py +100 -0
  118. together/types/evaluation_job.py +139 -0
  119. together/types/execute_response.py +108 -0
  120. together/types/file_delete_response.py +13 -0
  121. together/types/file_list.py +12 -0
  122. together/types/file_purpose.py +9 -0
  123. together/types/file_response.py +31 -0
  124. together/types/file_type.py +7 -0
  125. together/types/fine_tuning_cancel_response.py +194 -0
  126. together/types/fine_tuning_content_params.py +24 -0
  127. together/types/fine_tuning_delete_params.py +11 -0
  128. together/types/fine_tuning_delete_response.py +12 -0
  129. together/types/fine_tuning_list_checkpoints_response.py +21 -0
  130. together/types/fine_tuning_list_events_response.py +12 -0
  131. together/types/fine_tuning_list_response.py +199 -0
  132. together/types/finetune_event.py +41 -0
  133. together/types/finetune_event_type.py +33 -0
  134. together/types/finetune_response.py +177 -0
  135. together/types/hardware_list_params.py +16 -0
  136. together/types/hardware_list_response.py +58 -0
  137. together/types/image_data_b64.py +15 -0
  138. together/types/image_data_url.py +15 -0
  139. together/types/image_file.py +23 -0
  140. together/types/image_generate_params.py +85 -0
  141. together/types/job_list_response.py +47 -0
  142. together/types/job_retrieve_response.py +43 -0
  143. together/types/log_probs.py +18 -0
  144. together/types/model_list_response.py +10 -0
  145. together/types/model_object.py +42 -0
  146. together/types/model_upload_params.py +36 -0
  147. together/types/model_upload_response.py +23 -0
  148. together/types/rerank_create_params.py +36 -0
  149. together/types/rerank_create_response.py +36 -0
  150. together/types/tool_choice.py +23 -0
  151. together/types/tool_choice_param.py +23 -0
  152. together/types/tools_param.py +23 -0
  153. together/types/training_method_dpo.py +22 -0
  154. together/types/training_method_sft.py +18 -0
  155. together/types/video_create_params.py +86 -0
  156. together/types/video_job.py +57 -0
  157. together-2.0.0a8.dist-info/METADATA +680 -0
  158. together-2.0.0a8.dist-info/RECORD +164 -0
  159. {together-1.5.17.dist-info → together-2.0.0a8.dist-info}/WHEEL +1 -1
  160. together-2.0.0a8.dist-info/entry_points.txt +2 -0
  161. {together-1.5.17.dist-info → together-2.0.0a8.dist-info/licenses}/LICENSE +1 -1
  162. together/abstract/api_requestor.py +0 -729
  163. together/cli/api/chat.py +0 -276
  164. together/cli/api/completions.py +0 -119
  165. together/cli/api/images.py +0 -93
  166. together/cli/api/models.py +0 -55
  167. together/client.py +0 -176
  168. together/error.py +0 -194
  169. together/filemanager.py +0 -389
  170. together/legacy/__init__.py +0 -0
  171. together/legacy/base.py +0 -27
  172. together/legacy/complete.py +0 -93
  173. together/legacy/embeddings.py +0 -27
  174. together/legacy/files.py +0 -146
  175. together/legacy/finetune.py +0 -177
  176. together/legacy/images.py +0 -27
  177. together/legacy/models.py +0 -44
  178. together/resources/batch.py +0 -136
  179. together/resources/code_interpreter.py +0 -82
  180. together/resources/finetune.py +0 -1064
  181. together/together_response.py +0 -50
  182. together/types/abstract.py +0 -26
  183. together/types/audio_speech.py +0 -110
  184. together/types/batch.py +0 -53
  185. together/types/chat_completions.py +0 -197
  186. together/types/code_interpreter.py +0 -57
  187. together/types/common.py +0 -66
  188. together/types/completions.py +0 -107
  189. together/types/embeddings.py +0 -35
  190. together/types/endpoints.py +0 -123
  191. together/types/error.py +0 -16
  192. together/types/files.py +0 -90
  193. together/types/finetune.py +0 -398
  194. together/types/images.py +0 -44
  195. together/types/models.py +0 -45
  196. together/types/rerank.py +0 -43
  197. together/utils/api_helpers.py +0 -124
  198. together/utils/files.py +0 -425
  199. together/version.py +0 -6
  200. together-1.5.17.dist-info/METADATA +0 -525
  201. together-1.5.17.dist-info/RECORD +0 -69
  202. together-1.5.17.dist-info/entry_points.txt +0 -3
  203. /together/{abstract → lib/cli}/__init__.py +0 -0
  204. /together/{cli → lib/cli/api}/__init__.py +0 -0
  205. /together/{cli/api/__init__.py → py.typed} +0 -0
@@ -6,20 +6,19 @@ from typing import Any
6
6
  import click
7
7
 
8
8
  import together
9
- from together.cli.api.chat import chat, interactive
10
- from together.cli.api.completions import completions
11
- from together.cli.api.endpoints import endpoints
12
- from together.cli.api.files import files
13
- from together.cli.api.finetune import fine_tuning
14
- from together.cli.api.images import images
15
- from together.cli.api.models import models
16
- from together.constants import MAX_RETRIES, TIMEOUT_SECS
9
+ from together._version import __version__
10
+ from together._constants import DEFAULT_TIMEOUT
11
+ from together.lib.cli.api.evals import evals
12
+ from together.lib.cli.api.files import files
13
+ from together.lib.cli.api.models import models
14
+ from together.lib.cli.api.endpoints import endpoints
15
+ from together.lib.cli.api.fine_tuning import fine_tuning
17
16
 
18
17
 
19
- def print_version(ctx: click.Context, params: Any, value: Any) -> None:
18
+ def print_version(ctx: click.Context, _params: Any, value: Any) -> None:
20
19
  if not value or ctx.resilient_parsing:
21
20
  return
22
- click.echo(f"Version {together.version}")
21
+ click.echo(f"Version {__version__}")
23
22
  ctx.exit()
24
23
 
25
24
 
@@ -31,16 +30,12 @@ def print_version(ctx: click.Context, params: Any, value: Any) -> None:
31
30
  help="API Key. Defaults to environment variable `TOGETHER_API_KEY`",
32
31
  default=os.getenv("TOGETHER_API_KEY"),
33
32
  )
34
- @click.option(
35
- "--base-url", type=str, help="API Base URL. Defaults to Together AI endpoint."
36
- )
37
- @click.option(
38
- "--timeout", type=int, help=f"Request timeout. Defaults to {TIMEOUT_SECS} seconds"
39
- )
33
+ @click.option("--base-url", type=str, help="API Base URL. Defaults to Together AI endpoint.")
34
+ @click.option("--timeout", type=int, help=f"Request timeout. Defaults to {DEFAULT_TIMEOUT} seconds")
40
35
  @click.option(
41
36
  "--max-retries",
42
37
  type=int,
43
- help=f"Maximum number of HTTP retries. Defaults to {MAX_RETRIES}.",
38
+ help=f"Maximum number of HTTP retries.",
44
39
  )
45
40
  @click.option(
46
41
  "--version",
@@ -56,24 +51,21 @@ def main(
56
51
  api_key: str | None,
57
52
  base_url: str | None,
58
53
  timeout: int | None,
59
- max_retries: int | None,
60
54
  debug: bool | None,
55
+ max_retries: int | None,
61
56
  ) -> None:
62
57
  """This is a sample CLI tool."""
63
- together.log = "debug" if debug else None
58
+ os.environ.setdefault("TOGETHER_LOG", "debug" if debug else "info")
64
59
  ctx.obj = together.Together(
65
- api_key=api_key, base_url=base_url, timeout=timeout, max_retries=max_retries
60
+ api_key=api_key, base_url=base_url, timeout=timeout, max_retries=max_retries if max_retries is not None else 0
66
61
  )
67
62
 
68
63
 
69
- main.add_command(chat)
70
- main.add_command(interactive)
71
- main.add_command(completions)
72
- main.add_command(images)
73
64
  main.add_command(files)
74
65
  main.add_command(fine_tuning)
75
66
  main.add_command(models)
76
67
  main.add_command(endpoints)
68
+ main.add_command(evals)
77
69
 
78
70
  if __name__ == "__main__":
79
71
  main()
@@ -1,24 +1,29 @@
1
1
  import enum
2
2
 
3
3
  # Session constants
4
- TIMEOUT_SECS = 600
5
- MAX_SESSION_LIFETIME_SECS = 180
6
- MAX_CONNECTION_RETRIES = 2
7
- MAX_RETRIES = 5
8
- INITIAL_RETRY_DELAY = 0.5
9
- MAX_RETRY_DELAY = 8.0
4
+ # TIMEOUT_SECS = 600
5
+ # MAX_SESSION_LIFETIME_SECS = 180
6
+ # MAX_CONNECTION_RETRIES = 2
7
+ # MAX_RETRIES = 5
8
+ # INITIAL_RETRY_DELAY = 0.5
9
+ # MAX_RETRY_DELAY = 8.0
10
10
 
11
11
  # API defaults
12
- BASE_URL = "https://api.together.xyz/v1"
12
+ # BASE_URL = "https://api.together.xyz/v1"
13
13
 
14
14
  # Download defaults
15
15
  DOWNLOAD_BLOCK_SIZE = 10 * 1024 * 1024 # 10 MB
16
16
  DISABLE_TQDM = False
17
17
 
18
- # Messages
19
- MISSING_API_KEY_MESSAGE = """TOGETHER_API_KEY not found.
20
- Please set it as an environment variable or set it as together.api_key
21
- Find your TOGETHER_API_KEY at https://api.together.xyz/settings/api-keys"""
18
+ # Upload defaults
19
+ MAX_CONCURRENT_PARTS = 4 # Maximum concurrent parts for multipart upload
20
+
21
+ # Multipart upload constants
22
+ MIN_PART_SIZE_MB = 5 # Minimum part size (S3 requirement)
23
+ TARGET_PART_SIZE_MB = 250 # Target part size for optimal performance
24
+ MAX_MULTIPART_PARTS = 250 # Maximum parts per upload (S3 limit)
25
+ MULTIPART_UPLOAD_TIMEOUT = 300 # Timeout in seconds for uploading each part
26
+ MULTIPART_THRESHOLD_GB = 5.0 # threshold for switching to multipart upload
22
27
 
23
28
  # Minimum number of samples required for fine-tuning file
24
29
  MIN_SAMPLES = 1
@@ -27,7 +32,7 @@ MIN_SAMPLES = 1
27
32
  NUM_BYTES_IN_GB = 2**30
28
33
 
29
34
  # maximum number of GB sized files we support finetuning for
30
- MAX_FILE_SIZE_GB = 4.9
35
+ MAX_FILE_SIZE_GB = 50.1
31
36
 
32
37
  # expected columns for Parquet files
33
38
  PARQUET_EXPECTED_COLUMNS = ["input_ids", "attention_mask", "labels"]
@@ -0,0 +1,11 @@
1
+ from .files import (
2
+ UploadManager,
3
+ DownloadManager,
4
+ AsyncUploadManager,
5
+ )
6
+
7
+ __all__ = [
8
+ "DownloadManager",
9
+ "UploadManager",
10
+ "AsyncUploadManager",
11
+ ]