YAML syntax for Spicepod manifests
Spicepod manifests use YAML syntax. They are stored in the root directory of the application and must be named spicepod.yaml
or spicepod.yml
.
If you are new to YAML and want to learn more, see "Learn YAML in Y minutes."
version
​
The version of the Spicepod manifest. The current version is v1
.
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. For more information, see Secret Stores.
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
​
The runtime
section specifies configuration settings for the Spice runtime. For detailed documentation, see the Runtime YAML reference.
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/spiceai/quickstart/datasets/taxi_trips
name: taxi_trips
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
evals
​
A Spicepod can contain one or more evaluations referenced by relative path.
Example
evals:
- name: australia
description: Make sure the model understands Aussies, and importantly Cricket.
dataset: cricket_logic
scorers:
- Match
dependencies
​
A list of dependent Spicepods.
dependencies:
- lukekim/demo
- spicehq/nfts
views
​
A Spicepod can contain one or more views which are virtual tables defined by SQL queries.
Example
views:
- name: rankings
sql: |
WITH a AS (
SELECT products.id, SUM(count) AS count
FROM orders
INNER JOIN products ON orders.product_id = products.id
GROUP BY products.id
)
SELECT name, count
FROM products
LEFT JOIN a ON products.id = a.id
ORDER BY count DESC
LIMIT 5