together 1.5.35__py3-none-any.whl → 2.0.0a7__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 -114
- 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/{cli → lib/cli}/api/endpoints.py +66 -84
- together/{cli/api/evaluation.py → lib/cli/api/evals.py} +152 -43
- together/{cli → lib/cli}/api/files.py +20 -17
- together/{cli/api/finetune.py → lib/cli/api/fine_tuning.py} +116 -172
- together/{cli → lib/cli}/api/models.py +34 -27
- together/lib/cli/api/utils.py +50 -0
- together/{cli → lib/cli}/cli.py +16 -26
- together/{constants.py → lib/constants.py} +11 -24
- 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 +397 -0
- together/{utils → lib/utils}/__init__.py +6 -14
- together/{utils → lib/utils}/_log.py +11 -16
- together/{utils → lib/utils}/files.py +90 -288
- together/lib/utils/serializer.py +10 -0
- together/{utils → lib/utils}/tools.py +19 -55
- together/resources/__init__.py +225 -39
- together/resources/audio/__init__.py +72 -48
- together/resources/audio/audio.py +198 -0
- together/resources/audio/speech.py +574 -128
- together/resources/audio/transcriptions.py +247 -261
- together/resources/audio/translations.py +221 -241
- together/resources/audio/voices.py +111 -41
- 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 -263
- 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 +884 -225
- together/resources/embeddings.py +172 -68
- together/resources/endpoints.py +589 -490
- together/resources/evals.py +452 -0
- together/resources/files.py +397 -129
- together/resources/fine_tuning.py +1033 -0
- together/resources/hardware.py +181 -0
- together/resources/images.py +258 -104
- together/resources/jobs.py +214 -0
- together/resources/models.py +223 -193
- together/resources/rerank.py +190 -92
- together/resources/videos.py +286 -214
- together/types/__init__.py +66 -167
- 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_create_response.py +10 -0
- together/types/video_job.py +57 -0
- together-2.0.0a7.dist-info/METADATA +730 -0
- together-2.0.0a7.dist-info/RECORD +165 -0
- {together-1.5.35.dist-info → together-2.0.0a7.dist-info}/WHEEL +1 -1
- together-2.0.0a7.dist-info/entry_points.txt +2 -0
- {together-1.5.35.dist-info → together-2.0.0a7.dist-info}/licenses/LICENSE +1 -1
- together/abstract/api_requestor.py +0 -770
- together/cli/api/chat.py +0 -298
- together/cli/api/completions.py +0 -119
- together/cli/api/images.py +0 -93
- together/cli/api/utils.py +0 -139
- together/client.py +0 -186
- together/error.py +0 -194
- together/filemanager.py +0 -635
- 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/batch.py +0 -165
- together/resources/code_interpreter.py +0 -82
- together/resources/evaluation.py +0 -808
- together/resources/finetune.py +0 -1388
- together/together_response.py +0 -50
- together/types/abstract.py +0 -26
- together/types/audio_speech.py +0 -311
- together/types/batch.py +0 -54
- together/types/chat_completions.py +0 -210
- together/types/code_interpreter.py +0 -57
- together/types/common.py +0 -67
- together/types/completions.py +0 -107
- together/types/embeddings.py +0 -35
- together/types/endpoints.py +0 -123
- together/types/error.py +0 -16
- together/types/evaluation.py +0 -93
- together/types/files.py +0 -93
- together/types/finetune.py +0 -465
- together/types/images.py +0 -42
- together/types/models.py +0 -96
- together/types/rerank.py +0 -43
- together/types/videos.py +0 -69
- together/utils/api_helpers.py +0 -124
- together/version.py +0 -6
- together-1.5.35.dist-info/METADATA +0 -583
- together-1.5.35.dist-info/RECORD +0 -77
- together-1.5.35.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
together/legacy/complete.py
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import warnings
|
|
4
|
-
from typing import Any, AsyncGenerator, Dict, Iterator
|
|
5
|
-
|
|
6
|
-
import together
|
|
7
|
-
from together.legacy.base import API_KEY_WARNING, deprecated
|
|
8
|
-
from together.types import CompletionChunk, CompletionResponse
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class Complete:
|
|
12
|
-
@classmethod
|
|
13
|
-
@deprecated # type: ignore
|
|
14
|
-
def create(
|
|
15
|
-
cls,
|
|
16
|
-
prompt: str,
|
|
17
|
-
**kwargs: Any,
|
|
18
|
-
) -> Dict[str, Any]:
|
|
19
|
-
"""Legacy completion function."""
|
|
20
|
-
|
|
21
|
-
api_key = None
|
|
22
|
-
if together.api_key:
|
|
23
|
-
warnings.warn(API_KEY_WARNING)
|
|
24
|
-
api_key = together.api_key
|
|
25
|
-
|
|
26
|
-
client = together.Together(api_key=api_key)
|
|
27
|
-
|
|
28
|
-
result = client.completions.create(prompt=prompt, stream=False, **kwargs)
|
|
29
|
-
|
|
30
|
-
assert isinstance(result, CompletionResponse)
|
|
31
|
-
|
|
32
|
-
return result.model_dump(exclude_none=True)
|
|
33
|
-
|
|
34
|
-
@classmethod
|
|
35
|
-
@deprecated # type: ignore
|
|
36
|
-
def create_streaming(
|
|
37
|
-
cls,
|
|
38
|
-
prompt: str,
|
|
39
|
-
**kwargs: Any,
|
|
40
|
-
) -> Iterator[Dict[str, Any]]:
|
|
41
|
-
"""Legacy streaming completion function."""
|
|
42
|
-
|
|
43
|
-
api_key = None
|
|
44
|
-
if together.api_key:
|
|
45
|
-
warnings.warn(API_KEY_WARNING)
|
|
46
|
-
api_key = together.api_key
|
|
47
|
-
|
|
48
|
-
client = together.Together(api_key=api_key)
|
|
49
|
-
|
|
50
|
-
return (
|
|
51
|
-
token.model_dump(exclude_none=True) # type: ignore
|
|
52
|
-
for token in client.completions.create(prompt=prompt, stream=True, **kwargs)
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
class Completion:
|
|
57
|
-
@classmethod
|
|
58
|
-
@deprecated # type: ignore
|
|
59
|
-
def create(
|
|
60
|
-
cls,
|
|
61
|
-
prompt: str,
|
|
62
|
-
**kwargs: Any,
|
|
63
|
-
) -> CompletionResponse | Iterator[CompletionChunk]:
|
|
64
|
-
"""Completion function."""
|
|
65
|
-
|
|
66
|
-
api_key = None
|
|
67
|
-
if together.api_key:
|
|
68
|
-
warnings.warn(API_KEY_WARNING)
|
|
69
|
-
api_key = together.api_key
|
|
70
|
-
|
|
71
|
-
client = together.Together(api_key=api_key)
|
|
72
|
-
|
|
73
|
-
return client.completions.create(prompt=prompt, **kwargs)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
class AsyncComplete:
|
|
77
|
-
@classmethod
|
|
78
|
-
@deprecated # type: ignore
|
|
79
|
-
async def create(
|
|
80
|
-
cls,
|
|
81
|
-
prompt: str,
|
|
82
|
-
**kwargs: Any,
|
|
83
|
-
) -> CompletionResponse | AsyncGenerator[CompletionChunk, None]:
|
|
84
|
-
"""Async completion function."""
|
|
85
|
-
|
|
86
|
-
api_key = None
|
|
87
|
-
if together.api_key:
|
|
88
|
-
warnings.warn(API_KEY_WARNING)
|
|
89
|
-
api_key = together.api_key
|
|
90
|
-
|
|
91
|
-
client = together.AsyncTogether(api_key=api_key)
|
|
92
|
-
|
|
93
|
-
return await client.completions.create(prompt=prompt, **kwargs)
|
together/legacy/embeddings.py
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
from typing import Any, Dict
|
|
3
|
-
|
|
4
|
-
import together
|
|
5
|
-
from together.legacy.base import API_KEY_WARNING, deprecated
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Embeddings:
|
|
9
|
-
@classmethod
|
|
10
|
-
@deprecated # type: ignore
|
|
11
|
-
def create(
|
|
12
|
-
cls,
|
|
13
|
-
input: str,
|
|
14
|
-
**kwargs: Any,
|
|
15
|
-
) -> Dict[str, Any]:
|
|
16
|
-
"""Legacy embeddings function."""
|
|
17
|
-
|
|
18
|
-
api_key = None
|
|
19
|
-
if together.api_key:
|
|
20
|
-
warnings.warn(API_KEY_WARNING)
|
|
21
|
-
api_key = together.api_key
|
|
22
|
-
|
|
23
|
-
client = together.Together(api_key=api_key)
|
|
24
|
-
|
|
25
|
-
return client.embeddings.create(input=input, **kwargs).model_dump(
|
|
26
|
-
exclude_none=True
|
|
27
|
-
)
|
together/legacy/files.py
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import json
|
|
4
|
-
import warnings
|
|
5
|
-
from typing import Any, Dict, List
|
|
6
|
-
|
|
7
|
-
import together
|
|
8
|
-
from together.legacy.base import API_KEY_WARNING, deprecated
|
|
9
|
-
from together.utils.files import check_file as check_json
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class Files:
|
|
13
|
-
@classmethod
|
|
14
|
-
@deprecated # type: ignore
|
|
15
|
-
def list(
|
|
16
|
-
cls,
|
|
17
|
-
) -> Dict[str, Any]:
|
|
18
|
-
"""Legacy file list function."""
|
|
19
|
-
|
|
20
|
-
api_key = None
|
|
21
|
-
if together.api_key:
|
|
22
|
-
warnings.warn(API_KEY_WARNING)
|
|
23
|
-
api_key = together.api_key
|
|
24
|
-
|
|
25
|
-
client = together.Together(api_key=api_key)
|
|
26
|
-
|
|
27
|
-
return client.files.list().model_dump(exclude_none=True)
|
|
28
|
-
|
|
29
|
-
@classmethod
|
|
30
|
-
def check(self, file: str) -> Dict[str, object]:
|
|
31
|
-
return check_json(file)
|
|
32
|
-
|
|
33
|
-
@classmethod
|
|
34
|
-
@deprecated # type: ignore
|
|
35
|
-
def upload(
|
|
36
|
-
cls,
|
|
37
|
-
file: str,
|
|
38
|
-
check: bool = True,
|
|
39
|
-
) -> Dict[str, Any]:
|
|
40
|
-
"""Legacy file upload function."""
|
|
41
|
-
|
|
42
|
-
api_key = None
|
|
43
|
-
if together.api_key:
|
|
44
|
-
warnings.warn(API_KEY_WARNING)
|
|
45
|
-
api_key = together.api_key
|
|
46
|
-
|
|
47
|
-
if check:
|
|
48
|
-
report_dict = check_json(file)
|
|
49
|
-
if not report_dict["is_check_passed"]:
|
|
50
|
-
raise together.error.FileTypeError(
|
|
51
|
-
f"Invalid file supplied. Failed to upload.\nReport:\n {report_dict}"
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
client = together.Together(api_key=api_key)
|
|
55
|
-
|
|
56
|
-
# disabling the check, because it was run previously
|
|
57
|
-
response = client.files.upload(file=file, check=False).model_dump(
|
|
58
|
-
exclude_none=True
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
if check:
|
|
62
|
-
response["report_dict"] = report_dict
|
|
63
|
-
|
|
64
|
-
return response
|
|
65
|
-
|
|
66
|
-
@classmethod
|
|
67
|
-
@deprecated # type: ignore
|
|
68
|
-
def delete(
|
|
69
|
-
cls,
|
|
70
|
-
file_id: str,
|
|
71
|
-
) -> Dict[str, Any]:
|
|
72
|
-
"""Legacy file delete function."""
|
|
73
|
-
|
|
74
|
-
api_key = None
|
|
75
|
-
if together.api_key:
|
|
76
|
-
warnings.warn(API_KEY_WARNING)
|
|
77
|
-
api_key = together.api_key
|
|
78
|
-
|
|
79
|
-
client = together.Together(api_key=api_key)
|
|
80
|
-
|
|
81
|
-
return client.files.delete(id=file_id).model_dump(exclude_none=True)
|
|
82
|
-
|
|
83
|
-
@classmethod
|
|
84
|
-
@deprecated # type: ignore
|
|
85
|
-
def retrieve(
|
|
86
|
-
cls,
|
|
87
|
-
file_id: str,
|
|
88
|
-
) -> Dict[str, Any]:
|
|
89
|
-
"""Legacy file retrieve function."""
|
|
90
|
-
|
|
91
|
-
api_key = None
|
|
92
|
-
if together.api_key:
|
|
93
|
-
warnings.warn(API_KEY_WARNING)
|
|
94
|
-
api_key = together.api_key
|
|
95
|
-
|
|
96
|
-
client = together.Together(api_key=api_key)
|
|
97
|
-
|
|
98
|
-
return client.files.retrieve(id=file_id).model_dump(exclude_none=True)
|
|
99
|
-
|
|
100
|
-
@classmethod
|
|
101
|
-
@deprecated # type: ignore
|
|
102
|
-
def retrieve_content(
|
|
103
|
-
cls,
|
|
104
|
-
file_id: str,
|
|
105
|
-
output: str | None = None,
|
|
106
|
-
) -> Dict[str, Any]:
|
|
107
|
-
"""Legacy file retrieve content function."""
|
|
108
|
-
|
|
109
|
-
api_key = None
|
|
110
|
-
if together.api_key:
|
|
111
|
-
warnings.warn(API_KEY_WARNING)
|
|
112
|
-
api_key = together.api_key
|
|
113
|
-
|
|
114
|
-
client = together.Together(api_key=api_key)
|
|
115
|
-
|
|
116
|
-
return client.files.retrieve_content(id=file_id, output=output).dict(
|
|
117
|
-
exclude_none=True
|
|
118
|
-
)
|
|
119
|
-
|
|
120
|
-
@classmethod
|
|
121
|
-
@deprecated # type: ignore
|
|
122
|
-
def save_jsonl(
|
|
123
|
-
self, data: Dict[str, str], output_path: str, append: bool = False
|
|
124
|
-
) -> None:
|
|
125
|
-
"""
|
|
126
|
-
Write list of objects to a JSON lines file.
|
|
127
|
-
"""
|
|
128
|
-
mode = "a+" if append else "w"
|
|
129
|
-
with open(output_path, mode, encoding="utf-8") as f:
|
|
130
|
-
for line in data:
|
|
131
|
-
json_record = json.dumps(line, ensure_ascii=False)
|
|
132
|
-
f.write(json_record + "\n")
|
|
133
|
-
print("Wrote {} records to {}".format(len(data), output_path))
|
|
134
|
-
|
|
135
|
-
@classmethod
|
|
136
|
-
@deprecated # type: ignore
|
|
137
|
-
def load_jsonl(self, input_path: str) -> List[Dict[str, str]]:
|
|
138
|
-
"""
|
|
139
|
-
Read list of objects from a JSON lines file.
|
|
140
|
-
"""
|
|
141
|
-
data = []
|
|
142
|
-
with open(input_path, "r", encoding="utf-8") as f:
|
|
143
|
-
for line in f:
|
|
144
|
-
data.append(json.loads(line.rstrip("\n|\r")))
|
|
145
|
-
print("Loaded {} records from {}".format(len(data), input_path))
|
|
146
|
-
return data
|
together/legacy/finetune.py
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import warnings
|
|
4
|
-
from typing import Any, Dict, List, Literal
|
|
5
|
-
|
|
6
|
-
import together
|
|
7
|
-
from together.legacy.base import API_KEY_WARNING, deprecated
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class Finetune:
|
|
11
|
-
@classmethod
|
|
12
|
-
@deprecated # type: ignore
|
|
13
|
-
def create(
|
|
14
|
-
cls,
|
|
15
|
-
training_file: str, # training file_id
|
|
16
|
-
model: str,
|
|
17
|
-
n_epochs: int = 1,
|
|
18
|
-
n_checkpoints: int | None = 1,
|
|
19
|
-
batch_size: int | Literal["max"] = "max",
|
|
20
|
-
learning_rate: float = 0.00001,
|
|
21
|
-
suffix: (
|
|
22
|
-
str | None
|
|
23
|
-
) = None, # resulting finetuned model name will include the suffix
|
|
24
|
-
estimate_price: bool = False,
|
|
25
|
-
wandb_api_key: str | None = None,
|
|
26
|
-
confirm_inputs: bool = False,
|
|
27
|
-
):
|
|
28
|
-
api_key = None
|
|
29
|
-
if together.api_key:
|
|
30
|
-
warnings.warn(API_KEY_WARNING)
|
|
31
|
-
api_key = together.api_key
|
|
32
|
-
|
|
33
|
-
if estimate_price:
|
|
34
|
-
raise ValueError("Price estimation is not supported in version >= 1.0.1")
|
|
35
|
-
|
|
36
|
-
if confirm_inputs:
|
|
37
|
-
raise ValueError("Input confirmation is not supported in version >= 1.0.1")
|
|
38
|
-
|
|
39
|
-
client = together.Together(api_key=api_key)
|
|
40
|
-
|
|
41
|
-
return client.fine_tuning.create(
|
|
42
|
-
training_file=training_file,
|
|
43
|
-
model=model,
|
|
44
|
-
n_epochs=n_epochs,
|
|
45
|
-
n_checkpoints=n_checkpoints,
|
|
46
|
-
batch_size=batch_size,
|
|
47
|
-
learning_rate=learning_rate,
|
|
48
|
-
suffix=suffix,
|
|
49
|
-
wandb_api_key=wandb_api_key,
|
|
50
|
-
).model_dump(exclude_none=True)
|
|
51
|
-
|
|
52
|
-
@classmethod
|
|
53
|
-
@deprecated # type: ignore
|
|
54
|
-
def list(
|
|
55
|
-
cls,
|
|
56
|
-
) -> Dict[str, Any]:
|
|
57
|
-
"""Legacy finetuning list function."""
|
|
58
|
-
|
|
59
|
-
api_key = None
|
|
60
|
-
if together.api_key:
|
|
61
|
-
warnings.warn(API_KEY_WARNING)
|
|
62
|
-
api_key = together.api_key
|
|
63
|
-
|
|
64
|
-
client = together.Together(api_key=api_key)
|
|
65
|
-
|
|
66
|
-
return client.fine_tuning.list().model_dump(exclude_none=True)
|
|
67
|
-
|
|
68
|
-
@classmethod
|
|
69
|
-
@deprecated # type: ignore
|
|
70
|
-
def retrieve(
|
|
71
|
-
cls,
|
|
72
|
-
fine_tune_id: str,
|
|
73
|
-
) -> Dict[str, Any]:
|
|
74
|
-
"""Legacy finetuning retrieve function."""
|
|
75
|
-
|
|
76
|
-
api_key = None
|
|
77
|
-
if together.api_key:
|
|
78
|
-
warnings.warn(API_KEY_WARNING)
|
|
79
|
-
api_key = together.api_key
|
|
80
|
-
|
|
81
|
-
client = together.Together(api_key=api_key)
|
|
82
|
-
|
|
83
|
-
return client.fine_tuning.retrieve(id=fine_tune_id).model_dump(
|
|
84
|
-
exclude_none=True
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
@classmethod
|
|
88
|
-
@deprecated # type: ignore
|
|
89
|
-
def cancel(
|
|
90
|
-
cls,
|
|
91
|
-
fine_tune_id: str,
|
|
92
|
-
) -> Dict[str, Any]:
|
|
93
|
-
"""Legacy finetuning cancel function."""
|
|
94
|
-
|
|
95
|
-
api_key = None
|
|
96
|
-
if together.api_key:
|
|
97
|
-
warnings.warn(API_KEY_WARNING)
|
|
98
|
-
api_key = together.api_key
|
|
99
|
-
|
|
100
|
-
client = together.Together(api_key=api_key)
|
|
101
|
-
|
|
102
|
-
return client.fine_tuning.cancel(id=fine_tune_id).model_dump(exclude_none=True)
|
|
103
|
-
|
|
104
|
-
@classmethod
|
|
105
|
-
@deprecated # type: ignore
|
|
106
|
-
def list_events(
|
|
107
|
-
cls,
|
|
108
|
-
fine_tune_id: str,
|
|
109
|
-
) -> Dict[str, Any]:
|
|
110
|
-
"""Legacy finetuning list events function."""
|
|
111
|
-
|
|
112
|
-
api_key = None
|
|
113
|
-
if together.api_key:
|
|
114
|
-
warnings.warn(API_KEY_WARNING)
|
|
115
|
-
api_key = together.api_key
|
|
116
|
-
|
|
117
|
-
client = together.Together(api_key=api_key)
|
|
118
|
-
|
|
119
|
-
return client.fine_tuning.list_events(id=fine_tune_id).model_dump(
|
|
120
|
-
exclude_none=True
|
|
121
|
-
)
|
|
122
|
-
|
|
123
|
-
@classmethod
|
|
124
|
-
@deprecated # type: ignore
|
|
125
|
-
def get_checkpoints(
|
|
126
|
-
cls,
|
|
127
|
-
fine_tune_id: str,
|
|
128
|
-
) -> List[Any]:
|
|
129
|
-
"""Legacy finetuning get checkpoints function."""
|
|
130
|
-
|
|
131
|
-
finetune_events = list(cls.retrieve(fine_tune_id=fine_tune_id)["events"])
|
|
132
|
-
|
|
133
|
-
saved_events = [i for i in finetune_events if i["type"] in ["CHECKPOINT_SAVE"]]
|
|
134
|
-
|
|
135
|
-
return saved_events
|
|
136
|
-
|
|
137
|
-
@classmethod
|
|
138
|
-
@deprecated # type: ignore
|
|
139
|
-
def get_job_status(cls, fine_tune_id: str) -> str:
|
|
140
|
-
"""Legacy finetuning get job status function."""
|
|
141
|
-
return str(cls.retrieve(fine_tune_id=fine_tune_id)["status"])
|
|
142
|
-
|
|
143
|
-
@classmethod
|
|
144
|
-
@deprecated # type: ignore
|
|
145
|
-
def is_final_model_available(cls, fine_tune_id: str) -> bool:
|
|
146
|
-
"""Legacy finetuning is final model available function."""
|
|
147
|
-
|
|
148
|
-
finetune_events = list(cls.retrieve(fine_tune_id=fine_tune_id)["events"])
|
|
149
|
-
|
|
150
|
-
for i in finetune_events:
|
|
151
|
-
if i["type"] in ["JOB_COMPLETE", "JOB_ERROR"]:
|
|
152
|
-
if i["checkpoint_path"] != "":
|
|
153
|
-
return False
|
|
154
|
-
else:
|
|
155
|
-
return True
|
|
156
|
-
return False
|
|
157
|
-
|
|
158
|
-
@classmethod
|
|
159
|
-
@deprecated # type: ignore
|
|
160
|
-
def download(
|
|
161
|
-
cls,
|
|
162
|
-
fine_tune_id: str,
|
|
163
|
-
output: str | None = None,
|
|
164
|
-
step: int | None = None,
|
|
165
|
-
) -> Dict[str, Any]:
|
|
166
|
-
"""Legacy finetuning download function."""
|
|
167
|
-
|
|
168
|
-
api_key = None
|
|
169
|
-
if together.api_key:
|
|
170
|
-
warnings.warn(API_KEY_WARNING)
|
|
171
|
-
api_key = together.api_key
|
|
172
|
-
|
|
173
|
-
client = together.Together(api_key=api_key)
|
|
174
|
-
|
|
175
|
-
return client.fine_tuning.download(
|
|
176
|
-
id=fine_tune_id, output=output, checkpoint_step=step
|
|
177
|
-
).model_dump(exclude_none=True)
|
together/legacy/images.py
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
from typing import Any, Dict
|
|
3
|
-
|
|
4
|
-
import together
|
|
5
|
-
from together.legacy.base import API_KEY_WARNING, deprecated
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Image:
|
|
9
|
-
@classmethod
|
|
10
|
-
@deprecated # type: ignore
|
|
11
|
-
def create(
|
|
12
|
-
cls,
|
|
13
|
-
prompt: str,
|
|
14
|
-
**kwargs: Any,
|
|
15
|
-
) -> Dict[str, Any]:
|
|
16
|
-
"""Legacy image function."""
|
|
17
|
-
|
|
18
|
-
api_key = None
|
|
19
|
-
if together.api_key:
|
|
20
|
-
warnings.warn(API_KEY_WARNING)
|
|
21
|
-
api_key = together.api_key
|
|
22
|
-
|
|
23
|
-
client = together.Together(api_key=api_key)
|
|
24
|
-
|
|
25
|
-
return client.images.generate(prompt=prompt, **kwargs).model_dump(
|
|
26
|
-
exclude_none=True
|
|
27
|
-
)
|
together/legacy/models.py
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
from typing import Any, Dict, List
|
|
3
|
-
|
|
4
|
-
import together
|
|
5
|
-
from together.legacy.base import API_KEY_WARNING, deprecated
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Models:
|
|
9
|
-
@classmethod
|
|
10
|
-
@deprecated # type: ignore
|
|
11
|
-
def list(
|
|
12
|
-
cls,
|
|
13
|
-
) -> List[Dict[str, Any]]:
|
|
14
|
-
"""Legacy model list function."""
|
|
15
|
-
|
|
16
|
-
api_key = None
|
|
17
|
-
if together.api_key:
|
|
18
|
-
warnings.warn(API_KEY_WARNING)
|
|
19
|
-
api_key = together.api_key
|
|
20
|
-
|
|
21
|
-
client = together.Together(api_key=api_key)
|
|
22
|
-
|
|
23
|
-
return [item.model_dump(exclude_none=True) for item in client.models.list()]
|
|
24
|
-
|
|
25
|
-
@classmethod
|
|
26
|
-
@deprecated # type: ignore
|
|
27
|
-
def info(
|
|
28
|
-
cls,
|
|
29
|
-
model: str,
|
|
30
|
-
) -> Dict[str, Any]:
|
|
31
|
-
"""Legacy model info function."""
|
|
32
|
-
|
|
33
|
-
api_key = None
|
|
34
|
-
if together.api_key:
|
|
35
|
-
warnings.warn(API_KEY_WARNING)
|
|
36
|
-
api_key = together.api_key
|
|
37
|
-
|
|
38
|
-
client = together.Together(api_key=api_key)
|
|
39
|
-
|
|
40
|
-
model_list = client.models.list()
|
|
41
|
-
|
|
42
|
-
for item in model_list:
|
|
43
|
-
if item.id == model:
|
|
44
|
-
return item.model_dump(exclude_none=True)
|
together/resources/batch.py
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import List
|
|
4
|
-
|
|
5
|
-
from together.abstract import api_requestor
|
|
6
|
-
from together.together_response import TogetherResponse
|
|
7
|
-
from together.types import (
|
|
8
|
-
TogetherClient,
|
|
9
|
-
TogetherRequest,
|
|
10
|
-
BatchJob,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class Batches:
|
|
15
|
-
def __init__(self, client: TogetherClient) -> None:
|
|
16
|
-
self._client = client
|
|
17
|
-
|
|
18
|
-
def create_batch(self, file_id: str, endpoint: str) -> BatchJob:
|
|
19
|
-
requestor = api_requestor.APIRequestor(
|
|
20
|
-
client=self._client,
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
parameter_payload = {
|
|
24
|
-
"input_file_id": file_id,
|
|
25
|
-
"endpoint": endpoint,
|
|
26
|
-
"completion_window": "24h",
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
response, _, _ = requestor.request(
|
|
30
|
-
options=TogetherRequest(
|
|
31
|
-
method="POST",
|
|
32
|
-
url=f"batches",
|
|
33
|
-
params=parameter_payload,
|
|
34
|
-
),
|
|
35
|
-
stream=False,
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
assert isinstance(response, TogetherResponse)
|
|
39
|
-
response_body = response.data.get("job", {})
|
|
40
|
-
return BatchJob(**response_body)
|
|
41
|
-
|
|
42
|
-
def get_batch(self, batch_job_id: str) -> BatchJob:
|
|
43
|
-
requestor = api_requestor.APIRequestor(
|
|
44
|
-
client=self._client,
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
response, _, _ = requestor.request(
|
|
48
|
-
options=TogetherRequest(
|
|
49
|
-
method="GET",
|
|
50
|
-
url=f"batches/{batch_job_id}",
|
|
51
|
-
),
|
|
52
|
-
stream=False,
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
assert isinstance(response, TogetherResponse)
|
|
56
|
-
return BatchJob(**response.data)
|
|
57
|
-
|
|
58
|
-
def list_batches(self) -> List[BatchJob]:
|
|
59
|
-
requestor = api_requestor.APIRequestor(
|
|
60
|
-
client=self._client,
|
|
61
|
-
)
|
|
62
|
-
|
|
63
|
-
response, _, _ = requestor.request(
|
|
64
|
-
options=TogetherRequest(
|
|
65
|
-
method="GET",
|
|
66
|
-
url="batches",
|
|
67
|
-
),
|
|
68
|
-
stream=False,
|
|
69
|
-
)
|
|
70
|
-
|
|
71
|
-
assert isinstance(response, TogetherResponse)
|
|
72
|
-
jobs = response.data or []
|
|
73
|
-
return [BatchJob(**job) for job in jobs]
|
|
74
|
-
|
|
75
|
-
def cancel_batch(self, batch_job_id: str) -> BatchJob:
|
|
76
|
-
requestor = api_requestor.APIRequestor(
|
|
77
|
-
client=self._client,
|
|
78
|
-
)
|
|
79
|
-
|
|
80
|
-
response, _, _ = requestor.request(
|
|
81
|
-
options=TogetherRequest(
|
|
82
|
-
method="POST",
|
|
83
|
-
url=f"batches/{batch_job_id}/cancel",
|
|
84
|
-
),
|
|
85
|
-
stream=False,
|
|
86
|
-
)
|
|
87
|
-
|
|
88
|
-
return BatchJob(**response.data)
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
class AsyncBatches:
|
|
92
|
-
def __init__(self, client: TogetherClient) -> None:
|
|
93
|
-
self._client = client
|
|
94
|
-
|
|
95
|
-
async def create_batch(self, file_id: str, endpoint: str) -> BatchJob:
|
|
96
|
-
requestor = api_requestor.APIRequestor(
|
|
97
|
-
client=self._client,
|
|
98
|
-
)
|
|
99
|
-
|
|
100
|
-
parameter_payload = {
|
|
101
|
-
"input_file_id": file_id,
|
|
102
|
-
"endpoint": endpoint,
|
|
103
|
-
"completion_window": "24h",
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
response, _, _ = await requestor.arequest(
|
|
107
|
-
options=TogetherRequest(
|
|
108
|
-
method="POST",
|
|
109
|
-
url=f"batches",
|
|
110
|
-
params=parameter_payload,
|
|
111
|
-
),
|
|
112
|
-
stream=False,
|
|
113
|
-
)
|
|
114
|
-
|
|
115
|
-
assert isinstance(response, TogetherResponse)
|
|
116
|
-
response_body = response.data.get("job", {})
|
|
117
|
-
return BatchJob(**response_body)
|
|
118
|
-
|
|
119
|
-
async def get_batch(self, batch_job_id: str) -> BatchJob:
|
|
120
|
-
requestor = api_requestor.APIRequestor(
|
|
121
|
-
client=self._client,
|
|
122
|
-
)
|
|
123
|
-
|
|
124
|
-
response, _, _ = await requestor.arequest(
|
|
125
|
-
options=TogetherRequest(
|
|
126
|
-
method="GET",
|
|
127
|
-
url=f"batches/{batch_job_id}",
|
|
128
|
-
),
|
|
129
|
-
stream=False,
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
assert isinstance(response, TogetherResponse)
|
|
133
|
-
return BatchJob(**response.data)
|
|
134
|
-
|
|
135
|
-
async def list_batches(self) -> List[BatchJob]:
|
|
136
|
-
requestor = api_requestor.APIRequestor(
|
|
137
|
-
client=self._client,
|
|
138
|
-
)
|
|
139
|
-
|
|
140
|
-
response, _, _ = await requestor.arequest(
|
|
141
|
-
options=TogetherRequest(
|
|
142
|
-
method="GET",
|
|
143
|
-
url="batches",
|
|
144
|
-
),
|
|
145
|
-
stream=False,
|
|
146
|
-
)
|
|
147
|
-
|
|
148
|
-
assert isinstance(response, TogetherResponse)
|
|
149
|
-
jobs = response.data or []
|
|
150
|
-
return [BatchJob(**job) for job in jobs]
|
|
151
|
-
|
|
152
|
-
async def cancel_batch(self, batch_job_id: str) -> BatchJob:
|
|
153
|
-
requestor = api_requestor.APIRequestor(
|
|
154
|
-
client=self._client,
|
|
155
|
-
)
|
|
156
|
-
|
|
157
|
-
response, _, _ = await requestor.arequest(
|
|
158
|
-
options=TogetherRequest(
|
|
159
|
-
method="POST",
|
|
160
|
-
url=f"batches/{batch_job_id}/cancel",
|
|
161
|
-
),
|
|
162
|
-
stream=False,
|
|
163
|
-
)
|
|
164
|
-
|
|
165
|
-
return BatchJob(**response.data)
|