together 2.0.0a17__tar.gz → 2.0.0a18__tar.gz
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-2.0.0a18/.release-please-manifest.json +3 -0
- {together-2.0.0a17 → together-2.0.0a18}/CHANGELOG.md +35 -0
- {together-2.0.0a17 → together-2.0.0a18}/PKG-INFO +11 -14
- {together-2.0.0a17 → together-2.0.0a18}/README.md +10 -13
- {together-2.0.0a17 → together-2.0.0a18}/api.md +85 -17
- {together-2.0.0a17 → together-2.0.0a18}/pyproject.toml +1 -1
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_base_client.py +5 -2
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_client.py +1 -39
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_compat.py +3 -3
- together-2.0.0a18/src/together/_utils/_json.py +35 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_version.py +1 -1
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/create.py +7 -3
- together-2.0.0a18/src/together/lib/cli/api/endpoints/hardware.py +71 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/models/upload.py +5 -1
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/__init__.py +0 -14
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/beta/__init__.py +14 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/beta/beta.py +32 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/beta/clusters/clusters.py +12 -12
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/beta/clusters/storage.py +10 -10
- together-2.0.0a18/src/together/resources/beta/jig/__init__.py +61 -0
- together-2.0.0a18/src/together/resources/beta/jig/jig.py +1024 -0
- together-2.0.0a18/src/together/resources/beta/jig/queue.py +482 -0
- together-2.0.0a18/src/together/resources/beta/jig/secrets.py +548 -0
- together-2.0.0a18/src/together/resources/beta/jig/volumes.py +514 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/chat/completions.py +10 -0
- together-2.0.0a18/src/together/resources/models/__init__.py +33 -0
- {together-2.0.0a17/src/together/resources → together-2.0.0a18/src/together/resources/models}/models.py +41 -9
- together-2.0.0a18/src/together/resources/models/uploads.py +163 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/__init__.py +0 -2
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/__init__.py +6 -0
- together-2.0.0a18/src/together/types/beta/deployment.py +261 -0
- together-2.0.0a18/src/together/types/beta/deployment_logs.py +11 -0
- together-2.0.0a18/src/together/types/beta/jig/__init__.py +20 -0
- together-2.0.0a18/src/together/types/beta/jig/queue_cancel_params.py +13 -0
- together-2.0.0a18/src/together/types/beta/jig/queue_cancel_response.py +11 -0
- together-2.0.0a18/src/together/types/beta/jig/queue_metrics_params.py +12 -0
- together-2.0.0a18/src/together/types/beta/jig/queue_metrics_response.py +8 -0
- together-2.0.0a18/src/together/types/beta/jig/queue_retrieve_params.py +15 -0
- together-2.0.0a18/src/together/types/beta/jig/queue_retrieve_response.py +35 -0
- together-2.0.0a18/src/together/types/beta/jig/queue_submit_params.py +19 -0
- together-2.0.0a18/src/together/types/beta/jig/queue_submit_response.py +25 -0
- together-2.0.0a18/src/together/types/beta/jig/secret.py +33 -0
- together-2.0.0a18/src/together/types/beta/jig/secret_create_params.py +34 -0
- together-2.0.0a18/src/together/types/beta/jig/secret_list_response.py +16 -0
- together-2.0.0a18/src/together/types/beta/jig/secret_update_params.py +34 -0
- together-2.0.0a18/src/together/types/beta/jig/volume.py +47 -0
- together-2.0.0a18/src/together/types/beta/jig/volume_create_params.py +34 -0
- together-2.0.0a18/src/together/types/beta/jig/volume_list_response.py +16 -0
- together-2.0.0a18/src/together/types/beta/jig/volume_update_params.py +34 -0
- together-2.0.0a18/src/together/types/beta/jig_deploy_params.py +150 -0
- together-2.0.0a18/src/together/types/beta/jig_list_response.py +16 -0
- together-2.0.0a18/src/together/types/beta/jig_retrieve_logs_params.py +15 -0
- together-2.0.0a18/src/together/types/beta/jig_update_params.py +141 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat/completion_create_params.py +11 -0
- together-2.0.0a18/src/together/types/models/__init__.py +5 -0
- together-2.0.0a17/src/together/types/job_retrieve_response.py → together-2.0.0a18/src/together/types/models/upload_status_response.py +3 -3
- together-2.0.0a18/tests/api_resources/beta/jig/test_queue.py +315 -0
- together-2.0.0a18/tests/api_resources/beta/jig/test_secrets.py +412 -0
- together-2.0.0a18/tests/api_resources/beta/jig/test_volumes.py +426 -0
- together-2.0.0a18/tests/api_resources/beta/test_jig.py +616 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/chat/test_completions.py +4 -0
- together-2.0.0a18/tests/api_resources/code_interpreter/__init__.py +1 -0
- together-2.0.0a18/tests/api_resources/models/__init__.py +1 -0
- together-2.0.0a18/tests/api_resources/models/test_uploads.py +100 -0
- together-2.0.0a18/tests/test_utils/test_json.py +126 -0
- together-2.0.0a17/.release-please-manifest.json +0 -3
- together-2.0.0a17/src/together/lib/cli/api/endpoints/hardware.py +0 -40
- together-2.0.0a17/src/together/resources/jobs.py +0 -214
- together-2.0.0a17/src/together/types/job_list_response.py +0 -47
- together-2.0.0a17/tests/api_resources/test_jobs.py +0 -150
- {together-2.0.0a17 → together-2.0.0a18}/.gitignore +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/CONTRIBUTING.md +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/LICENSE +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/SECURITY.md +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/bin/check-release-environment +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/bin/publish-pypi +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/.keep +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/coqa-small.jsonl +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/coqa.jsonl +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/embedding.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/file-upload.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/fine_tuning.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/image.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/models.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/streaming.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/examples/tokenize_data.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/release-please-config.json +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/requirements-dev.lock +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_constants.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_exceptions.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_models.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_qs.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_resource.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_streaming.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_types.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_compat.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_datetime_parse.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_logs.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_proxy.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_reflection.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_resources_proxy.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_streams.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_sync.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_transform.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_typing.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/_utils/_utils.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/constants.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/error.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/.keep +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/_google_colab.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/_utils.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/create.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/delete.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/get_credentials.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/list.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/list_regions.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/retrieve.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/create.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/delete.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/list.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/retrieve.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/update.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/availability_zones.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/delete.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/list.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/retrieve.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/start.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/stop.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/update.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/evals/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/evals/create.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/evals/list.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/evals/retrieve.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/evals/status.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/files/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/files/check.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/files/delete.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/files/list.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/files/retrieve.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/files/retrieve_content.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/files/upload.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/cancel.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/create.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/delete.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/download.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/list.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/list_checkpoints.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/list_events.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/retrieve.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/models/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/cli/api/models/list.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/constants.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/resources/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/resources/files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/resources/fine_tuning.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/types/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/types/error.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/types/fine_tuning.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/utils/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/utils/_log.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/utils/files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/utils/serializer.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/lib/utils/tools.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/py.typed +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/audio/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/audio/audio.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/audio/speech.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/audio/transcriptions.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/audio/translations.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/audio/voices.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/batches.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/beta/clusters/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/chat/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/chat/chat.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/code_interpreter/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/code_interpreter/code_interpreter.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/code_interpreter/sessions.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/completions.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/embeddings.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/endpoints.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/evals.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/fine_tuning.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/hardware.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/images.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/rerank.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/resources/videos.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/audio/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/audio/speech_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/audio/transcription_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/audio/transcription_create_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/audio/translation_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/audio/translation_create_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/audio/voice_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/audio_speech_stream_chunk.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/autoscaling.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/autoscaling_param.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/batch_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/batch_create_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/batch_job.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/batch_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/cluster.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/cluster_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/cluster_delete_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/cluster_list_regions_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/cluster_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/cluster_update_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/clusters/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/clusters/cluster_storage.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/clusters/storage_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/clusters/storage_delete_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/clusters/storage_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/beta/clusters/storage_update_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat/chat_completion.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat/chat_completion_chunk.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat/chat_completion_structured_message_image_url_param.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat/chat_completion_structured_message_text_param.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat/chat_completion_structured_message_video_url_param.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat/chat_completion_usage.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat/chat_completion_warning.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/chat_completions.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/code_interpreter/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/code_interpreter/session_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/code_interpreter_execute_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/completion.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/completion_chunk.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/completion_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/dedicated_endpoint.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/embedding.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/embedding_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/endpoint_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/endpoint_list_avzones_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/endpoint_list_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/endpoint_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/endpoint_update_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/endpoints.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/eval_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/eval_create_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/eval_list_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/eval_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/eval_status_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/evaluation_job.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/execute_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/file_delete_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/file_list.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/file_purpose.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/file_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/file_type.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/fine_tuning_cancel_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/fine_tuning_content_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/fine_tuning_delete_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/fine_tuning_delete_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/fine_tuning_estimate_price_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/fine_tuning_estimate_price_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/fine_tuning_list_checkpoints_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/fine_tuning_list_events_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/fine_tuning_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/finetune.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/finetune_event.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/finetune_event_type.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/finetune_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/hardware_list_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/hardware_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/image_data_b64.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/image_data_url.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/image_file.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/image_generate_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/log_probs.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/model_list_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/model_list_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/model_object.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/model_upload_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/model_upload_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/models.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/rerank_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/rerank_create_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/tool_choice.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/tool_choice_param.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/tools_param.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/training_method_dpo.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/training_method_sft.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/video_create_params.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/src/together/types/video_job.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/audio/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/audio/test_speech.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/audio/test_transcriptions.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/audio/test_translations.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/audio/test_voices.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/beta/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/beta/clusters/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/beta/clusters/test_storage.py +0 -0
- {together-2.0.0a17/tests/api_resources/chat → together-2.0.0a18/tests/api_resources/beta/jig}/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/beta/test_clusters.py +0 -0
- {together-2.0.0a17/tests/api_resources/code_interpreter → together-2.0.0a18/tests/api_resources/chat}/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/code_interpreter/test_sessions.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_batches.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_code_interpreter.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_completions.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_embeddings.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_endpoints.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_evals.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_fine_tuning.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_hardware.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_images.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_models.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_rerank.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/api_resources/test_videos.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/conftest.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/integration/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/integration/constants.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/integration/resources/__init__.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/integration/resources/generate_hyperparameters.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/integration/resources/test_completion.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/integration/resources/test_completion_stream.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/integration/resources/test_files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/sample_file.txt +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_cli_utils.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_client.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_deepcopy.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_extract_files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_files.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_models.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_qs.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_required_args.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_response.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_streaming.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_transform.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_utils/test_datetime_parse.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_utils/test_proxy.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/test_utils/test_typing.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_async_client.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_client.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_code_interpreter.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_files_checks.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_files_resource.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_fine_tuning_resources.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_imports.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_multipart_upload_manager.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_preference_openai.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/unit/test_video_url.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/tests/utils.py +0 -0
- {together-2.0.0a17 → together-2.0.0a18}/uv.lock +0 -0
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.0-alpha.18 (2026-01-31)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v2.0.0-alpha.17...v2.0.0-alpha.18](https://github.com/togethercomputer/together-py/compare/v2.0.0-alpha.17...v2.0.0-alpha.18)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* Add chat completion support for reasoning.enabled ([7fba349](https://github.com/togethercomputer/together-py/commit/7fba349c1bde34ace5ca38c0728479f054518e04))
|
|
10
|
+
* **api:** Add API for listing deployments ([298d447](https://github.com/togethercomputer/together-py/commit/298d4475208fb24e1373fa7449c0716768d5501d))
|
|
11
|
+
* **api:** Add beta sdks for jig features ([c3ac883](https://github.com/togethercomputer/together-py/commit/c3ac883f8ffe62d2c1b660e3a62fc82891e63dac))
|
|
12
|
+
* **api:** Move jobs apis to nest under model uploads per their use case ([368c003](https://github.com/togethercomputer/together-py/commit/368c003ec61e8cea2ec995ba9889d3cf7ac21328))
|
|
13
|
+
* **api:** Move queue out of jig namespace ([ebc1498](https://github.com/togethercomputer/together-py/commit/ebc1498125e7b95f2726cfb37a4324aadcf40f8d))
|
|
14
|
+
* **api:** Update Jig types and add retrieve_logs api to jig ([76a3c1a](https://github.com/togethercomputer/together-py/commit/76a3c1abccf8bb1efaebd192a68fe31785b568cf))
|
|
15
|
+
* **cli:** enhance hardware command to display availability status ([#223](https://github.com/togethercomputer/together-py/issues/223)) ([e7cf8a3](https://github.com/togethercomputer/together-py/commit/e7cf8a30c6a1d46f10ea5049f51e969be6f8418f))
|
|
16
|
+
* **client:** add custom JSON encoder for extended type support ([036a0ea](https://github.com/togethercomputer/together-py/commit/036a0eaba07c3cca56e9dbec965e1cce2f8b848a))
|
|
17
|
+
* internal: Update to new cluster api routing ([54af0bd](https://github.com/togethercomputer/together-py/commit/54af0bdf4076e5ff02f0475547a4b1d2f7393c46))
|
|
18
|
+
* move byoc features under /deployments route ([d70e2e9](https://github.com/togethercomputer/together-py/commit/d70e2e9c3c12997935a34cb4a63a26e315e0c799))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* Avoid crashing when uploading a model which weights already exist ([#226](https://github.com/togethercomputer/together-py/issues/226)) ([5a9095c](https://github.com/togethercomputer/together-py/commit/5a9095c91da5de8333e366e88f6960b428177d07))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Chores
|
|
27
|
+
|
|
28
|
+
* **api:** Improve type names for jig volumes and logs ([b256c61](https://github.com/togethercomputer/together-py/commit/b256c61f601d67a0abee1dbc44e9851d52014d0d))
|
|
29
|
+
* **api:** Move Queue SDK methods into Jig namespace ([43179e1](https://github.com/togethercomputer/together-py/commit/43179e1ee8451cc3bcb8430c2bc35148309b82db))
|
|
30
|
+
* **api:** Rename jig queue apis ([4b466d6](https://github.com/togethercomputer/together-py/commit/4b466d6079071fd840880337b20c4d34a3a5cf45))
|
|
31
|
+
* **ci:** upgrade `actions/github-script` ([c8668a1](https://github.com/togethercomputer/together-py/commit/c8668a1424fbfcd37d893d414d4dcd0307f5aac4))
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### Documentation
|
|
35
|
+
|
|
36
|
+
* **axle-queue:** added axle-queue endpoints ([4e60b09](https://github.com/togethercomputer/together-py/commit/4e60b096128cbfef4769195a9b00cf0236e5052c))
|
|
37
|
+
|
|
3
38
|
## 2.0.0-alpha.17 (2026-01-21)
|
|
4
39
|
|
|
5
40
|
Full Changelog: [v2.0.0-alpha.16...v2.0.0-alpha.17](https://github.com/togethercomputer/together-py/compare/v2.0.0-alpha.16...v2.0.0-alpha.17)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: together
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.0a18
|
|
4
4
|
Summary: The official Python library for the together API
|
|
5
5
|
Project-URL: Homepage, https://github.com/togethercomputer/together-py
|
|
6
6
|
Project-URL: Repository, https://github.com/togethercomputer/together-py
|
|
@@ -235,20 +235,17 @@ from together import Together
|
|
|
235
235
|
|
|
236
236
|
client = Together()
|
|
237
237
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
"size_tib": 0,
|
|
248
|
-
"volume_name": "volume_name",
|
|
249
|
-
},
|
|
238
|
+
chat_completion = client.chat.completions.create(
|
|
239
|
+
messages=[
|
|
240
|
+
{
|
|
241
|
+
"content": "content",
|
|
242
|
+
"role": "system",
|
|
243
|
+
}
|
|
244
|
+
],
|
|
245
|
+
model="meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
|
|
246
|
+
reasoning={},
|
|
250
247
|
)
|
|
251
|
-
print(
|
|
248
|
+
print(chat_completion.reasoning)
|
|
252
249
|
```
|
|
253
250
|
|
|
254
251
|
The async client uses the exact same interface. If you pass a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance, the file contents will be read asynchronously automatically.
|
|
@@ -186,20 +186,17 @@ from together import Together
|
|
|
186
186
|
|
|
187
187
|
client = Together()
|
|
188
188
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
"size_tib": 0,
|
|
199
|
-
"volume_name": "volume_name",
|
|
200
|
-
},
|
|
189
|
+
chat_completion = client.chat.completions.create(
|
|
190
|
+
messages=[
|
|
191
|
+
{
|
|
192
|
+
"content": "content",
|
|
193
|
+
"role": "system",
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
model="meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
|
|
197
|
+
reasoning={},
|
|
201
198
|
)
|
|
202
|
-
print(
|
|
199
|
+
print(chat_completion.reasoning)
|
|
203
200
|
```
|
|
204
201
|
|
|
205
202
|
The async client uses the exact same interface. If you pass a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance, the file contents will be read asynchronously automatically.
|
|
@@ -1,5 +1,74 @@
|
|
|
1
1
|
# Beta
|
|
2
2
|
|
|
3
|
+
## Jig
|
|
4
|
+
|
|
5
|
+
Types:
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
from together.types.beta import Deployment, DeploymentLogs, JigListResponse
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Methods:
|
|
12
|
+
|
|
13
|
+
- <code title="get /deployments/{id}">client.beta.jig.<a href="./src/together/resources/beta/jig/jig.py">retrieve</a>(id) -> <a href="./src/together/types/beta/deployment.py">Deployment</a></code>
|
|
14
|
+
- <code title="patch /deployments/{id}">client.beta.jig.<a href="./src/together/resources/beta/jig/jig.py">update</a>(id, \*\*<a href="src/together/types/beta/jig_update_params.py">params</a>) -> <a href="./src/together/types/beta/deployment.py">Deployment</a></code>
|
|
15
|
+
- <code title="get /deployments">client.beta.jig.<a href="./src/together/resources/beta/jig/jig.py">list</a>() -> <a href="./src/together/types/beta/jig_list_response.py">JigListResponse</a></code>
|
|
16
|
+
- <code title="post /deployments">client.beta.jig.<a href="./src/together/resources/beta/jig/jig.py">deploy</a>(\*\*<a href="src/together/types/beta/jig_deploy_params.py">params</a>) -> <a href="./src/together/types/beta/deployment.py">Deployment</a></code>
|
|
17
|
+
- <code title="delete /deployments/{id}">client.beta.jig.<a href="./src/together/resources/beta/jig/jig.py">destroy</a>(id) -> object</code>
|
|
18
|
+
- <code title="get /deployments/{id}/logs">client.beta.jig.<a href="./src/together/resources/beta/jig/jig.py">retrieve_logs</a>(id, \*\*<a href="src/together/types/beta/jig_retrieve_logs_params.py">params</a>) -> <a href="./src/together/types/beta/deployment_logs.py">DeploymentLogs</a></code>
|
|
19
|
+
|
|
20
|
+
### Queue
|
|
21
|
+
|
|
22
|
+
Types:
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
from together.types.beta.jig import (
|
|
26
|
+
QueueRetrieveResponse,
|
|
27
|
+
QueueCancelResponse,
|
|
28
|
+
QueueMetricsResponse,
|
|
29
|
+
QueueSubmitResponse,
|
|
30
|
+
)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Methods:
|
|
34
|
+
|
|
35
|
+
- <code title="get /queue/status">client.beta.jig.queue.<a href="./src/together/resources/beta/jig/queue.py">retrieve</a>(\*\*<a href="src/together/types/beta/jig/queue_retrieve_params.py">params</a>) -> <a href="./src/together/types/beta/jig/queue_retrieve_response.py">QueueRetrieveResponse</a></code>
|
|
36
|
+
- <code title="post /queue/cancel">client.beta.jig.queue.<a href="./src/together/resources/beta/jig/queue.py">cancel</a>(\*\*<a href="src/together/types/beta/jig/queue_cancel_params.py">params</a>) -> <a href="./src/together/types/beta/jig/queue_cancel_response.py">QueueCancelResponse</a></code>
|
|
37
|
+
- <code title="get /queue/metrics">client.beta.jig.queue.<a href="./src/together/resources/beta/jig/queue.py">metrics</a>(\*\*<a href="src/together/types/beta/jig/queue_metrics_params.py">params</a>) -> <a href="./src/together/types/beta/jig/queue_metrics_response.py">QueueMetricsResponse</a></code>
|
|
38
|
+
- <code title="post /queue/submit">client.beta.jig.queue.<a href="./src/together/resources/beta/jig/queue.py">submit</a>(\*\*<a href="src/together/types/beta/jig/queue_submit_params.py">params</a>) -> <a href="./src/together/types/beta/jig/queue_submit_response.py">QueueSubmitResponse</a></code>
|
|
39
|
+
|
|
40
|
+
### Volumes
|
|
41
|
+
|
|
42
|
+
Types:
|
|
43
|
+
|
|
44
|
+
```python
|
|
45
|
+
from together.types.beta.jig import Volume, VolumeListResponse
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Methods:
|
|
49
|
+
|
|
50
|
+
- <code title="post /deployments/storage/volumes">client.beta.jig.volumes.<a href="./src/together/resources/beta/jig/volumes.py">create</a>(\*\*<a href="src/together/types/beta/jig/volume_create_params.py">params</a>) -> <a href="./src/together/types/beta/jig/volume.py">Volume</a></code>
|
|
51
|
+
- <code title="get /deployments/storage/volumes/{id}">client.beta.jig.volumes.<a href="./src/together/resources/beta/jig/volumes.py">retrieve</a>(id) -> <a href="./src/together/types/beta/jig/volume.py">Volume</a></code>
|
|
52
|
+
- <code title="patch /deployments/storage/volumes/{id}">client.beta.jig.volumes.<a href="./src/together/resources/beta/jig/volumes.py">update</a>(id, \*\*<a href="src/together/types/beta/jig/volume_update_params.py">params</a>) -> <a href="./src/together/types/beta/jig/volume.py">Volume</a></code>
|
|
53
|
+
- <code title="get /deployments/storage/volumes">client.beta.jig.volumes.<a href="./src/together/resources/beta/jig/volumes.py">list</a>() -> <a href="./src/together/types/beta/jig/volume_list_response.py">VolumeListResponse</a></code>
|
|
54
|
+
- <code title="delete /deployments/storage/volumes/{id}">client.beta.jig.volumes.<a href="./src/together/resources/beta/jig/volumes.py">delete</a>(id) -> object</code>
|
|
55
|
+
|
|
56
|
+
### Secrets
|
|
57
|
+
|
|
58
|
+
Types:
|
|
59
|
+
|
|
60
|
+
```python
|
|
61
|
+
from together.types.beta.jig import Secret, SecretListResponse
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Methods:
|
|
65
|
+
|
|
66
|
+
- <code title="post /deployments/secrets">client.beta.jig.secrets.<a href="./src/together/resources/beta/jig/secrets.py">create</a>(\*\*<a href="src/together/types/beta/jig/secret_create_params.py">params</a>) -> <a href="./src/together/types/beta/jig/secret.py">Secret</a></code>
|
|
67
|
+
- <code title="get /deployments/secrets/{id}">client.beta.jig.secrets.<a href="./src/together/resources/beta/jig/secrets.py">retrieve</a>(id) -> <a href="./src/together/types/beta/jig/secret.py">Secret</a></code>
|
|
68
|
+
- <code title="patch /deployments/secrets/{id}">client.beta.jig.secrets.<a href="./src/together/resources/beta/jig/secrets.py">update</a>(id, \*\*<a href="src/together/types/beta/jig/secret_update_params.py">params</a>) -> <a href="./src/together/types/beta/jig/secret.py">Secret</a></code>
|
|
69
|
+
- <code title="get /deployments/secrets">client.beta.jig.secrets.<a href="./src/together/resources/beta/jig/secrets.py">list</a>() -> <a href="./src/together/types/beta/jig/secret_list_response.py">SecretListResponse</a></code>
|
|
70
|
+
- <code title="delete /deployments/secrets/{id}">client.beta.jig.secrets.<a href="./src/together/resources/beta/jig/secrets.py">delete</a>(id) -> object</code>
|
|
71
|
+
|
|
3
72
|
## Clusters
|
|
4
73
|
|
|
5
74
|
Types:
|
|
@@ -15,12 +84,12 @@ from together.types.beta import (
|
|
|
15
84
|
|
|
16
85
|
Methods:
|
|
17
86
|
|
|
18
|
-
- <code title="post /clusters">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">create</a>(\*\*<a href="src/together/types/beta/cluster_create_params.py">params</a>) -> <a href="./src/together/types/beta/cluster.py">Cluster</a></code>
|
|
19
|
-
- <code title="get /clusters/{cluster_id}">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">retrieve</a>(cluster_id) -> <a href="./src/together/types/beta/cluster.py">Cluster</a></code>
|
|
20
|
-
- <code title="put /clusters/{cluster_id}">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">update</a>(cluster_id, \*\*<a href="src/together/types/beta/cluster_update_params.py">params</a>) -> <a href="./src/together/types/beta/cluster.py">Cluster</a></code>
|
|
21
|
-
- <code title="get /clusters">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">list</a>() -> <a href="./src/together/types/beta/cluster_list_response.py">ClusterListResponse</a></code>
|
|
22
|
-
- <code title="delete /clusters/{cluster_id}">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">delete</a>(cluster_id) -> <a href="./src/together/types/beta/cluster_delete_response.py">ClusterDeleteResponse</a></code>
|
|
23
|
-
- <code title="get /
|
|
87
|
+
- <code title="post /compute/clusters">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">create</a>(\*\*<a href="src/together/types/beta/cluster_create_params.py">params</a>) -> <a href="./src/together/types/beta/cluster.py">Cluster</a></code>
|
|
88
|
+
- <code title="get /compute/clusters/{cluster_id}">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">retrieve</a>(cluster_id) -> <a href="./src/together/types/beta/cluster.py">Cluster</a></code>
|
|
89
|
+
- <code title="put /compute/clusters/{cluster_id}">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">update</a>(cluster_id, \*\*<a href="src/together/types/beta/cluster_update_params.py">params</a>) -> <a href="./src/together/types/beta/cluster.py">Cluster</a></code>
|
|
90
|
+
- <code title="get /compute/clusters">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">list</a>() -> <a href="./src/together/types/beta/cluster_list_response.py">ClusterListResponse</a></code>
|
|
91
|
+
- <code title="delete /compute/clusters/{cluster_id}">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">delete</a>(cluster_id) -> <a href="./src/together/types/beta/cluster_delete_response.py">ClusterDeleteResponse</a></code>
|
|
92
|
+
- <code title="get /compute/regions">client.beta.clusters.<a href="./src/together/resources/beta/clusters/clusters.py">list_regions</a>() -> <a href="./src/together/types/beta/cluster_list_regions_response.py">ClusterListRegionsResponse</a></code>
|
|
24
93
|
|
|
25
94
|
### Storage
|
|
26
95
|
|
|
@@ -32,11 +101,11 @@ from together.types.beta.clusters import ClusterStorage, StorageListResponse, St
|
|
|
32
101
|
|
|
33
102
|
Methods:
|
|
34
103
|
|
|
35
|
-
- <code title="post /clusters/
|
|
36
|
-
- <code title="get /clusters/
|
|
37
|
-
- <code title="put /clusters/
|
|
38
|
-
- <code title="get /clusters/
|
|
39
|
-
- <code title="delete /clusters/
|
|
104
|
+
- <code title="post /compute/clusters/storage/volumes">client.beta.clusters.storage.<a href="./src/together/resources/beta/clusters/storage.py">create</a>(\*\*<a href="src/together/types/beta/clusters/storage_create_params.py">params</a>) -> <a href="./src/together/types/beta/clusters/cluster_storage.py">ClusterStorage</a></code>
|
|
105
|
+
- <code title="get /compute/clusters/storage/volumes/{volume_id}">client.beta.clusters.storage.<a href="./src/together/resources/beta/clusters/storage.py">retrieve</a>(volume_id) -> <a href="./src/together/types/beta/clusters/cluster_storage.py">ClusterStorage</a></code>
|
|
106
|
+
- <code title="put /compute/clusters/storage/volumes">client.beta.clusters.storage.<a href="./src/together/resources/beta/clusters/storage.py">update</a>(\*\*<a href="src/together/types/beta/clusters/storage_update_params.py">params</a>) -> <a href="./src/together/types/beta/clusters/cluster_storage.py">ClusterStorage</a></code>
|
|
107
|
+
- <code title="get /compute/clusters/storage/volumes">client.beta.clusters.storage.<a href="./src/together/resources/beta/clusters/storage.py">list</a>() -> <a href="./src/together/types/beta/clusters/storage_list_response.py">StorageListResponse</a></code>
|
|
108
|
+
- <code title="delete /compute/clusters/storage/volumes/{volume_id}">client.beta.clusters.storage.<a href="./src/together/resources/beta/clusters/storage.py">delete</a>(volume_id) -> <a href="./src/together/types/beta/clusters/storage_delete_response.py">StorageDeleteResponse</a></code>
|
|
40
109
|
|
|
41
110
|
# Chat
|
|
42
111
|
|
|
@@ -244,21 +313,20 @@ from together.types import ModelObject, ModelListResponse, ModelUploadResponse
|
|
|
244
313
|
|
|
245
314
|
Methods:
|
|
246
315
|
|
|
247
|
-
- <code title="get /models">client.models.<a href="./src/together/resources/models.py">list</a>(\*\*<a href="src/together/types/model_list_params.py">params</a>) -> <a href="./src/together/types/model_list_response.py">ModelListResponse</a></code>
|
|
248
|
-
- <code title="post /models">client.models.<a href="./src/together/resources/models.py">upload</a>(\*\*<a href="src/together/types/model_upload_params.py">params</a>) -> <a href="./src/together/types/model_upload_response.py">ModelUploadResponse</a></code>
|
|
316
|
+
- <code title="get /models">client.models.<a href="./src/together/resources/models/models.py">list</a>(\*\*<a href="src/together/types/model_list_params.py">params</a>) -> <a href="./src/together/types/model_list_response.py">ModelListResponse</a></code>
|
|
317
|
+
- <code title="post /models">client.models.<a href="./src/together/resources/models/models.py">upload</a>(\*\*<a href="src/together/types/model_upload_params.py">params</a>) -> <a href="./src/together/types/model_upload_response.py">ModelUploadResponse</a></code>
|
|
249
318
|
|
|
250
|
-
|
|
319
|
+
## Uploads
|
|
251
320
|
|
|
252
321
|
Types:
|
|
253
322
|
|
|
254
323
|
```python
|
|
255
|
-
from together.types import
|
|
324
|
+
from together.types.models import UploadStatusResponse
|
|
256
325
|
```
|
|
257
326
|
|
|
258
327
|
Methods:
|
|
259
328
|
|
|
260
|
-
- <code title="get /jobs/{jobId}">client.
|
|
261
|
-
- <code title="get /jobs">client.jobs.<a href="./src/together/resources/jobs.py">list</a>() -> <a href="./src/together/types/job_list_response.py">JobListResponse</a></code>
|
|
329
|
+
- <code title="get /jobs/{jobId}">client.models.uploads.<a href="./src/together/resources/models/uploads.py">status</a>(job_id) -> <a href="./src/together/types/models/upload_status_response.py">UploadStatusResponse</a></code>
|
|
262
330
|
|
|
263
331
|
# Endpoints
|
|
264
332
|
|
|
@@ -86,6 +86,7 @@ from ._exceptions import (
|
|
|
86
86
|
APIConnectionError,
|
|
87
87
|
APIResponseValidationError,
|
|
88
88
|
)
|
|
89
|
+
from ._utils._json import openapi_dumps
|
|
89
90
|
|
|
90
91
|
log: logging.Logger = logging.getLogger(__name__)
|
|
91
92
|
|
|
@@ -554,8 +555,10 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
554
555
|
kwargs["content"] = options.content
|
|
555
556
|
elif isinstance(json_data, bytes):
|
|
556
557
|
kwargs["content"] = json_data
|
|
557
|
-
|
|
558
|
-
|
|
558
|
+
elif not files:
|
|
559
|
+
# Don't set content when JSON is sent as multipart/form-data,
|
|
560
|
+
# since httpx's content param overrides other body arguments
|
|
561
|
+
kwargs["content"] = openapi_dumps(json_data) if is_given(json_data) and json_data is not None else None
|
|
559
562
|
kwargs["files"] = files
|
|
560
563
|
else:
|
|
561
564
|
headers.pop("Content-Type", None)
|
|
@@ -37,7 +37,6 @@ if TYPE_CHECKING:
|
|
|
37
37
|
from .resources import (
|
|
38
38
|
beta,
|
|
39
39
|
chat,
|
|
40
|
-
jobs,
|
|
41
40
|
audio,
|
|
42
41
|
evals,
|
|
43
42
|
files,
|
|
@@ -53,11 +52,9 @@ if TYPE_CHECKING:
|
|
|
53
52
|
fine_tuning,
|
|
54
53
|
code_interpreter,
|
|
55
54
|
)
|
|
56
|
-
from .resources.jobs import JobsResource, AsyncJobsResource
|
|
57
55
|
from .resources.evals import EvalsResource, AsyncEvalsResource
|
|
58
56
|
from .resources.files import FilesResource, AsyncFilesResource
|
|
59
57
|
from .resources.images import ImagesResource, AsyncImagesResource
|
|
60
|
-
from .resources.models import ModelsResource, AsyncModelsResource
|
|
61
58
|
from .resources.rerank import RerankResource, AsyncRerankResource
|
|
62
59
|
from .resources.videos import VideosResource, AsyncVideosResource
|
|
63
60
|
from .resources.batches import BatchesResource, AsyncBatchesResource
|
|
@@ -69,6 +66,7 @@ if TYPE_CHECKING:
|
|
|
69
66
|
from .resources.audio.audio import AudioResource, AsyncAudioResource
|
|
70
67
|
from .resources.completions import CompletionsResource, AsyncCompletionsResource
|
|
71
68
|
from .resources.fine_tuning import FineTuningResource, AsyncFineTuningResource
|
|
69
|
+
from .resources.models.models import ModelsResource, AsyncModelsResource
|
|
72
70
|
from .resources.code_interpreter.code_interpreter import CodeInterpreterResource, AsyncCodeInterpreterResource
|
|
73
71
|
|
|
74
72
|
__all__ = [
|
|
@@ -209,12 +207,6 @@ class Together(SyncAPIClient):
|
|
|
209
207
|
|
|
210
208
|
return ModelsResource(self)
|
|
211
209
|
|
|
212
|
-
@cached_property
|
|
213
|
-
def jobs(self) -> JobsResource:
|
|
214
|
-
from .resources.jobs import JobsResource
|
|
215
|
-
|
|
216
|
-
return JobsResource(self)
|
|
217
|
-
|
|
218
210
|
@cached_property
|
|
219
211
|
def endpoints(self) -> EndpointsResource:
|
|
220
212
|
from .resources.endpoints import EndpointsResource
|
|
@@ -486,12 +478,6 @@ class AsyncTogether(AsyncAPIClient):
|
|
|
486
478
|
|
|
487
479
|
return AsyncModelsResource(self)
|
|
488
480
|
|
|
489
|
-
@cached_property
|
|
490
|
-
def jobs(self) -> AsyncJobsResource:
|
|
491
|
-
from .resources.jobs import AsyncJobsResource
|
|
492
|
-
|
|
493
|
-
return AsyncJobsResource(self)
|
|
494
|
-
|
|
495
481
|
@cached_property
|
|
496
482
|
def endpoints(self) -> AsyncEndpointsResource:
|
|
497
483
|
from .resources.endpoints import AsyncEndpointsResource
|
|
@@ -709,12 +695,6 @@ class TogetherWithRawResponse:
|
|
|
709
695
|
|
|
710
696
|
return ModelsResourceWithRawResponse(self._client.models)
|
|
711
697
|
|
|
712
|
-
@cached_property
|
|
713
|
-
def jobs(self) -> jobs.JobsResourceWithRawResponse:
|
|
714
|
-
from .resources.jobs import JobsResourceWithRawResponse
|
|
715
|
-
|
|
716
|
-
return JobsResourceWithRawResponse(self._client.jobs)
|
|
717
|
-
|
|
718
698
|
@cached_property
|
|
719
699
|
def endpoints(self) -> endpoints.EndpointsResourceWithRawResponse:
|
|
720
700
|
from .resources.endpoints import EndpointsResourceWithRawResponse
|
|
@@ -818,12 +798,6 @@ class AsyncTogetherWithRawResponse:
|
|
|
818
798
|
|
|
819
799
|
return AsyncModelsResourceWithRawResponse(self._client.models)
|
|
820
800
|
|
|
821
|
-
@cached_property
|
|
822
|
-
def jobs(self) -> jobs.AsyncJobsResourceWithRawResponse:
|
|
823
|
-
from .resources.jobs import AsyncJobsResourceWithRawResponse
|
|
824
|
-
|
|
825
|
-
return AsyncJobsResourceWithRawResponse(self._client.jobs)
|
|
826
|
-
|
|
827
801
|
@cached_property
|
|
828
802
|
def endpoints(self) -> endpoints.AsyncEndpointsResourceWithRawResponse:
|
|
829
803
|
from .resources.endpoints import AsyncEndpointsResourceWithRawResponse
|
|
@@ -927,12 +901,6 @@ class TogetherWithStreamedResponse:
|
|
|
927
901
|
|
|
928
902
|
return ModelsResourceWithStreamingResponse(self._client.models)
|
|
929
903
|
|
|
930
|
-
@cached_property
|
|
931
|
-
def jobs(self) -> jobs.JobsResourceWithStreamingResponse:
|
|
932
|
-
from .resources.jobs import JobsResourceWithStreamingResponse
|
|
933
|
-
|
|
934
|
-
return JobsResourceWithStreamingResponse(self._client.jobs)
|
|
935
|
-
|
|
936
904
|
@cached_property
|
|
937
905
|
def endpoints(self) -> endpoints.EndpointsResourceWithStreamingResponse:
|
|
938
906
|
from .resources.endpoints import EndpointsResourceWithStreamingResponse
|
|
@@ -1036,12 +1004,6 @@ class AsyncTogetherWithStreamedResponse:
|
|
|
1036
1004
|
|
|
1037
1005
|
return AsyncModelsResourceWithStreamingResponse(self._client.models)
|
|
1038
1006
|
|
|
1039
|
-
@cached_property
|
|
1040
|
-
def jobs(self) -> jobs.AsyncJobsResourceWithStreamingResponse:
|
|
1041
|
-
from .resources.jobs import AsyncJobsResourceWithStreamingResponse
|
|
1042
|
-
|
|
1043
|
-
return AsyncJobsResourceWithStreamingResponse(self._client.jobs)
|
|
1044
|
-
|
|
1045
1007
|
@cached_property
|
|
1046
1008
|
def endpoints(self) -> endpoints.AsyncEndpointsResourceWithStreamingResponse:
|
|
1047
1009
|
from .resources.endpoints import AsyncEndpointsResourceWithStreamingResponse
|
|
@@ -139,6 +139,7 @@ def model_dump(
|
|
|
139
139
|
exclude_defaults: bool = False,
|
|
140
140
|
warnings: bool = True,
|
|
141
141
|
mode: Literal["json", "python"] = "python",
|
|
142
|
+
by_alias: bool | None = None,
|
|
142
143
|
) -> dict[str, Any]:
|
|
143
144
|
if (not PYDANTIC_V1) or hasattr(model, "model_dump"):
|
|
144
145
|
return model.model_dump(
|
|
@@ -148,13 +149,12 @@ def model_dump(
|
|
|
148
149
|
exclude_defaults=exclude_defaults,
|
|
149
150
|
# warnings are not supported in Pydantic v1
|
|
150
151
|
warnings=True if PYDANTIC_V1 else warnings,
|
|
152
|
+
by_alias=by_alias,
|
|
151
153
|
)
|
|
152
154
|
return cast(
|
|
153
155
|
"dict[str, Any]",
|
|
154
156
|
model.dict( # pyright: ignore[reportDeprecated, reportUnnecessaryCast]
|
|
155
|
-
exclude=exclude,
|
|
156
|
-
exclude_unset=exclude_unset,
|
|
157
|
-
exclude_defaults=exclude_defaults,
|
|
157
|
+
exclude=exclude, exclude_unset=exclude_unset, exclude_defaults=exclude_defaults, by_alias=bool(by_alias)
|
|
158
158
|
),
|
|
159
159
|
)
|
|
160
160
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from typing import Any
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
from typing_extensions import override
|
|
5
|
+
|
|
6
|
+
import pydantic
|
|
7
|
+
|
|
8
|
+
from .._compat import model_dump
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def openapi_dumps(obj: Any) -> bytes:
|
|
12
|
+
"""
|
|
13
|
+
Serialize an object to UTF-8 encoded JSON bytes.
|
|
14
|
+
|
|
15
|
+
Extends the standard json.dumps with support for additional types
|
|
16
|
+
commonly used in the SDK, such as `datetime`, `pydantic.BaseModel`, etc.
|
|
17
|
+
"""
|
|
18
|
+
return json.dumps(
|
|
19
|
+
obj,
|
|
20
|
+
cls=_CustomEncoder,
|
|
21
|
+
# Uses the same defaults as httpx's JSON serialization
|
|
22
|
+
ensure_ascii=False,
|
|
23
|
+
separators=(",", ":"),
|
|
24
|
+
allow_nan=False,
|
|
25
|
+
).encode()
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class _CustomEncoder(json.JSONEncoder):
|
|
29
|
+
@override
|
|
30
|
+
def default(self, o: Any) -> Any:
|
|
31
|
+
if isinstance(o, datetime):
|
|
32
|
+
return o.isoformat()
|
|
33
|
+
if isinstance(o, pydantic.BaseModel):
|
|
34
|
+
return model_dump(o, exclude_unset=True, mode="json", by_alias=True)
|
|
35
|
+
return super().default(o)
|
|
@@ -3,7 +3,6 @@ from __future__ import annotations
|
|
|
3
3
|
import sys
|
|
4
4
|
|
|
5
5
|
import click
|
|
6
|
-
from rich import print
|
|
7
6
|
|
|
8
7
|
from together import APIError, Together, omit
|
|
9
8
|
from together.lib.cli.api._utils import handle_api_errors
|
|
@@ -124,8 +123,13 @@ def create(
|
|
|
124
123
|
extra_query={"availability_zone": availability_zone or omit},
|
|
125
124
|
)
|
|
126
125
|
except APIError as e:
|
|
127
|
-
if
|
|
128
|
-
|
|
126
|
+
if (
|
|
127
|
+
"check the hardware api" in str(e.args[0]).lower()
|
|
128
|
+
or "invalid hardware provided" in str(e.args[0]).lower()
|
|
129
|
+
or "the selected configuration" in str(e.args[0]).lower()
|
|
130
|
+
):
|
|
131
|
+
click.secho("Invalid hardware selected.", fg="red", err=True)
|
|
132
|
+
click.echo("\nAvailable hardware options:")
|
|
129
133
|
ctx.invoke(hardware, available=True, model=model, json=False)
|
|
130
134
|
sys.exit(1)
|
|
131
135
|
raise e
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import re
|
|
4
|
+
import json as json_lib
|
|
5
|
+
from typing import Any, Dict, List
|
|
6
|
+
|
|
7
|
+
import click
|
|
8
|
+
from tabulate import tabulate
|
|
9
|
+
|
|
10
|
+
from together import Together, omit
|
|
11
|
+
from together.types import HardwareListResponse
|
|
12
|
+
from together.lib.cli.api._utils import handle_api_errors
|
|
13
|
+
from together.lib.utils.serializer import datetime_serializer
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@click.command()
|
|
17
|
+
@click.option("--model", help="Filter hardware options by model")
|
|
18
|
+
@click.option("--json", is_flag=True, help="Print output in JSON format")
|
|
19
|
+
@click.option(
|
|
20
|
+
"--available",
|
|
21
|
+
is_flag=True,
|
|
22
|
+
help="Print only available hardware options (can only be used if model is passed in)",
|
|
23
|
+
)
|
|
24
|
+
@click.pass_obj
|
|
25
|
+
@handle_api_errors("Endpoints")
|
|
26
|
+
def hardware(client: Together, model: str | None, json: bool, available: bool) -> None:
|
|
27
|
+
"""List all available hardware options, optionally filtered by model."""
|
|
28
|
+
hardware_options = client.hardware.list(model=model or omit)
|
|
29
|
+
|
|
30
|
+
if available:
|
|
31
|
+
hardware_options.data = [
|
|
32
|
+
hardware
|
|
33
|
+
for hardware in hardware_options.data
|
|
34
|
+
if hardware.availability is not None and hardware.availability.status == "available"
|
|
35
|
+
]
|
|
36
|
+
if json:
|
|
37
|
+
json_output = [hardware.model_dump() for hardware in hardware_options.data]
|
|
38
|
+
click.echo(json_lib.dumps(json_output, default=datetime_serializer, indent=2))
|
|
39
|
+
else:
|
|
40
|
+
_format_hardware_options(hardware_options, show_availability=model is not None)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _format_hardware_options(hardware_options: HardwareListResponse, show_availability: bool = True) -> None:
|
|
44
|
+
display_list: List[Dict[str, Any]] = []
|
|
45
|
+
|
|
46
|
+
for hw in hardware_options.data:
|
|
47
|
+
data = {
|
|
48
|
+
"Hardware ID": hw.id,
|
|
49
|
+
"GPU": re.sub(r"\-\d+[a-zA-Z][a-zA-Z]$", "", hw.specs.gpu_type)
|
|
50
|
+
if hw.specs and hw.specs.gpu_type
|
|
51
|
+
else "N/A",
|
|
52
|
+
"Memory": f"{int(hw.specs.gpu_memory)}GB" if hw.specs else "N/A",
|
|
53
|
+
"Count": hw.specs.gpu_count if hw.specs else "N/A",
|
|
54
|
+
"Price (per minute)": (f"${hw.pricing.cents_per_minute / 100:.2f}" if hw.pricing else "N/A"),
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if show_availability:
|
|
58
|
+
status_display = "—"
|
|
59
|
+
if hw.availability:
|
|
60
|
+
status = hw.availability.status
|
|
61
|
+
# Add visual indicators for status
|
|
62
|
+
if status == "available":
|
|
63
|
+
status_display = click.style("✓ available", fg="green")
|
|
64
|
+
elif status == "unavailable":
|
|
65
|
+
status_display = click.style("✗ unavailable", fg="red")
|
|
66
|
+
else: # insufficient
|
|
67
|
+
status_display = click.style("⚠ insufficient", fg="yellow")
|
|
68
|
+
data["availability"] = status_display
|
|
69
|
+
display_list.append(data)
|
|
70
|
+
|
|
71
|
+
click.echo(tabulate(display_list, headers="keys", numalign="left"))
|
|
@@ -3,7 +3,7 @@ from typing import Literal, Optional
|
|
|
3
3
|
|
|
4
4
|
import click
|
|
5
5
|
|
|
6
|
-
from together import Together, omit
|
|
6
|
+
from together import Together, TogetherError, omit
|
|
7
7
|
from together._response import APIResponse as APIResponse
|
|
8
8
|
from together.lib.cli.api._utils import handle_api_errors
|
|
9
9
|
from together.types.model_upload_response import ModelUploadResponse
|
|
@@ -76,6 +76,10 @@ def upload(
|
|
|
76
76
|
if json:
|
|
77
77
|
click.echo(json_lib.dumps(response.model_dump(), indent=2))
|
|
78
78
|
else:
|
|
79
|
+
# If the model weights already exist, the api is returning 200 but with no data
|
|
80
|
+
if response.data is None: # type: ignore
|
|
81
|
+
raise TogetherError(response.message)
|
|
82
|
+
|
|
79
83
|
click.echo(f"Model upload job created successfully!")
|
|
80
84
|
if response.data.job_id:
|
|
81
85
|
click.echo(f"Job ID: {response.data.job_id}")
|
|
@@ -16,14 +16,6 @@ from .chat import (
|
|
|
16
16
|
ChatResourceWithStreamingResponse,
|
|
17
17
|
AsyncChatResourceWithStreamingResponse,
|
|
18
18
|
)
|
|
19
|
-
from .jobs import (
|
|
20
|
-
JobsResource,
|
|
21
|
-
AsyncJobsResource,
|
|
22
|
-
JobsResourceWithRawResponse,
|
|
23
|
-
AsyncJobsResourceWithRawResponse,
|
|
24
|
-
JobsResourceWithStreamingResponse,
|
|
25
|
-
AsyncJobsResourceWithStreamingResponse,
|
|
26
|
-
)
|
|
27
19
|
from .audio import (
|
|
28
20
|
AudioResource,
|
|
29
21
|
AsyncAudioResource,
|
|
@@ -204,12 +196,6 @@ __all__ = [
|
|
|
204
196
|
"AsyncModelsResourceWithRawResponse",
|
|
205
197
|
"ModelsResourceWithStreamingResponse",
|
|
206
198
|
"AsyncModelsResourceWithStreamingResponse",
|
|
207
|
-
"JobsResource",
|
|
208
|
-
"AsyncJobsResource",
|
|
209
|
-
"JobsResourceWithRawResponse",
|
|
210
|
-
"AsyncJobsResourceWithRawResponse",
|
|
211
|
-
"JobsResourceWithStreamingResponse",
|
|
212
|
-
"AsyncJobsResourceWithStreamingResponse",
|
|
213
199
|
"EndpointsResource",
|
|
214
200
|
"AsyncEndpointsResource",
|
|
215
201
|
"EndpointsResourceWithRawResponse",
|