Releases: Nixtla/nixtla
v0.5.1
What's Changed
- [DOCS] - Add a welcome/introduction page to the documentation by @marcopeix in #319
- [FIX] Doc fixes by @elephaint in #324
- Add capabilities notebooks by @marcopeix in #312
- [DOCS] Fix structure by @elephaint in #329
- [FIX] Mintlify prefixes, readme file dirs by @elephaint in #333
- [FIX] Doc fixes by @elephaint in #334
- fix: add pyreadr as dev dep by @AzulGarza in #336
- fix: update distributed to computing at scale by @AzulGarza in #337
- fix: add model to cross validation path call by @AzulGarza in #335
- v0.5.1 by @AzulGarza in #338
Full Changelog: v0.5.0...v0.5.1
v0.5.0
What's Changed
New features
- regenerate fern code to support pydantic v1 and v2 by @jmoralez in #308
- convert ids to categorical by @jmoralez in #313
- feat: restrict input forecast by @AzulGarza in #314
- call corresponding endpoint in cross_validation by @jmoralez in #300
- store x_cols as a variable instead of attribute by @jmoralez in #318
Docs
- fix: update min version and nixtla_client by @AzulGarza in #317
- [FEAT] - Tutorials update (Marco) by @marcopeix in #311
- [DOCS] Add tutorials by @elephaint in #306
- New versions of how-to-guides for computing at scale by @MMenchero in #302
- Updated tutorials by @MMenchero in #316
- [DOCS] New structure by @elephaint in #323
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
Python package name change
We're deprecating the nixtlats
package in favor of nixtla
. Please ensure you make the following changes:
- Install the nixtla package:
pip install nixtla
- Update your imports accordingly, e.g.
from nixtla import NixtlaClient
New features
- [FEAT] Process multiple partitions in parallel by @elephaint in #296
Enhancements
- Create CODE_OF_CONDUCT.md by @tracykteal in #292
- use fill_gaps in resample_dataframe by @jmoralez in #267
New Contributors
- @tracykteal made their first contribution in #292
- @elephaint made their first contribution in #296
Full Changelog: v0.3.0...v0.4.0
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