Announcing the release of Spice.ai v0.4-alpha
Categories:
We are excited to announce the release of Spice.ai v0.4-alpha! 🏄♂️
Highlights include support for authoring reward functions in a code file, the ability to specify the time of recommendation, and ingestion support for transaction/correlation ids. Authoring reward functions in a code file is a significant improvement to the developer experience than specifying functions inline in the YAML manifest, and we are looking forward to your feedback on it!
If you are new to Spice.ai, check out the getting started guide and star spiceai/spiceai on GitHub.
Highlights in v0.4-alpha
Upgrade using spice upgrade
The spice upgrade
command was added in the v0.3.1-alpha release, so you can now upgrade from v0.3.1 to v0.4 by simply running spice upgrade
in your terminal. Special thanks to community member @Adm28 for contributing this feature!
Reward Function Files
In addition to defining reward code inline, it is now possible to author reward code in functions in a separate Python file.
The reward function file path is defined by the reward_funcs
property.
A function defined in the code file is mapped to an action by authoring its name in the with
property of the relevant reward.
Example:
training:
reward_funcs: my_reward.py
rewards:
- reward: buy
with: buy_reward
- reward: sell
with: sell_reward
- reward: hold
with: hold_reward
Learn more in the documentation: docs.spiceai.org/concepts/rewards/external
Time Categories
Spice.ai can now learn from cyclical patterns, such as daily, weekly, or monthly cycles.
To enable automatic cyclical field generation from the observation time, specify one or more time categories in the pod manifest, such as a month
or weekday
in the time
section.
For example, by specifying month
the Spice.ai engine automatically creates a field in the AI engine data stream called time_month_{month}
with the value calculated from the month of which that timestamp relates.
Example:
time:
categories:
- month
- dayofweek
Supported category values are:
month
dayofmonth
dayofweek
hour
Learn more in the documentation: docs.spiceai.org/reference/pod/#time
Get recommendation for a specific time
It is now possible to specify the time of recommendations fetched from the /recommendation
API.
Valid times are from pod epoch_time
to epoch_time + period
.
Previously the API only supported recommendations based on the time of the last ingested observation.
Requests are made in the following format: GET http://localhost:8000/api/v0.1/pods/{pod}/recommendation?time={unix_timestamp}
An example for quickstarts/trader
GET http://localhost:8000/api/v0.1/pods/trader/recommendation?time=1605729600
Specifying {unix_timestamp}
as 0
will return a recommendation based on the latest data. An invalid {unix_timestamp}
will return a result that has the valid time range in the error message:
{
"response": {
"result": "invalid_recommendation_time",
"message": "The time specified (1610060201) is outside of the allowed range: (1610057600, 1610060200)",
"error": true
}
}
New in this release
- Adds time categories configuration to the pod manifest to enable learning from cyclical patterns in data - e.g. hour, day of week, day of month, and month
- Adds support for defining reward functions in a rewards functions code file.
- Adds the ability to specify recommendation time making it possible to now see which action Spice.ai recommends at any time during the pod period.
- Adds support for ingestion of transaction/correlation identifiers (e.g.
order_id
,trace_id
) in the pod manifest. - Adds validation for invalid dataspace names in the pod manifest.
- Adds the ability to resize columns to the dashboard observation data grid.
- Updates to TensorFlow 2.7 and Keras 2.7
- Fixes a bug where data processors were using data connector params
- Fixes a dashboard issue in the pod observations data grid where a column might not be shown.
- Fixes a crash on pod load if the
training
section is not included in the manifest. - Fixes an issue where data manager stats errors were incorrectly being printed to console.
- Fixes an issue where selectors may not match due to surrounding whitespace.
Resources
Community
Spice.ai started with the vision to make AI easy for developers. We are building Spice.ai in the open and with the community. Reach out on Discord or by email to get involved. We will also be starting a community call series soon!
- Discord: https://discord.gg/kZnTfneP5u
- Reddit: https://www.reddit.com/r/spiceai
- Twitter: @spice_ai
- Email: [email protected]