Welt Python SDK
From a DataFrame to a prediction. Use familiar Classifier and Regressor
estimators backed by durable predictors in your private Welt workspace.
Install welt-client, import welt. Python 3.11–3.13.
Start here · Guides · Reference · Models and limits
Install
python -m pip install 'welt-client @ https://github.com/ergodic-ai/welt-python/releases/download/v0.7.0/welt_client-0.7.0-py3-none-any.whl'
Create a workspace API key at Welt with Allow writes,
fits and predictions enabled. Configure WELT_API_KEY through local secret
configuration or a hidden getpass prompt. Keep the secret out of source, notebooks,
logs and shell history. SDK 0.7 defaults to https://welt.ergodic.dev; an explicit
base_url overrides WELT_BASE_URL, which overrides that default. Local development
must explicitly select localhost.
Predict
import numpy as np
import pandas as pd
from welt import Classifier
rng = np.random.default_rng(9)
values = rng.normal(size=(160, 4))
train = pd.DataFrame(values[:128], columns=["a", "b", "c", "d"])
train["label"] = np.where(values[:128, 0] + 0.5 * values[:128, 1] > 0,
"positive", "negative")
query = pd.DataFrame(values[128:], columns=["a", "b", "c", "d"])
model = Classifier(model="tabicl-v2", random_state=9)
model.fit(train, target="label")
predictions = model.predict(query)
print(predictions.shape) # (32,)
reopened = Classifier.from_predictor(model.predictor_id_)
repeat = reopened.predict(query)
This synthetic recipe returns one label per query row, in order; actual labels
come from the hosted model. It is not an accuracy benchmark. Use Regressor
explicitly for numeric targets; the complete regression example
returns one finite target-unit point per row. fit uploads the table and waits for
remote preparation; predict executes remotely. Created datasets/predictors remain
retained. Reopening uses the pinned identity without another fit or training upload.
SDK 0.7 adds explicit DataFrame target convenience and hosted credential guidance
while preserving fit(X, y), sync/async resources, durable jobs, research downloads
and native causal objects. Available hosted tasks and workers follow the service
catalogue. Bounded TabICLv2, Kumo Medium, TabDPT1.3 and Mitra-v2 classification and
regression previews are separately qualified: 500 training rows, 20 features,
100 query rows, and 10 classes for classification. Other tasks need separate
qualification. File reads load into memory. Held resumable CSV and large batch
APIs are excluded.
A local wait timeout leaves server work running. Reconnect by its job ID rather than fitting again; recovery describes typed failures, authentication, cancellation and retry behavior. Probabilities are not calibrated coverage. ArrowFM, CDFM and AVICI discovery preserve native graph and score semantics; causal conversion is restricted to declared native DAGs and the separately approved Ergodic co-release artifact. Public Ergodic distribution and the complete all-model catalogue remain gated.
Examples and development
Runnable script · Jupyter notebooks · Research datasets · Contributing
uv sync --frozen
uv run --frozen pytest -q
uv build
Controlled synthetic transport tests neither contact the hosted service nor execute foundation models. Notebook sources have cleared outputs; clean-wheel execution and bounded authorized live acceptance are separate evidence. CI requires no private backend, credentials or checkpoints.
Apache 2.0: see LICENSE. Model weights and hosted service are separate from this SDK licence.
Metadata
Release files for welt-client 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| welt_client-0.7.0.tar.gz | 142.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| welt_client-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 166.1 kB
Release files / welt_client-0.7.0.tar.gz
| Download URL | welt_client-0.7.0.tar.gz |
|---|---|
| Size | 142.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
70725da427d0700536e0fdd98354e8e850a8dea53e26ffa8af1a3571728f1bb7
|
|
BLAKE2b-256 checksum How to use checksums |
b1155c37c8b51fdcf227133dc6d1d8ff261eac9c477c29ff7a0d57777192b7ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.8
|
Release files / welt_client-0.7.0-py3-none-any.whl
| Download URL | welt_client-0.7.0-py3-none-any.whl |
|---|---|
| Size | 23.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
49f54c78668daff6817870bcd776cfa022c31f95c53246f865c2c8268131c64f
|
|
BLAKE2b-256 checksum How to use checksums |
8af6c1ce683747a9deace6bdcb42d2b4a07dda0343f1865edb13bb5ae2fa7473
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.8
|