together 2.0.0a16__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.0a16 → together-2.0.0a18}/CHANGELOG.md +50 -0
- {together-2.0.0a16 → together-2.0.0a18}/PKG-INFO +11 -14
- {together-2.0.0a16 → together-2.0.0a18}/README.md +10 -13
- {together-2.0.0a16 → together-2.0.0a18}/api.md +85 -17
- {together-2.0.0a16 → together-2.0.0a18}/pyproject.toml +1 -1
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_base_client.py +5 -2
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_client.py +1 -39
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_compat.py +3 -3
- together-2.0.0a18/src/together/_utils/_json.py +35 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_version.py +1 -1
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/create.py +14 -8
- together-2.0.0a18/src/together/lib/cli/api/endpoints/hardware.py +71 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/models/list.py +18 -14
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/models/upload.py +5 -1
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/__init__.py +0 -14
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/beta/__init__.py +14 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/beta/beta.py +32 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/beta/clusters/clusters.py +12 -12
- {together-2.0.0a16 → 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.0a16 → together-2.0.0a18}/src/together/resources/chat/completions.py +10 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/endpoints.py +2 -2
- together-2.0.0a18/src/together/resources/models/__init__.py +33 -0
- {together-2.0.0a16/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.0a16 → together-2.0.0a18}/src/together/types/__init__.py +0 -2
- {together-2.0.0a16 → 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.0a16 → together-2.0.0a18}/src/together/types/chat/completion_create_params.py +11 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/endpoint_create_params.py +1 -1
- together-2.0.0a18/src/together/types/models/__init__.py +5 -0
- together-2.0.0a16/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.0a16 → 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.0a16/.release-please-manifest.json +0 -3
- together-2.0.0a16/src/together/lib/cli/api/endpoints/hardware.py +0 -40
- together-2.0.0a16/src/together/resources/jobs.py +0 -214
- together-2.0.0a16/src/together/types/job_list_response.py +0 -47
- together-2.0.0a16/tests/api_resources/test_jobs.py +0 -150
- {together-2.0.0a16 → together-2.0.0a18}/.gitignore +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/CONTRIBUTING.md +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/LICENSE +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/SECURITY.md +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/bin/check-release-environment +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/bin/publish-pypi +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/.keep +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/coqa-small.jsonl +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/coqa.jsonl +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/embedding.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/file-upload.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/fine_tuning.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/image.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/models.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/streaming.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/examples/tokenize_data.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/release-please-config.json +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/requirements-dev.lock +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_constants.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_exceptions.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_models.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_qs.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_resource.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_streaming.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_types.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_compat.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_datetime_parse.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_logs.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_proxy.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_reflection.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_resources_proxy.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_streams.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_sync.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_transform.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_typing.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/_utils/_utils.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/constants.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/error.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/.keep +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/_google_colab.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/_utils.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/create.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/delete.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/get_credentials.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/list.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/list_regions.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/retrieve.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/create.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/delete.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/list.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/storage/retrieve.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/beta/clusters/update.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/availability_zones.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/delete.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/list.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/retrieve.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/start.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/stop.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/endpoints/update.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/evals/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/evals/create.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/evals/list.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/evals/retrieve.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/evals/status.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/files/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/files/check.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/files/delete.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/files/list.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/files/retrieve.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/files/retrieve_content.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/files/upload.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/cancel.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/create.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/delete.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/download.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/list.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/list_checkpoints.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/list_events.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/fine_tuning/retrieve.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/cli/api/models/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/constants.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/resources/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/resources/files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/resources/fine_tuning.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/types/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/types/error.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/types/fine_tuning.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/utils/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/utils/_log.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/utils/files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/utils/serializer.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/lib/utils/tools.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/py.typed +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/audio/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/audio/audio.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/audio/speech.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/audio/transcriptions.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/audio/translations.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/audio/voices.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/batches.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/beta/clusters/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/chat/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/chat/chat.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/code_interpreter/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/code_interpreter/code_interpreter.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/code_interpreter/sessions.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/completions.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/embeddings.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/evals.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/fine_tuning.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/hardware.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/images.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/rerank.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/resources/videos.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/audio/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/audio/speech_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/audio/transcription_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/audio/transcription_create_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/audio/translation_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/audio/translation_create_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/audio/voice_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/audio_speech_stream_chunk.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/autoscaling.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/autoscaling_param.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/batch_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/batch_create_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/batch_job.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/batch_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/cluster.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/cluster_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/cluster_delete_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/cluster_list_regions_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/cluster_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/cluster_update_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/clusters/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/clusters/cluster_storage.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/clusters/storage_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/clusters/storage_delete_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/clusters/storage_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/beta/clusters/storage_update_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/chat/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/chat/chat_completion.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/chat/chat_completion_chunk.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/chat/chat_completion_structured_message_image_url_param.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/chat/chat_completion_structured_message_text_param.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/chat/chat_completion_structured_message_video_url_param.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/chat/chat_completion_usage.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/chat/chat_completion_warning.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/chat_completions.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/code_interpreter/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/code_interpreter/session_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/code_interpreter_execute_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/completion.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/completion_chunk.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/completion_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/dedicated_endpoint.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/embedding.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/embedding_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/endpoint_list_avzones_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/endpoint_list_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/endpoint_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/endpoint_update_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/endpoints.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/eval_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/eval_create_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/eval_list_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/eval_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/eval_status_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/evaluation_job.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/execute_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/file_delete_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/file_list.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/file_purpose.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/file_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/file_type.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/fine_tuning_cancel_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/fine_tuning_content_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/fine_tuning_delete_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/fine_tuning_delete_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/fine_tuning_estimate_price_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/fine_tuning_estimate_price_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/fine_tuning_list_checkpoints_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/fine_tuning_list_events_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/fine_tuning_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/finetune.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/finetune_event.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/finetune_event_type.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/finetune_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/hardware_list_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/hardware_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/image_data_b64.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/image_data_url.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/image_file.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/image_generate_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/log_probs.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/model_list_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/model_list_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/model_object.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/model_upload_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/model_upload_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/models.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/rerank_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/rerank_create_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/tool_choice.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/tool_choice_param.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/tools_param.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/training_method_dpo.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/training_method_sft.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/video_create_params.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/src/together/types/video_job.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/audio/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/audio/test_speech.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/audio/test_transcriptions.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/audio/test_translations.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/audio/test_voices.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/beta/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/beta/clusters/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/beta/clusters/test_storage.py +0 -0
- {together-2.0.0a16/tests/api_resources/chat → together-2.0.0a18/tests/api_resources/beta/jig}/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/beta/test_clusters.py +0 -0
- {together-2.0.0a16/tests/api_resources/code_interpreter → together-2.0.0a18/tests/api_resources/chat}/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/code_interpreter/test_sessions.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_batches.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_code_interpreter.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_completions.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_embeddings.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_endpoints.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_evals.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_fine_tuning.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_hardware.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_images.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_models.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_rerank.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/api_resources/test_videos.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/conftest.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/integration/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/integration/constants.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/integration/resources/__init__.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/integration/resources/generate_hyperparameters.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/integration/resources/test_completion.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/integration/resources/test_completion_stream.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/integration/resources/test_files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/sample_file.txt +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_cli_utils.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_client.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_deepcopy.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_extract_files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_files.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_models.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_qs.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_required_args.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_response.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_streaming.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_transform.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_utils/test_datetime_parse.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_utils/test_proxy.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/test_utils/test_typing.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_async_client.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_client.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_code_interpreter.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_files_checks.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_files_resource.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_fine_tuning_resources.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_imports.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_multipart_upload_manager.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_preference_openai.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/unit/test_video_url.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/tests/utils.py +0 -0
- {together-2.0.0a16 → together-2.0.0a18}/uv.lock +0 -0
|
@@ -1,5 +1,55 @@
|
|
|
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
|
+
|
|
38
|
+
## 2.0.0-alpha.17 (2026-01-21)
|
|
39
|
+
|
|
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)
|
|
41
|
+
|
|
42
|
+
### Features
|
|
43
|
+
|
|
44
|
+
* **cli:** add b200 and h200 GPU options for endpoint creation ([#218](https://github.com/togethercomputer/together-py/issues/218)) ([b514912](https://github.com/togethercomputer/together-py/commit/b514912a281922fefbf8a9f62b936ed1de243718))
|
|
45
|
+
* Improve usage of models list cli command ([#216](https://github.com/togethercomputer/together-py/issues/216)) ([430e6c1](https://github.com/togethercomputer/together-py/commit/430e6c1e030749be474f020b677d91014ba4482c))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Chores
|
|
49
|
+
|
|
50
|
+
* Deprecate CLI usage for endpoints create flag --no-promopt-cache ([#219](https://github.com/togethercomputer/together-py/issues/219)) ([55e9700](https://github.com/togethercomputer/together-py/commit/55e9700187b42f8baff6f567a3a657b46577ed88))
|
|
51
|
+
* Mark disable_prompt_cache as deprecated for endpoint creation ([6a629b2](https://github.com/togethercomputer/together-py/commit/6a629b29e53b4374503d30ca75456184ef313b67))
|
|
52
|
+
|
|
3
53
|
## 2.0.0-alpha.16 (2026-01-18)
|
|
4
54
|
|
|
5
55
|
Full Changelog: [v2.0.0-alpha.15...v2.0.0-alpha.16](https://github.com/togethercomputer/together-py/compare/v2.0.0-alpha.15...v2.0.0-alpha.16)
|
|
@@ -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
|
|
@@ -31,7 +30,7 @@ from .hardware import hardware
|
|
|
31
30
|
)
|
|
32
31
|
@click.option(
|
|
33
32
|
"--gpu",
|
|
34
|
-
type=click.Choice(["h100", "a100", "l40", "l40s", "rtx-6000"]),
|
|
33
|
+
type=click.Choice(["b200", "h200", "h100", "a100", "l40", "l40s", "rtx-6000"]),
|
|
35
34
|
required=True,
|
|
36
35
|
help="GPU type to use for inference",
|
|
37
36
|
)
|
|
@@ -48,7 +47,7 @@ from .hardware import hardware
|
|
|
48
47
|
@click.option(
|
|
49
48
|
"--no-prompt-cache",
|
|
50
49
|
is_flag=True,
|
|
51
|
-
help="
|
|
50
|
+
help="Deprecated and no longer has any effect.",
|
|
52
51
|
)
|
|
53
52
|
@click.option(
|
|
54
53
|
"--no-speculative-decoding",
|
|
@@ -95,6 +94,8 @@ def create(
|
|
|
95
94
|
client: Together = ctx.obj
|
|
96
95
|
# Map GPU types to their full hardware ID names
|
|
97
96
|
gpu_map = {
|
|
97
|
+
"b200": "nvidia_b200_180gb_sxm",
|
|
98
|
+
"h200": "nvidia_h200_140gb_sxm",
|
|
98
99
|
"h100": "nvidia_h100_80gb_sxm",
|
|
99
100
|
"a100": "nvidia_a100_80gb_pcie" if gpu_count == 1 else "nvidia_a100_80gb_sxm",
|
|
100
101
|
"l40": "nvidia_l40",
|
|
@@ -102,6 +103,9 @@ def create(
|
|
|
102
103
|
"rtx-6000": "nvidia_rtx_6000_ada",
|
|
103
104
|
}
|
|
104
105
|
|
|
106
|
+
if no_prompt_cache is not None:
|
|
107
|
+
click.echo("Warning: --no-prompt-cache is deprecated and no longer has any effect.", err=True)
|
|
108
|
+
|
|
105
109
|
hardware_id = f"{gpu_count}x_{gpu_map[gpu]}"
|
|
106
110
|
|
|
107
111
|
try:
|
|
@@ -113,15 +117,19 @@ def create(
|
|
|
113
117
|
"max_replicas": max_replicas,
|
|
114
118
|
},
|
|
115
119
|
display_name=display_name or omit,
|
|
116
|
-
disable_prompt_cache=no_prompt_cache or omit,
|
|
117
120
|
disable_speculative_decoding=no_speculative_decoding or omit,
|
|
118
121
|
state="STOPPED" if no_auto_start else "STARTED",
|
|
119
122
|
inactive_timeout=inactive_timeout,
|
|
120
123
|
extra_query={"availability_zone": availability_zone or omit},
|
|
121
124
|
)
|
|
122
125
|
except APIError as e:
|
|
123
|
-
if
|
|
124
|
-
|
|
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:")
|
|
125
133
|
ctx.invoke(hardware, available=True, model=model, json=False)
|
|
126
134
|
sys.exit(1)
|
|
127
135
|
raise e
|
|
@@ -134,8 +142,6 @@ def create(
|
|
|
134
142
|
click.echo(f" Hardware: {hardware_id}", err=True)
|
|
135
143
|
if display_name:
|
|
136
144
|
click.echo(f" Display name: {display_name}", err=True)
|
|
137
|
-
if no_prompt_cache:
|
|
138
|
-
click.echo(" Prompt cache: disabled", err=True)
|
|
139
145
|
if no_speculative_decoding:
|
|
140
146
|
click.echo(" Speculative decoding: disabled", err=True)
|
|
141
147
|
if no_auto_start:
|
|
@@ -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"))
|