aws / aws/sagemaker-python-sdk

AsyncPredictor fails if name is None, despite it being the default

Offen
#4,774 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
component: utility apis type: bug
Vorherrschende Sprache
Python
Sterne
2.3k
Forks
1.3k
Ø Merge
1 T. 22 Std.
Gemergte PRs (30 T.)
35

Beschreibung

**Describe the bug**

The `name` argument of the `AsyncPredictor.__init__.py` is optional with default=None

https://github.com/aws/sagemaker-python-sdk/blob/b535ed87ae55fd1020ea1d7c7c9cd7e3a068a683/src/sagemaker/predictor_async.py#L34

But calling `async_predictor.predict(data=...)` requires name to be non-null, i.e.` _upload_data_to_s3 ` calls `name_from_base` on `self.name` which fails if name is None (i.e. the default)

https://github.com/aws/sagemaker-python-sdk/blob/b535ed87ae55fd1020ea1d7c7c9cd7e3a068a683/src/sagemaker/predictor_async.py#L171

**To reproduce**

```
from sagemaker.predictor import Predictor
from sagemaker.predictor_async import AsyncPredictor

predictor = Predictor(endpoint_name=endpoint_name, sagemaker_session=sagemaker_session)
async_predictor = AsyncPredictor(predictor)

result = async_predictor.predict(data=request_body)
```
TypeError: 'NoneType' object is not subscriptable

**Expected behavior**
The name field of `AsyncPredictor` should have a "non-None" default (a guid, or the endpoint name?)

**System information**
A description of your system. Please provide:
- **SageMaker Python SDK version**: '2.224.2'
- **Framework name (eg. PyTorch) or algorithm (eg. KMeans)**: PyTorch / Triton (custom inference container)
- **Framework version**:
- **Python version**:
- **CPU or GPU**:
- **Custom Docker image (Y/N)**: Y

**Additional context**
Add any other context about the problem here.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne in src/sagemaker/predictor_async.py, insbesondere bei AsyncPredictor.__init__ und _upload_data_to_s3 nahe den referenzierten Zeilen. Reproduziere den Fehler mit AsyncPredictor(Predictor(...)) und predict(data=...), und ermittle einen geeigneten Nicht-None-Standardwert für name. Erledigt ist die Aufgabe, wenn der dokumentierte Standardpfad nicht mehr den gemeldeten TypeError auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
aws, python
Bereich
machine-learning
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.