Skip to main content

General Forecast

Predictors on tabular and time series foundation models. One manifest, gf.yaml, runs the same predictor on your machine and hosted.

pip install generalforecast

A predictor from a CSV

In a directory with a CSV, gf init asks for the target, the model, the id column, the inputs and which rows are queries, then writes gf.yaml.

$ cd churn && gf init
Target       churned
Model        general-forecast/tabicl-v2-classifier
Id           customer_id
Inputs       spend, plan, signups
Queries      212 rows with no target

 Initialized predictor churn in ./gf.yaml

gf check resolves the schema against the context and pins the model in gf.lock.

$ gf check
    Resolved churn  classification, 3 inputs, 1,840 context rows, 212 query rows
      Locked gf.lock in 0.21s

gf eval scores the held-out rows.

$ gf eval
    Resolved churn  classification, 1,840 context rows, 212 query rows
   Predicted 212 rows in 0.19s

             accuracy   0.934
             log loss   0.187
             auroc      0.961

gf serve runs the predictor on this machine. The first run pulls the model's weights into ~/.cache/huggingface.

$ gf serve
     Pulling general-forecast/tabicl-v2-classifier  (1.2 GB) to ~/.cache/huggingface
     Loading general-forecast/tabicl-v2-classifier (cached)
    Compiled 12 programs in 6.8s
     Serving churn at http://127.0.0.1:8000
curl -s http://127.0.0.1:8000/v1/projects/local/predictors/churn/predict \
  -H 'content-type: application/json' \
  -d '{
    "api_version": "gf/v1",
    "project": "local",
    "request_id": "r-1",
    "resource": {"kind": "predictor", "name": "churn"},
    "payload": {"queries": [{"customer_id": 9001, "spend": 42.0, "plan": "pro", "signups": 3}]}
  }'

The same predictor from Python:

import generalforecast as gf
import pandas as pd

df = pd.read_csv("new_customers.csv")
scored = gf.Predictor("./churn").predict(df)  # columns: customer_id, label, p_0, p_1

gf push deploys it. gf predict and gf.Predictor("churn") then score rows against the hosted revision.

$ gf push
   Uploading churn revision 7  snapshot, 1,840 rows, 3.1 kB
    Deployed churn revision 7 to production in 41s

Estimators

Classifier, Regressor and Forecaster have the sklearn shape and take a catalog model. Weights pull on first use; download=False or GF_OFFLINE=1 refuses the download and names the gf model pull command instead.

import generalforecast as gf

clf = gf.Classifier(model="general-forecast/tabicl-v2-classifier")
clf.fit(X_context, y_context)
clf.predict_proba(X_queries)

fc = gf.Forecaster(model="general-forecast/chronos-2", horizon=7)
fc.fit(history)  # columns: date, sku, units
fc.forecast()  # quantiles 0.1, 0.5, 0.9 per sku per step

gf model list prints the catalog with each model's limits on context rows, queries and inputs.

Contributing

We welcome and value any contributions and collaborations. For more specific questions, please contact hello@generalforecast.com.

License

Licensed under the Apache License 2.0.

If you use General Forecast, please cite our work:

@misc{generalforecast2026,
    title={General Forecast: A unified high-throughput inference engine for structured data foundation models},
    author={Tejas Prabhune and Ayushi Batwara},
    year={2026},
    publisher={GitHub},
    howpublished={\url{https://github.com/generalforecast/gf}}
}

Metadata

Release files for generalforecast 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for generalforecast 0.1.8
File Interpreter ABI Platform
generalforecast-0.1.8-cp312-abi3-manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.28+ x86-64 Details
generalforecast-0.1.8-cp312-abi3-manylinux_2_28_aarch64.whl CPython 3.12 abi3 Linux glibc 2.28+ ARM64 Details
generalforecast-0.1.8-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details

Total release size: 67.3 MB

Release files / generalforecast-0.1.8-cp312-abi3-manylinux_2_28_x86_64.whl

Download URL generalforecast-0.1.8-cp312-abi3-manylinux_2_28_x86_64.whl
Size 24.0 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
8d8883ba78ab03d3a9c9802b9cdaddb37dce7e61d85ecfbaffc4da9d5f58002c
BLAKE2b-256 checksum
How to use checksums
3eb87cb9a974b7036c312a99e896fb3c49d752223d50a19655e141c28366c6e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Release files / generalforecast-0.1.8-cp312-abi3-manylinux_2_28_aarch64.whl

Download URL generalforecast-0.1.8-cp312-abi3-manylinux_2_28_aarch64.whl
Size 22.0 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
eafcdcbaee94eefa2d84d3b975c0a0ddb6dcfc610f591f535019223abfba4a95
BLAKE2b-256 checksum
How to use checksums
42e6c7cbe8136bd4f3333a50d781a678bd56d70760a3585e85f1b0694cd1df3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Release files / generalforecast-0.1.8-cp312-abi3-macosx_11_0_arm64.whl

Download URL generalforecast-0.1.8-cp312-abi3-macosx_11_0_arm64.whl
Size 21.3 MB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a7e119a3aec1c5e4a606c5db4d366d071c35840322daa2a38b4cdce25882fefe
BLAKE2b-256 checksum
How to use checksums
342cc19d8a602673fd551f59de51a44be224bd1830b1f60f5808a31a8f83fd87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

Security for generalforecast 0.1.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 3 files in this release have been uploaded with provenance metadata.

Select from 3 files

Attestation for generalforecast-0.1.8-cp312-abi3-manylinux_2_28_x86_64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page