spicepod-config

Create and configure Spicepod manifests (spicepod.yaml). Use when asked to "create a spicepod", "configure spicepod.yaml", "set up a Spice app", "initialize Spice project", "configure caching", "set up observability", "build a data app", or "create an AI application with Spice".

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "spicepod-config" with this command: npx skills add spiceai/skills/spiceai-skills-spicepod-config

Spicepod Configuration

A Spicepod manifest (spicepod.yaml) defines datasets, models, embeddings, runtime settings, and other components for a Spice application.

Spice is an open-source SQL query, search, and LLM-inference engine — not a replacement for PostgreSQL/MySQL (use those for transactional workloads) or a data warehouse (use Snowflake/Databricks for centralized analytics). Think of it as the operational data & AI layer between your applications and your data infrastructure.

Basic Structure

version: v1
kind: Spicepod
name: my_app

secrets:
  - from: env
    name: env

datasets:
  - from: <connector>:<path>
    name: <dataset_name>

models:
  - from: <provider>:<model>
    name: <model_name>

embeddings:
  - from: <provider>:<model>
    name: <embedding_name>

All Sections

SectionPurposeSkill
datasetsData sources for SQL queriesspice-data-connector
modelsLLM/ML models for inferencespice-models
embeddingsEmbedding models for vector searchspice-embeddings
secretsSecure credential managementspice-secrets
catalogsExternal data catalog connectionsspice-catalogs
viewsVirtual tables from SQL queriesspice-views
toolsLLM function calling capabilitiesspice-tools
workersModel load balancing and routingspice-workers
runtimeServer ports, caching, telemetry(this skill)
snapshotsAcceleration snapshot managementspice-accelerators
evalsModel evaluation definitions(below)
dependenciesDependent Spicepods(below)

Quick Start

version: v1
kind: Spicepod
name: quickstart

secrets:
  - from: env
    name: env

datasets:
  - from: postgres:public.users
    name: users
    params:
      pg_host: localhost
      pg_port: 5432
      pg_user: ${ env:PG_USER }
      pg_pass: ${ env:PG_PASS }
    acceleration:
      enabled: true
      engine: duckdb
      refresh_check_interval: 5m

models:
  - from: openai:gpt-4o
    name: assistant
    params:
      openai_api_key: ${ secrets:OPENAI_API_KEY }
      tools: auto

Runtime Configuration

Server Ports

runtime:
  http:
    enabled: true
    port: 8090
  flight:
    enabled: true
    port: 50051

Results Caching

runtime:
  caching:
    sql_results:
      enabled: true
      max_size: 128MiB
      item_ttl: 1s
      eviction_policy: lru # lru or tiny_lfu
      encoding: none # none or zstd
    search_results:
      enabled: true
      max_size: 128MiB
      item_ttl: 1s
    embeddings:
      enabled: true
      max_size: 128MiB

Stale-While-Revalidate

runtime:
  caching:
    sql_results:
      item_ttl: 10s
      stale_while_revalidate_ttl: 10s

Observability & Telemetry

runtime:
  telemetry:
    enabled: true
    otel_exporter:
      endpoint: 'localhost:4317'
      push_interval: 60s
      metrics:
        - query_duration_ms
        - query_executions

Prometheus metrics: curl http://localhost:9090/metrics

Evals

Evaluate model performance:

evals:
  - name: australia
    description: Make sure the model understands Cricket.
    dataset: cricket_logic
    scorers:
      - Match

Dependencies

Reference other Spicepods:

dependencies:
  - lukekim/demo
  - spiceai/quickstart

Full AI Application Example

version: v1
kind: Spicepod
name: ai_app

secrets:
  - from: env
    name: env

embeddings:
  - from: openai:text-embedding-3-small
    name: embed
    params:
      openai_api_key: ${ secrets:OPENAI_API_KEY }

datasets:
  - from: postgres:documents
    name: docs
    acceleration:
      enabled: true
    columns:
      - name: content
        embeddings:
          - from: embed
            row_id: id
            chunking:
              enabled: true
              target_chunk_size: 512

  - from: memory:store
    name: llm_memory
    access: read_write

models:
  - from: openai:gpt-4o
    name: assistant
    params:
      openai_api_key: ${ secrets:OPENAI_API_KEY }
      tools: auto, memory, search

CLI Commands

spice init my_app       # initialize
spice run               # start runtime
spice sql               # SQL REPL
spice chat              # chat REPL
spice status            # check status
spice datasets          # list datasets

Deployment Models

Spice ships as a single ~140MB binary with no external dependencies beyond configured data sources.

ModelDescriptionBest For
StandaloneSingle instance via Docker or binaryDevelopment, edge devices, simple workloads
SidecarCo-located with your application podLow-latency access, microservices
MicroserviceMultiple replicas behind a load balancerHeavy or varying traffic
ClusterDistributed multi-node deploymentLarge-scale data, horizontal scaling
ShardedHorizontal data partitioning across instancesDistributed query execution
TieredSidecar for performance + shared microservice for batchVarying requirements per component
CloudFully-managed Spice.ai Cloud PlatformAuto-scaling, built-in observability

Writing Data

Spice supports writing to Apache Iceberg tables and Amazon S3 Tables via standard INSERT INTO:

datasets:
  - from: iceberg:https://catalog.example.com/v1/namespaces/sales/tables/transactions
    name: transactions
    access: read_write # required for writes
INSERT INTO transactions SELECT * FROM staging_transactions;

Use Cases

Use CaseHow Spice Helps
Operational Data LakehouseServe real-time workloads directly from Iceberg, Delta Lake, or Parquet with sub-second latency
Data Lake AcceleratorAccelerate queries from seconds to milliseconds by materializing datasets locally
Enterprise SearchCombine semantic and full-text search across structured and unstructured data
RAG PipelinesMerge federated data with vector search and LLMs for context-aware AI
Agentic AITool-augmented LLMs with fast access to operational data
Real-Time AnalyticsStream data from Kafka or DynamoDB with sub-second latency

Documentation

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

spice-data-connector

No summary provided by upstream source.

Repository SourceNeeds Review
General

spice-models

No summary provided by upstream source.

Repository SourceNeeds Review
General

spice-accelerators

No summary provided by upstream source.

Repository SourceNeeds Review
General

spice-secrets

No summary provided by upstream source.

Repository SourceNeeds Review