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 (Amazon)

  • Type: Univariate time series forecasting
  • Framework: Chronos pipeline with T5 transformer architecture
  • Max forecast horizon: 64 steps (recommended)
  • Optimal use: Fast predictions for single time series
  • Default confidence intervals: Uses 10 samples for CI calculation
  • Strengths: Quick inference, good for short-term forecasting

toto-open-base-1.0 (Datadog)

  • Type: Multivariate time series forecasting
  • Framework: Zero-shot transformer model
  • Max forecast horizon: 336 steps (recommended)
  • Optimal use: Complex multivariate relationships, longer horizons
  • Default confidence intervals: Uses 256 samples for CI calculation
  • Strengths: Handles multiple correlated variables, robust uncertainty estimation

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

  • 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

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)

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

Roadmap

  • 🔄 Batch processing: Process multiple time series in a single request
  • 🎯 More models: Additional foundation models coming soon
  • ⚙️ Fine-tuning: Support for domain-specific model adaptation

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.2.tar.gz (7.2 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.2-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tsfm_client-0.2.2.tar.gz
  • Upload date:
  • Size: 7.2 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.2.tar.gz
Algorithm Hash digest
SHA256 a7a9c1ff01ff85f9719f0a67931e026e18313c5c65930ed8985155babf661ba9
MD5 1275a8e18748f3b71763800e83106a41
BLAKE2b-256 01ee382b71301e518d42278e0245eed405ef366c9468a8815c4e7df4d0f32bb0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tsfm_client-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 8.6 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1818bc1f93050e261cd55c08e03a6bc8627ac99f444367e5a80d3575a62db330
MD5 668e4482e09cb94639e6c1a580cbe154
BLAKE2b-256 368b39f3a2ffa8a1d6f9685d08c6d25fa52945cd6b0c282a870a1c316f78c32d

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