together 1.2.11__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.
- together/__init__.py +101 -63
- together/_base_client.py +1995 -0
- together/_client.py +1033 -0
- together/_compat.py +219 -0
- together/_constants.py +14 -0
- together/_exceptions.py +108 -0
- together/_files.py +123 -0
- together/_models.py +857 -0
- together/_qs.py +150 -0
- together/_resource.py +43 -0
- together/_response.py +830 -0
- together/_streaming.py +370 -0
- together/_types.py +260 -0
- together/_utils/__init__.py +64 -0
- together/_utils/_compat.py +45 -0
- together/_utils/_datetime_parse.py +136 -0
- together/_utils/_logs.py +25 -0
- together/_utils/_proxy.py +65 -0
- together/_utils/_reflection.py +42 -0
- together/_utils/_resources_proxy.py +24 -0
- together/_utils/_streams.py +12 -0
- together/_utils/_sync.py +58 -0
- together/_utils/_transform.py +457 -0
- together/_utils/_typing.py +156 -0
- together/_utils/_utils.py +421 -0
- together/_version.py +4 -0
- together/lib/.keep +4 -0
- together/lib/__init__.py +23 -0
- together/lib/cli/api/endpoints.py +467 -0
- together/lib/cli/api/evals.py +588 -0
- together/{cli → lib/cli}/api/files.py +20 -17
- together/lib/cli/api/fine_tuning.py +566 -0
- together/lib/cli/api/models.py +140 -0
- together/lib/cli/api/utils.py +50 -0
- together/{cli → lib/cli}/cli.py +17 -23
- together/lib/constants.py +61 -0
- together/lib/resources/__init__.py +11 -0
- together/lib/resources/files.py +999 -0
- together/lib/resources/fine_tuning.py +280 -0
- together/lib/resources/models.py +35 -0
- together/lib/types/__init__.py +13 -0
- together/lib/types/error.py +9 -0
- together/lib/types/fine_tuning.py +455 -0
- together/{utils → lib/utils}/__init__.py +7 -10
- together/{utils → lib/utils}/_log.py +18 -13
- together/lib/utils/files.py +628 -0
- together/lib/utils/serializer.py +10 -0
- together/{utils → lib/utils}/tools.py +17 -2
- together/resources/__init__.py +225 -24
- together/resources/audio/__init__.py +75 -0
- together/resources/audio/audio.py +198 -0
- together/resources/audio/speech.py +605 -0
- together/resources/audio/transcriptions.py +282 -0
- together/resources/audio/translations.py +256 -0
- together/resources/audio/voices.py +135 -0
- together/resources/batches.py +417 -0
- together/resources/chat/__init__.py +30 -21
- together/resources/chat/chat.py +102 -0
- together/resources/chat/completions.py +1063 -257
- together/resources/code_interpreter/__init__.py +33 -0
- together/resources/code_interpreter/code_interpreter.py +258 -0
- together/resources/code_interpreter/sessions.py +135 -0
- together/resources/completions.py +890 -225
- together/resources/embeddings.py +172 -68
- together/resources/endpoints.py +711 -0
- together/resources/evals.py +452 -0
- together/resources/files.py +397 -120
- together/resources/fine_tuning.py +1033 -0
- together/resources/hardware.py +181 -0
- together/resources/images.py +256 -108
- together/resources/jobs.py +214 -0
- together/resources/models.py +251 -44
- together/resources/rerank.py +190 -92
- together/resources/videos.py +374 -0
- together/types/__init__.py +66 -73
- together/types/audio/__init__.py +10 -0
- together/types/audio/speech_create_params.py +75 -0
- together/types/audio/transcription_create_params.py +54 -0
- together/types/audio/transcription_create_response.py +111 -0
- together/types/audio/translation_create_params.py +40 -0
- together/types/audio/translation_create_response.py +70 -0
- together/types/audio/voice_list_response.py +23 -0
- together/types/audio_speech_stream_chunk.py +16 -0
- together/types/autoscaling.py +13 -0
- together/types/autoscaling_param.py +15 -0
- together/types/batch_create_params.py +24 -0
- together/types/batch_create_response.py +14 -0
- together/types/batch_job.py +45 -0
- together/types/batch_list_response.py +10 -0
- together/types/chat/__init__.py +18 -0
- together/types/chat/chat_completion.py +60 -0
- together/types/chat/chat_completion_chunk.py +61 -0
- together/types/chat/chat_completion_structured_message_image_url_param.py +18 -0
- together/types/chat/chat_completion_structured_message_text_param.py +13 -0
- together/types/chat/chat_completion_structured_message_video_url_param.py +18 -0
- together/types/chat/chat_completion_usage.py +13 -0
- together/types/chat/chat_completion_warning.py +9 -0
- together/types/chat/completion_create_params.py +329 -0
- together/types/code_interpreter/__init__.py +5 -0
- together/types/code_interpreter/session_list_response.py +31 -0
- together/types/code_interpreter_execute_params.py +45 -0
- together/types/completion.py +42 -0
- together/types/completion_chunk.py +66 -0
- together/types/completion_create_params.py +138 -0
- together/types/dedicated_endpoint.py +44 -0
- together/types/embedding.py +24 -0
- together/types/embedding_create_params.py +31 -0
- together/types/endpoint_create_params.py +43 -0
- together/types/endpoint_list_avzones_response.py +11 -0
- together/types/endpoint_list_params.py +18 -0
- together/types/endpoint_list_response.py +41 -0
- together/types/endpoint_update_params.py +27 -0
- together/types/eval_create_params.py +263 -0
- together/types/eval_create_response.py +16 -0
- together/types/eval_list_params.py +21 -0
- together/types/eval_list_response.py +10 -0
- together/types/eval_status_response.py +100 -0
- together/types/evaluation_job.py +139 -0
- together/types/execute_response.py +108 -0
- together/types/file_delete_response.py +13 -0
- together/types/file_list.py +12 -0
- together/types/file_purpose.py +9 -0
- together/types/file_response.py +31 -0
- together/types/file_type.py +7 -0
- together/types/fine_tuning_cancel_response.py +194 -0
- together/types/fine_tuning_content_params.py +24 -0
- together/types/fine_tuning_delete_params.py +11 -0
- together/types/fine_tuning_delete_response.py +12 -0
- together/types/fine_tuning_list_checkpoints_response.py +21 -0
- together/types/fine_tuning_list_events_response.py +12 -0
- together/types/fine_tuning_list_response.py +199 -0
- together/types/finetune_event.py +41 -0
- together/types/finetune_event_type.py +33 -0
- together/types/finetune_response.py +177 -0
- together/types/hardware_list_params.py +16 -0
- together/types/hardware_list_response.py +58 -0
- together/types/image_data_b64.py +15 -0
- together/types/image_data_url.py +15 -0
- together/types/image_file.py +23 -0
- together/types/image_generate_params.py +85 -0
- together/types/job_list_response.py +47 -0
- together/types/job_retrieve_response.py +43 -0
- together/types/log_probs.py +18 -0
- together/types/model_list_response.py +10 -0
- together/types/model_object.py +42 -0
- together/types/model_upload_params.py +36 -0
- together/types/model_upload_response.py +23 -0
- together/types/rerank_create_params.py +36 -0
- together/types/rerank_create_response.py +36 -0
- together/types/tool_choice.py +23 -0
- together/types/tool_choice_param.py +23 -0
- together/types/tools_param.py +23 -0
- together/types/training_method_dpo.py +22 -0
- together/types/training_method_sft.py +18 -0
- together/types/video_create_params.py +86 -0
- together/types/video_job.py +57 -0
- together-2.0.0a8.dist-info/METADATA +680 -0
- together-2.0.0a8.dist-info/RECORD +164 -0
- {together-1.2.11.dist-info → together-2.0.0a8.dist-info}/WHEEL +1 -1
- together-2.0.0a8.dist-info/entry_points.txt +2 -0
- {together-1.2.11.dist-info → together-2.0.0a8.dist-info/licenses}/LICENSE +1 -1
- together/abstract/api_requestor.py +0 -723
- together/cli/api/chat.py +0 -276
- together/cli/api/completions.py +0 -119
- together/cli/api/finetune.py +0 -272
- together/cli/api/images.py +0 -82
- together/cli/api/models.py +0 -42
- together/client.py +0 -157
- together/constants.py +0 -31
- together/error.py +0 -191
- together/filemanager.py +0 -388
- together/legacy/__init__.py +0 -0
- together/legacy/base.py +0 -27
- together/legacy/complete.py +0 -93
- together/legacy/embeddings.py +0 -27
- together/legacy/files.py +0 -146
- together/legacy/finetune.py +0 -177
- together/legacy/images.py +0 -27
- together/legacy/models.py +0 -44
- together/resources/finetune.py +0 -489
- together/together_response.py +0 -50
- together/types/abstract.py +0 -26
- together/types/chat_completions.py +0 -171
- together/types/common.py +0 -65
- together/types/completions.py +0 -104
- together/types/embeddings.py +0 -35
- together/types/error.py +0 -16
- together/types/files.py +0 -89
- together/types/finetune.py +0 -265
- together/types/images.py +0 -42
- together/types/models.py +0 -44
- together/types/rerank.py +0 -43
- together/utils/api_helpers.py +0 -84
- together/utils/files.py +0 -204
- together/version.py +0 -6
- together-1.2.11.dist-info/METADATA +0 -408
- together-1.2.11.dist-info/RECORD +0 -58
- together-1.2.11.dist-info/entry_points.txt +0 -3
- /together/{abstract → lib/cli}/__init__.py +0 -0
- /together/{cli → lib/cli/api}/__init__.py +0 -0
- /together/{cli/api/__init__.py → py.typed} +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Literal
|
|
4
|
+
from gettext import gettext as _
|
|
5
|
+
from typing_extensions import override
|
|
6
|
+
|
|
7
|
+
import click
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AutoIntParamType(click.ParamType):
|
|
11
|
+
name = "integer_or_max"
|
|
12
|
+
_number_class = int
|
|
13
|
+
|
|
14
|
+
@override
|
|
15
|
+
def convert(
|
|
16
|
+
self, value: str, param: click.Parameter | None, ctx: click.Context | None
|
|
17
|
+
) -> int | Literal["max"] | None:
|
|
18
|
+
if value == "max":
|
|
19
|
+
return "max"
|
|
20
|
+
try:
|
|
21
|
+
return int(value)
|
|
22
|
+
except ValueError:
|
|
23
|
+
self.fail(
|
|
24
|
+
_("{value!r} is not a valid {number_type}.").format(value=value, number_type=self.name),
|
|
25
|
+
param,
|
|
26
|
+
ctx,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class BooleanWithAutoParamType(click.ParamType):
|
|
31
|
+
name = "boolean_or_auto"
|
|
32
|
+
|
|
33
|
+
@override
|
|
34
|
+
def convert(
|
|
35
|
+
self, value: str, param: click.Parameter | None, ctx: click.Context | None
|
|
36
|
+
) -> bool | Literal["auto"] | None:
|
|
37
|
+
if value == "auto":
|
|
38
|
+
return "auto"
|
|
39
|
+
try:
|
|
40
|
+
return bool(value)
|
|
41
|
+
except ValueError:
|
|
42
|
+
self.fail(
|
|
43
|
+
_("{value!r} is not a valid {type}.").format(value=value, type=self.name),
|
|
44
|
+
param,
|
|
45
|
+
ctx,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
INT_WITH_MAX = AutoIntParamType()
|
|
50
|
+
BOOL_WITH_AUTO = BooleanWithAutoParamType()
|
together/{cli → lib/cli}/cli.py
RENAMED
|
@@ -6,19 +6,19 @@ from typing import Any
|
|
|
6
6
|
import click
|
|
7
7
|
|
|
8
8
|
import together
|
|
9
|
-
from together.
|
|
10
|
-
from together.
|
|
11
|
-
from together.cli.api.
|
|
12
|
-
from together.cli.api.
|
|
13
|
-
from together.cli.api.
|
|
14
|
-
from together.cli.api.
|
|
15
|
-
from together.
|
|
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
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
def print_version(ctx: click.Context,
|
|
18
|
+
def print_version(ctx: click.Context, _params: Any, value: Any) -> None:
|
|
19
19
|
if not value or ctx.resilient_parsing:
|
|
20
20
|
return
|
|
21
|
-
click.echo(f"Version {
|
|
21
|
+
click.echo(f"Version {__version__}")
|
|
22
22
|
ctx.exit()
|
|
23
23
|
|
|
24
24
|
|
|
@@ -30,16 +30,12 @@ def print_version(ctx: click.Context, params: Any, value: Any) -> None:
|
|
|
30
30
|
help="API Key. Defaults to environment variable `TOGETHER_API_KEY`",
|
|
31
31
|
default=os.getenv("TOGETHER_API_KEY"),
|
|
32
32
|
)
|
|
33
|
-
@click.option(
|
|
34
|
-
|
|
35
|
-
)
|
|
36
|
-
@click.option(
|
|
37
|
-
"--timeout", type=int, help=f"Request timeout. Defaults to {TIMEOUT_SECS} seconds"
|
|
38
|
-
)
|
|
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")
|
|
39
35
|
@click.option(
|
|
40
36
|
"--max-retries",
|
|
41
37
|
type=int,
|
|
42
|
-
help=f"Maximum number of HTTP retries.
|
|
38
|
+
help=f"Maximum number of HTTP retries.",
|
|
43
39
|
)
|
|
44
40
|
@click.option(
|
|
45
41
|
"--version",
|
|
@@ -55,23 +51,21 @@ def main(
|
|
|
55
51
|
api_key: str | None,
|
|
56
52
|
base_url: str | None,
|
|
57
53
|
timeout: int | None,
|
|
58
|
-
max_retries: int | None,
|
|
59
54
|
debug: bool | None,
|
|
55
|
+
max_retries: int | None,
|
|
60
56
|
) -> None:
|
|
61
57
|
"""This is a sample CLI tool."""
|
|
62
|
-
|
|
58
|
+
os.environ.setdefault("TOGETHER_LOG", "debug" if debug else "info")
|
|
63
59
|
ctx.obj = together.Together(
|
|
64
|
-
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
|
|
65
61
|
)
|
|
66
62
|
|
|
67
63
|
|
|
68
|
-
main.add_command(chat)
|
|
69
|
-
main.add_command(interactive)
|
|
70
|
-
main.add_command(completions)
|
|
71
|
-
main.add_command(images)
|
|
72
64
|
main.add_command(files)
|
|
73
65
|
main.add_command(fine_tuning)
|
|
74
66
|
main.add_command(models)
|
|
67
|
+
main.add_command(endpoints)
|
|
68
|
+
main.add_command(evals)
|
|
75
69
|
|
|
76
70
|
if __name__ == "__main__":
|
|
77
71
|
main()
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import enum
|
|
2
|
+
|
|
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
|
|
10
|
+
|
|
11
|
+
# API defaults
|
|
12
|
+
# BASE_URL = "https://api.together.xyz/v1"
|
|
13
|
+
|
|
14
|
+
# Download defaults
|
|
15
|
+
DOWNLOAD_BLOCK_SIZE = 10 * 1024 * 1024 # 10 MB
|
|
16
|
+
DISABLE_TQDM = False
|
|
17
|
+
|
|
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
|
|
27
|
+
|
|
28
|
+
# Minimum number of samples required for fine-tuning file
|
|
29
|
+
MIN_SAMPLES = 1
|
|
30
|
+
|
|
31
|
+
# the number of bytes in a gigabyte, used to convert bytes to GB for readable comparison
|
|
32
|
+
NUM_BYTES_IN_GB = 2**30
|
|
33
|
+
|
|
34
|
+
# maximum number of GB sized files we support finetuning for
|
|
35
|
+
MAX_FILE_SIZE_GB = 50.1
|
|
36
|
+
|
|
37
|
+
# expected columns for Parquet files
|
|
38
|
+
PARQUET_EXPECTED_COLUMNS = ["input_ids", "attention_mask", "labels"]
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class DatasetFormat(enum.Enum):
|
|
42
|
+
"""Dataset format enum."""
|
|
43
|
+
|
|
44
|
+
GENERAL = "general"
|
|
45
|
+
CONVERSATION = "conversation"
|
|
46
|
+
INSTRUCTION = "instruction"
|
|
47
|
+
PREFERENCE_OPENAI = "preference_openai"
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
JSONL_REQUIRED_COLUMNS_MAP = {
|
|
51
|
+
DatasetFormat.GENERAL: ["text"],
|
|
52
|
+
DatasetFormat.CONVERSATION: ["messages"],
|
|
53
|
+
DatasetFormat.INSTRUCTION: ["prompt", "completion"],
|
|
54
|
+
DatasetFormat.PREFERENCE_OPENAI: [
|
|
55
|
+
"input",
|
|
56
|
+
"preferred_output",
|
|
57
|
+
"non_preferred_output",
|
|
58
|
+
],
|
|
59
|
+
}
|
|
60
|
+
REQUIRED_COLUMNS_MESSAGE = ["role", "content"]
|
|
61
|
+
POSSIBLE_ROLES_CONVERSATION = ["system", "user", "assistant"]
|