Releases: Nixtla/nixtla
v0.3.0
What's Changed
Changelog
0.3.0
🔄 Changes & Deprecations
-
Deprecation of
TimeGPT
Class:
In an effort to streamline our API and align with industry best practices, we're deprecating theTimeGPT
class in favor of the newNixtlaClient
class. This change is designed to provide a more intuitive and powerful interface for interacting with our services.Before:
from nixtlats import TimeGPT # Initialize the TimeGPT model timegpt = TimeGPT()
After:
from nixtlats import NixtlaClient # Initialize the NixtlaClient nixtla = NixtlaClient()
-
Renaming of Configuration Parameters:
To enhance clarity and consistency with other SDKs, we've renamed thetoken
parameter toapi_key
andenvironment
tobase_url
.Before:
timegpt = TimeGPT(token='YOUR_TOKEN', environment='YOUR_ENVIRONMENT_URL')
After:
nixtla = NixtlaClient(api_key='YOUR_API_KEY', base_url='YOUR_BASE_URL')
-
Introduction of
NixtlaClient.validate_api_key
:
Replacing the previousNixtlaClient.validate_token
method, this update aligns with the new authentication parameter naming and offers a straightforward way to validate API keys.Before:
timegpt.validate_token()
After:
nixtla.validate_api_key()
-
Environment Variable Changes:
In line with the renaming of parameters, we've updated the environment variables to set up the API key and base URL. TheTIMEGPT_TOKEN
is now replaced withNIXTLA_API_KEY
, and we've introducedNIXTLA_BASE_URL
for custom API URLs. -
Backward Compatibility & Future Warnings:
These changes are designed to be backward compatible. However, users can expect to see future warnings when utilizing deprecated features, such as theTimeGPT
class.
0.2.0 (Previously Released)
🔄 Changes & Deprecations
- Renaming of Fine-Tuning Parameters:
Thefinetune_steps
andfinetune_loss
parameters were renamed tofewshot_steps
andfewshot_loss
. Additionally, the model parameter values changed fromshort-horizon
andlong-horizon
totimegpt-1
andtimegpt-1-long-horizon
, with an emphasis on preserving backward compatibility. In version 0.3.0, these changes are deprecated in favor of reverting to the original parameter names and values, ensuring a seamless transition for existing users.
Features
- feat: update docs in #268
- feat: add moirai benchmark in #271
- feat: replace token by api_key and environment by base_url in #275
- feat: replace TimeGPT class by NixtlaClient class in #276
Fixes
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
Features
- feat: SDK support Fern Regeneration -- March 22, 2024 in #261
- feat: replace finetune with fewshot in #262
- feat: use new endpoints and rename models in #263
Documentation
- docs: add azure automl experiment in #246
- docs: add finetuning loss function tutorial and link it to finetuning tutorial in #239
- docs: tutorial on long-horizon forecasting in #249
- docs: add new faqs section in #250
- docs: add new sections to documentation in #255
- docs: add amazon chronos benchmark in #257
- docs: update README.md in #258
Fixes
- chore: add pre-commit in #252
- chore: collapse experiment results in pr in #247
- fix: all transform_inputs to handle cases where index column is set as time_col in #254
- hotfix: ignore precommit fern in #260
New Contributors
- @marcopeix made their first contribution in #239
- @MMenchero made their first contribution in #250
- @Yibei990826 made their first contribution in #254
- @mergenthaler made their first contribution in #258
Full Changelog: v0.1.21...v0.2.0
v0.1.21
v0.1.20
What's Changed
Features
Bug Fixes
- chore: fern-ignore changelog file in #206
- chore: add summary results prophet experiment in #210
- set upper bound on pandas in #225
New Contributors
Full Changelog: v0.1.19...v0.1.20
v0.1.19
v0.1.18
What's Changed
🚀 Feature Enhancements
Forecast Using Diverse Models 🌐
Release of new forecasting methods. Among the updates, we've unveiled the timegpt-1-long-horizon
model, crafted specifically for long-term forecasts that span multiple seasonalities. To use it, simply specify the model in your methods like so:
from nixtlats import TimeGPT
# Initialize the TimeGPT model
timegpt = TimeGPT()
# Generate forecasts using the long-horizon model
fcst_df = timegpt.forecast(..., model='timegpt-1-long-horizon')
# Perform cross-validation with the long-horizon model
cv_df = timegpt.cross_validation(..., model='timegpt-1-long-horizon')
# Detect anomalies with the long-horizon model
anomalies_df = timegpt.detect_anomalies(..., model='timegpt-1-long-horizon')
Choose between timegpt-1
for the first version of TimeGPT
or timegpt-1-long-horizon
for long horizon tasks..
Cross-Validation Methodology 📊
You can dive deeper into your forecasting pipelines with the new cross_validation
feature. This method enables you to validate forecasts across different windows efficiently:
# Set up cross-validation with a custom horizon, number of windows, and step size
cv_df = timegpt.cross_validation(df, h=35, n_windows=5, step_size=5)
This will generate 5 distinct forecast sets, each with a horizon of 35, stepping through your data every 5 timestamps.
Retry Behavior for Robust API Calls 🔁
The new retry mechanism allows the making of more robust API calls (preventing them from crashing with large-scale tasks).
max_retries
: Number of max retries for an API call.retry_interval
: Pause between retries.max_wait_time
: Total duration of retries.
timegpt = TimeGPT(max_retries=10, retry_interval=5, max_wait_time=360)
Token Inference Made Simple 🔑
The TimeGPT
class now automatically infers your TIMEGPT_TOKEN
using os.environ.get('TIMEGPT_TOKEN')
, streamlining your setup:
# No more manual token handling - TimeGPT has got you covered
timegpt = TimeGPT()
For more information visit our FAQS section.
Introducing the FAQ Section 📘
Questions? We've got answers! Our new FAQ section tackles the most common inquiries, from integrating exogenous variables to configuring authorization tokens and understanding long-horizon forecasts.
Specific Changelog
New Features:
- Add reference to pandas frequencies in PR #126
- Add automatic evaluation workflow in PR #140
- Retry behavior if api call fails in PR #146
- Add support for new models (long horizon) in PR #156
- Add cross-validation method in PR #159
- Test correct import in CI in PR #163
- Add colab badges to docs in PR #165
Fixes:
- Add date features to fernignore in PR #127
- Add new order to docs hosted in readme.com in PR #130
- Refactor to expose endpoints in PR #132
- Add tests for custom endpoint and abstract call api method in PR #143
- Increase max wait time to catch ReadTimeout exception in PR #147
- Fern-ignore new files in PR #149
- Move docs-scripts to action_files in PR #151
- Filter API errors in PR #155
Documentation and Miscellaneous:
- Add CONTRIBUTING.md and mint.json in PR #135
- Add docs scripts in PR #136
- Checkout docs repo instead of using submodule in PR #154
- Redirect to mintlify docs in PR #161
- Refactor: default token to os.environ.get and remove os.environ in PR #164
- Add faq docs in PR #166
New Contributors
- @hahnbeelee made their first contribution in #135
- @jmoralez made their first contribution in #136
Full Changelog: v0.1.17...v0.1.18
v0.1.17
What's Changed
- [!FIX] change plotly to matplotlib in #119
- [FEAT] Deploy docs to README in #120
- [FIX] Rename deploy readme action in #121
- [FEAT] Improve readme docs in #122
- [FEAT] Update docs in #123
- [FIX] Add end of callout block in #124
- [FEAT] Add possibility to use index to infer freq in #125
Full Changelog: v0.1.16...v0.1.17