Skip to content

Return an endpoint from CloudPredictor.deploy() - #290

Merged
shchur merged 12 commits into
masterfrom
deploy-returns-endpoint
Oct 7, 2026
Merged

shchur merged 12 commits into
masterfrom
deploy-returns-endpoint

Conversation

@shchur

@shchur shchur commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

CloudPredictor.deploy() now returns an endpoint handle, just like FoundationModel.deploy(), so FM and CP use the same real-time workflow:

endpoint = cloud_predictor.deploy()
endpoint.predict(test_data)
endpoint.delete_endpoint()
  • TabularCloudPredictor.deploy() returns a TabularEndpoint, TimeSeriesCloudPredictor.deploy() returns a TimeSeriesEndpoint, and MultiModalCloudPredictor.deploy() returns the new MultiModalEndpoint.
  • The endpoint classes now share a small Endpoint base class with endpoint_name and delete_endpoint().
  • TabularEndpoint: train_data and label are now optional. FM endpoints need both; trained-predictor endpoints take neither. Passing just one of them raises an error. image_column (trained predictors with an image feature) goes through **kwargs, so FM signatures don't change.
  • TimeSeriesEndpoint: prediction_length, target, id_column, timestamp_column now default to None and are only sent when set. FM behavior doesn't change, because the FM serve script has the same defaults. CP endpoints keep using the fit-time id_column/timestamp_column (before, the client-side defaults would have overridden them).
  • predict_real_time, predict_proba_real_time, attach_endpoint, detach_endpoint, and cleanup_deployment still work, but emit a FutureWarning pointing to the returned endpoint.
  • SagemakerBackend.deploy() no longer asserts that no endpoint is attached, so the same predictor or FM can deploy more than once (for example, after endpoint.delete_endpoint()).
  • README, landing page, and the tabular/timeseries predictor tutorials now use the returned endpoint.

Tests

  • Integration tests now use the returned endpoint. The lifecycle tests rebuild the endpoint from its name and check that the deprecated predict_real_time still works and warns.
  • New mocked unit tests cover:
    • the endpoint type returned for each predictor
    • the deprecation warnings
    • CP-style TabularEndpoint requests
    • TimeSeriesEndpoint sending only the kwargs that are set

No tests were run locally; CI will validate.

shchur added 3 commits October 6, 2026 16:43
CloudPredictor.deploy() now returns a TabularEndpoint / TimeSeriesEndpoint / MultiModalEndpoint, matching
FoundationModel.deploy(). The predictor-level endpoint methods (predict_real_time, predict_proba_real_time,
attach_endpoint, detach_endpoint, cleanup_deployment) are deprecated with a FutureWarning.
The serve script now raises if a request sets prediction_length, quantile_levels, or target to a value different
from the one the predictor was fit with, instead of silently ignoring it. TimeSeriesEndpoint docstrings state the
effective defaults for both endpoint types.
The serve scripts always pass as_pandas=True, so forwarding it raised a duplicate-keyword TypeError. Matches the
normalization the deprecated predict_real_time did.
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown

Job PR-290-3ed9e84 is done.
Docs are uploaded to https://d12sc05jpx1wj5.cloudfront.net/PR-290/3ed9e84/index.html

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown

Job PR-290-e97f91a is done.
Docs are uploaded to https://d12sc05jpx1wj5.cloudfront.net/PR-290/e97f91a/index.html

@shchur
shchur enabled auto-merge (squash) October 7, 2026 08:49
@shchur
shchur merged commit 2c0aba2 into master Oct 7, 2026
8 checks passed
@shchur
shchur deleted the deploy-returns-endpoint branch October 7, 2026 08:54
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown

Job PR-290-d65b901 is done.
Docs are uploaded to https://d12sc05jpx1wj5.cloudfront.net/PR-290/d65b901/index.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant