Manifest syntax for Spicepods
About YAML syntax for Spicepod manifests (spicepod.yaml)​
Spicepod manifests use YAML syntax and must be named spicepod.yaml
or spicepod.yml
. If you're new to YAML and want to learn more, see "Learn YAML in Y minutes."
Spicepod manifest files are stored in the root directory of your application code.
version
​
The version of the Spicepod manifest. The current version is v1beta1
.
kind
​
The kind of Spicepod manifest. The kind is Spicepod
.
name
​
The name of the Spicepod.
secrets
​
The secrets section in the Spicepod manifest is optional and is used to configure how secrets are stored and accessed by the Spicepod. Learn more.
secrets.from
​
The from
field is a string that represents the Uniform Resource Identifier (URI) for the secret store. This URI is composed of two parts: a prefix indicating the Secret Store to use, and an optional selector that specifies the secret to retrieve.
The syntax for the from
field is as follows:
from: <secret_store>:<selector>
Where:
-
<secret_store>
: The Secret Store to useCurrently supported secret stores:
If no secret stores are explicitly specified, it defaults to
env
. -
<selector>
: The secret within the secret store to load.
The type of secret store for reading secrets.
Example
secrets:
- from: env
name: env
secrets.name
​
The name of the secret store. This is used to reference the store in the secret replacement syntax, ${<secret_store_name>:<key_name>}
.
runtime
​
num_of_parallel_loading_at_start_up
​
This configuration setting determines the maximum number of datasets that can be loaded in parallel during startup. This parallel loading capability accelerates Spice's startup process when multiple datasets are configured.
results_cache
​
The results cache section specifies runtime cache configuration. Learn more.
runtime:
results_cache:
enabled: true
cache_max_size: 128MiB
eviction_policy: lru
item_ttl: 1s
enabled
- optional,true
by defaultcache_max_size
- optional, maximum cache size. Default is128MiB
eviction_policy
- optional, cache replacement policy when the cached data reaches thecache_max_size
. Default islru
- least-recently-used (LRU)item_ttl
- optional, cache entry expiration time, 1 second by default.
metadata
​
An optional map
of metadata.
Example
metadata:
epoch_time: 1605312000
period: 72h
interval: 1m
granularity: 10s
episodes: 10
datasets
​
A Spicepod can contain one or more datasets referenced by relative path.
Example
A datasets referenced by relative path.
datasets:
- ref: datasets/uniswap_v2_eth_usdc
A dataset defined inline.
datasets:
- from: spice.ai/eth.recent_blocks
name: eth_blocks
acceleration:
enabled: true
refresh_mode: full
refresh_check_interval: 1h
models
​
A Spicepod can contain one or more models referenced by relative path.
Example
A model referenced by path.
models:
- from: models/drive_stats
A model defined inline.
models:
- from: spiceai/lukekim/smart/models/drive_stats:latest
name: drive_stats
datasets:
- drive_stats_inferencing
embeddings
​
A Spicepod can contain one or more embeddings referenced by relative path.
Example
An embeddings model referenced by path.
embeddings:
- from: embeddings/openai_text_embedding_3
An embedding defined inline.
embeddings:
- name: hf_baai_bge
from: huggingface:huggingface.co/BAAI/bge-small-en-v1.5
dependencies
​
A list of dependent Spicepods.
dependencies:
- lukekim/demo
- spicehq/nfts