Skip to main content

Python client for TSFM time series forecasting with numpy support, confidence intervals, and multivariate predictions

Project description

TSFM Python Client

A Python client library for the TSFM (Time Series Foundation Model) Inference Platform. Supports both univariate and multivariate time series forecasting with confidence intervals.

Installation

pip install tsfm-client

Quick Start

import os
import numpy as np
from tsfm_client import TSFMClient

# Set your API key
os.environ['TSFM_API_KEY'] = 'your_api_key_here'

# Create client
client = TSFMClient(api_key=os.getenv('TSFM_API_KEY'))

# Make prediction with confidence intervals
data = np.array([10, 12, 13, 15, 17, 16, 18, 20, 22, 25])
response = client.predict(
    data=data,
    forecast_horizon=5,
    num_samples=100,
    confidence_intervals=[0.8, 0.95]
)

print(f"Forecast: {response.forecast}")
print(f"80% CI: {response.confidence_intervals['80%']}")
print(f"95% CI: {response.confidence_intervals['95%']}")

client.close()

Supported Models

  • chronos-t5-small: Fast univariate time series forecasting model
  • toto-open-base-1.0: Advanced multivariate time series forecasting model with confidence intervals

Supported Input Formats

The client accepts multiple data formats for maximum flexibility:

  • Numpy arrays: np.array([1, 2, 3]) (most efficient)
  • Python lists: [1, 2, 3] or [[1, 10], [2, 11]] (multivariate)
  • Pandas Series: pd.Series([1, 2, 3])
  • Pandas DataFrame: For multivariate data

Features

  • Native numpy support: No conversions needed, maximum efficiency
  • Multiple confidence intervals: Get 80%, 90%, 95% intervals in single request
  • Multivariate forecasting: Predict with multiple related time series
  • Flexible sampling: Control uncertainty estimation with num_samples
  • Error handling: Comprehensive exception handling for API errors
  • Context manager: Automatic resource cleanup

Advanced Usage

Multivariate Prediction

# 2D numpy array: time steps × variables
multivariate_data = np.array([[20, 65], [21, 63], [22, 61], [19, 67]])
response = client.predict(
    model_name='toto-open-base-1.0',
    data=multivariate_data,
    forecast_horizon=10,
    confidence_intervals=[0.8, 0.9, 0.95],
    num_samples=100
)

Context Manager

with TSFMClient() as client:
    response = client.predict(data=np.array([1, 2, 3, 4, 5]))
    print(response.forecast)

Error Handling

from tsfm_client import TSFMClient, AuthenticationError, APIError

try:
    client = TSFMClient()
    response = client.predict(data=np.array([1, 2, 3]))
except AuthenticationError:
    print("Invalid API key")
except APIError as e:
    print(f"API error: {e}")

Examples

For comprehensive examples including visualization and model comparison, see the demo notebook.

Requirements

  • Python >= 3.10
  • Valid TSFM API key
  • Dependencies: numpy, pandas, httpx, pydantic

API Reference

TSFMClient.predict()

predict(
    model_name: str = "chronos-t5-small",
    data: Union[np.ndarray, pd.Series, List[float], List[List[float]]],
    forecast_horizon: int = 12,
    confidence_intervals: Optional[List[float]] = None,
    num_samples: Optional[int] = None,
    time_interval_seconds: Optional[int] = None
) -> PredictionResponse

Parameters:

  • model_name: Model to use ('chronos-t5-small' or 'toto-open-base-1.0')
  • data: Time series data (1D for univariate, 2D for multivariate)
  • forecast_horizon: Number of steps to predict
  • confidence_intervals: List of confidence levels (e.g., [0.8, 0.95])
  • num_samples: Number of samples for uncertainty estimation
  • time_interval_seconds: Time between data points in seconds

Returns:

  • PredictionResponse with forecast, confidence intervals, and metadata

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsfm_client-0.2.1.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tsfm_client-0.2.1-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file tsfm_client-0.2.1.tar.gz.

File metadata

  • Download URL: tsfm_client-0.2.1.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.13 Darwin/24.5.0

File hashes

Hashes for tsfm_client-0.2.1.tar.gz
Algorithm Hash digest
SHA256 8b27bd54b719750ea666cc2def21d8d4c77eba542ab87cffdb2d1454610deb37
MD5 982a0e44925651fe293e288beb2df616
BLAKE2b-256 46eaa07a77c5a465436ca8a881ee3ad06383f04b0d44bf66e496dd701d989b3d

See more details on using hashes here.

File details

Details for the file tsfm_client-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: tsfm_client-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.11.13 Darwin/24.5.0

File hashes

Hashes for tsfm_client-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ddf71b81f5c2effb08cc15dcc98a8852b54bc95ecff3180c4d8a4519d2469add
MD5 176754d53490c98893ae8d7160e4deea
BLAKE2b-256 e9ceef176a3da99d4a304f4d4f9094aefcdcab1e10b75dde1ae36d645318a27f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page