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
@@ -0,0 +1,47 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["JobListResponse", "Data", "DataArgs", "DataStatusUpdate"]
12
+
13
+
14
+ class DataArgs(BaseModel):
15
+ description: Optional[str] = None
16
+
17
+ x_model_name: Optional[str] = FieldInfo(alias="modelName", default=None)
18
+
19
+ x_model_source: Optional[str] = FieldInfo(alias="modelSource", default=None)
20
+
21
+
22
+ class DataStatusUpdate(BaseModel):
23
+ message: str
24
+
25
+ status: str
26
+
27
+ timestamp: datetime
28
+
29
+
30
+ class Data(BaseModel):
31
+ args: DataArgs
32
+
33
+ created_at: datetime
34
+
35
+ job_id: str
36
+
37
+ status: Literal["Queued", "Running", "Complete", "Failed"]
38
+
39
+ status_updates: List[DataStatusUpdate]
40
+
41
+ type: str
42
+
43
+ updated_at: datetime
44
+
45
+
46
+ class JobListResponse(BaseModel):
47
+ data: List[Data]
@@ -0,0 +1,43 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from .._models import BaseModel
10
+
11
+ __all__ = ["JobRetrieveResponse", "Args", "StatusUpdate"]
12
+
13
+
14
+ class Args(BaseModel):
15
+ description: Optional[str] = None
16
+
17
+ x_model_name: Optional[str] = FieldInfo(alias="modelName", default=None)
18
+
19
+ x_model_source: Optional[str] = FieldInfo(alias="modelSource", default=None)
20
+
21
+
22
+ class StatusUpdate(BaseModel):
23
+ message: str
24
+
25
+ status: str
26
+
27
+ timestamp: datetime
28
+
29
+
30
+ class JobRetrieveResponse(BaseModel):
31
+ args: Args
32
+
33
+ created_at: datetime
34
+
35
+ job_id: str
36
+
37
+ status: Literal["Queued", "Running", "Complete", "Failed"]
38
+
39
+ status_updates: List[StatusUpdate]
40
+
41
+ type: str
42
+
43
+ updated_at: datetime
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from .._models import BaseModel
6
+
7
+ __all__ = ["LogProbs"]
8
+
9
+
10
+ class LogProbs(BaseModel):
11
+ token_ids: Optional[List[float]] = None
12
+ """List of token IDs corresponding to the logprobs"""
13
+
14
+ token_logprobs: Optional[List[float]] = None
15
+ """List of token log probabilities"""
16
+
17
+ tokens: Optional[List[str]] = None
18
+ """List of token strings"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+ from typing_extensions import TypeAlias
5
+
6
+ from .model_object import ModelObject
7
+
8
+ __all__ = ["ModelListResponse"]
9
+
10
+ ModelListResponse: TypeAlias = List[ModelObject]
@@ -0,0 +1,42 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["ModelObject", "Pricing"]
9
+
10
+
11
+ class Pricing(BaseModel):
12
+ base: float
13
+
14
+ finetune: float
15
+
16
+ hourly: float
17
+
18
+ input: float
19
+
20
+ output: float
21
+
22
+
23
+ class ModelObject(BaseModel):
24
+ id: str
25
+
26
+ created: int
27
+
28
+ object: str
29
+
30
+ type: Literal["chat", "language", "code", "image", "embedding", "moderation", "rerank"]
31
+
32
+ context_length: Optional[int] = None
33
+
34
+ display_name: Optional[str] = None
35
+
36
+ license: Optional[str] = None
37
+
38
+ link: Optional[str] = None
39
+
40
+ organization: Optional[str] = None
41
+
42
+ pricing: Optional[Pricing] = None
@@ -0,0 +1,36 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, TypedDict
6
+
7
+ __all__ = ["ModelUploadParams"]
8
+
9
+
10
+ class ModelUploadParams(TypedDict, total=False):
11
+ model_name: Required[str]
12
+ """The name to give to your uploaded model"""
13
+
14
+ model_source: Required[str]
15
+ """The source location of the model (Hugging Face repo or S3 path)"""
16
+
17
+ base_model: str
18
+ """
19
+ The base model to use for an adapter if setting it to run against a serverless
20
+ pool. Only used for model_type `adapter`.
21
+ """
22
+
23
+ description: str
24
+ """A description of your model"""
25
+
26
+ hf_token: str
27
+ """Hugging Face token (if uploading from Hugging Face)"""
28
+
29
+ lora_model: str
30
+ """
31
+ The lora pool to use for an adapter if setting it to run against, say, a
32
+ dedicated pool. Only used for model_type `adapter`.
33
+ """
34
+
35
+ model_type: Literal["model", "adapter"]
36
+ """Whether the model is a full model or an adapter"""
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from pydantic import Field as FieldInfo
4
+
5
+ from .._models import BaseModel
6
+
7
+ __all__ = ["ModelUploadResponse", "Data"]
8
+
9
+
10
+ class Data(BaseModel):
11
+ job_id: str
12
+
13
+ x_model_id: str = FieldInfo(alias="model_id")
14
+
15
+ x_model_name: str = FieldInfo(alias="model_name")
16
+
17
+ x_model_source: str = FieldInfo(alias="model_source")
18
+
19
+
20
+ class ModelUploadResponse(BaseModel):
21
+ data: Data
22
+
23
+ message: str
@@ -0,0 +1,36 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, Union, Iterable
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ from .._types import SequenceNotStr
9
+
10
+ __all__ = ["RerankCreateParams"]
11
+
12
+
13
+ class RerankCreateParams(TypedDict, total=False):
14
+ documents: Required[Union[Iterable[Dict[str, object]], SequenceNotStr[str]]]
15
+ """List of documents, which can be either strings or objects."""
16
+
17
+ model: Required[Union[Literal["Salesforce/Llama-Rank-v1"], str]]
18
+ """The model to be used for the rerank request.
19
+
20
+ [See all of Together AI's rerank models](https://docs.together.ai/docs/serverless-models#rerank-models)
21
+ """
22
+
23
+ query: Required[str]
24
+ """The search query to be used for ranking."""
25
+
26
+ rank_fields: SequenceNotStr[str]
27
+ """List of keys in the JSON Object document to rank by.
28
+
29
+ Defaults to use all supplied keys for ranking.
30
+ """
31
+
32
+ return_documents: bool
33
+ """Whether to return supplied documents with the response."""
34
+
35
+ top_n: int
36
+ """The number of top results to return."""
@@ -0,0 +1,36 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .chat.chat_completion_usage import ChatCompletionUsage
8
+
9
+ __all__ = ["RerankCreateResponse", "Result", "ResultDocument"]
10
+
11
+
12
+ class ResultDocument(BaseModel):
13
+ text: Optional[str] = None
14
+
15
+
16
+ class Result(BaseModel):
17
+ document: ResultDocument
18
+
19
+ index: int
20
+
21
+ relevance_score: float
22
+
23
+
24
+ class RerankCreateResponse(BaseModel):
25
+ model: str
26
+ """The model to be used for the rerank request."""
27
+
28
+ object: Literal["rerank"]
29
+ """Object type"""
30
+
31
+ results: List[Result]
32
+
33
+ id: Optional[str] = None
34
+ """Request ID"""
35
+
36
+ usage: Optional[ChatCompletionUsage] = None
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal
4
+
5
+ from .._models import BaseModel
6
+
7
+ __all__ = ["ToolChoice", "Function"]
8
+
9
+
10
+ class Function(BaseModel):
11
+ arguments: str
12
+
13
+ name: str
14
+
15
+
16
+ class ToolChoice(BaseModel):
17
+ id: str
18
+
19
+ function: Function
20
+
21
+ index: float
22
+
23
+ type: Literal["function"]
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, TypedDict
6
+
7
+ __all__ = ["ToolChoiceParam", "Function"]
8
+
9
+
10
+ class Function(TypedDict, total=False):
11
+ arguments: Required[str]
12
+
13
+ name: Required[str]
14
+
15
+
16
+ class ToolChoiceParam(TypedDict, total=False):
17
+ id: Required[str]
18
+
19
+ function: Required[Function]
20
+
21
+ index: Required[float]
22
+
23
+ type: Required[Literal["function"]]
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict
6
+ from typing_extensions import TypedDict
7
+
8
+ __all__ = ["ToolsParam", "Function"]
9
+
10
+
11
+ class Function(TypedDict, total=False):
12
+ description: str
13
+
14
+ name: str
15
+
16
+ parameters: Dict[str, object]
17
+ """A map of parameter names to their values."""
18
+
19
+
20
+ class ToolsParam(TypedDict, total=False):
21
+ function: Function
22
+
23
+ type: str
@@ -0,0 +1,22 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["TrainingMethodDpo"]
9
+
10
+
11
+ class TrainingMethodDpo(BaseModel):
12
+ method: Literal["dpo"] = "dpo"
13
+
14
+ dpo_beta: Optional[float] = None
15
+
16
+ dpo_normalize_logratios_by_length: Optional[bool] = None
17
+
18
+ dpo_reference_free: Optional[bool] = None
19
+
20
+ rpo_alpha: Optional[float] = None
21
+
22
+ simpo_gamma: Optional[float] = None
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Union
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["TrainingMethodSft"]
9
+
10
+
11
+ class TrainingMethodSft(BaseModel):
12
+ method: Literal["sft"] = "sft"
13
+
14
+ train_on_inputs: Union[bool, Literal["auto"]]
15
+ """
16
+ Whether to mask the user messages in conversational data or prompts in
17
+ instruction data.
18
+ """
@@ -0,0 +1,86 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union, Iterable
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ from .._types import SequenceNotStr
9
+
10
+ __all__ = ["VideoCreateParams", "FrameImage"]
11
+
12
+
13
+ class VideoCreateParams(TypedDict, total=False):
14
+ model: Required[str]
15
+ """The model to be used for the video creation request."""
16
+
17
+ fps: int
18
+ """Frames per second. Defaults to 24."""
19
+
20
+ frame_images: Iterable[FrameImage]
21
+ """Array of images to guide video generation, similar to keyframes."""
22
+
23
+ guidance_scale: int
24
+ """Controls how closely the video generation follows your prompt.
25
+
26
+ Higher values make the model adhere more strictly to your text description,
27
+ while lower values allow more creative freedom. guidence_scale affects both
28
+ visual content and temporal consistency.Recommended range is 6.0-10.0 for most
29
+ video models. Values above 12 may cause over-guidance artifacts or unnatural
30
+ motion patterns.
31
+ """
32
+
33
+ height: int
34
+
35
+ negative_prompt: str
36
+ """Similar to prompt, but specifies what to avoid instead of what to include"""
37
+
38
+ output_format: Literal["MP4", "WEBM"]
39
+ """Specifies the format of the output video. Defaults to MP4."""
40
+
41
+ output_quality: int
42
+ """Compression quality. Defaults to 20."""
43
+
44
+ prompt: str
45
+ """Text prompt that describes the video to generate."""
46
+
47
+ reference_images: SequenceNotStr[str]
48
+ """
49
+ Unlike frame_images which constrain specific timeline positions, reference
50
+ images guide the general appearance that should appear consistently across the
51
+ video.
52
+ """
53
+
54
+ seconds: str
55
+ """Clip duration in seconds."""
56
+
57
+ seed: int
58
+ """Seed to use in initializing the video generation.
59
+
60
+ Using the same seed allows deterministic video generation. If not provided a
61
+ random seed is generated for each request.
62
+ """
63
+
64
+ steps: int
65
+ """The number of denoising steps the model performs during video generation.
66
+
67
+ More steps typically result in higher quality output but require longer
68
+ processing time.
69
+ """
70
+
71
+ width: int
72
+
73
+
74
+ class FrameImage(TypedDict, total=False):
75
+ input_image: Required[str]
76
+ """URL path to hosted image that is used for a frame"""
77
+
78
+ frame: Union[float, Literal["first", "last"]]
79
+ """Optional param to specify where to insert the frame.
80
+
81
+ If this is omitted, the following heuristics are applied:
82
+
83
+ - frame_images size is one, frame is first.
84
+ - If size is two, frames are first and last.
85
+ - If size is larger, frames are first, last and evenly spaced between.
86
+ """
@@ -0,0 +1,57 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["VideoJob", "Error", "Outputs"]
9
+
10
+
11
+ class Error(BaseModel):
12
+ message: str
13
+
14
+ code: Optional[str] = None
15
+
16
+
17
+ class Outputs(BaseModel):
18
+ cost: int
19
+ """The cost of generated video charged to the owners account."""
20
+
21
+ video_url: str
22
+ """URL hosting the generated video"""
23
+
24
+
25
+ class VideoJob(BaseModel):
26
+ id: str
27
+ """Unique identifier for the video job."""
28
+
29
+ created_at: float
30
+ """Unix timestamp (seconds) for when the job was created."""
31
+
32
+ model: str
33
+ """The video generation model that produced the job."""
34
+
35
+ seconds: str
36
+ """Duration of the generated clip in seconds."""
37
+
38
+ size: str
39
+ """The resolution of the generated video."""
40
+
41
+ status: Literal["in_progress", "completed", "failed"]
42
+ """Current lifecycle status of the video job."""
43
+
44
+ completed_at: Optional[float] = None
45
+ """Unix timestamp (seconds) for when the job completed, if finished."""
46
+
47
+ error: Optional[Error] = None
48
+ """Error payload that explains why generation failed, if applicable."""
49
+
50
+ object: Optional[Literal["video"]] = None
51
+ """The object type, which is always video."""
52
+
53
+ outputs: Optional[Outputs] = None
54
+ """
55
+ Available upon completion, the outputs provides the cost charged and the hosted
56
+ url to access the video
57
+ """