Spice v1.0-rc.3 (Dec 30, 2024)
Categories:
Announcing the release of Spice v1.0-rc.3 🧊
Spice v1.0.0-rc.3 is the third release candidate for the first major version of Spice.ai OSS. This release continues the focus on production readiness and includes new Iceberg Catalog APIs, DuckDB improvements, and a new Iceberg Catalog Connector.
Highlights in v1.0-rc.3
Iceberg Catalog APIs: Spice now functions as an Iceberg Catalog provider, implementing a core subset of the Iceberg Catalog APIs. This enables Iceberg Catalog clients native discovery of datasets and schemas through Spice APIs.
GET /v1/namespaces
- List all catalogs registered in Spice.GET /v1/namespaces?parent=catalog
- List schemas registered under a given catalog.GET /v1/namespaces/:catalog_schema/tables
- List tables registered under a given schema.GET /v1/namespaces/:catalog_schema/tables/:table
- Get the schema of a given table.Iceberg Catalog Connector: The Iceberg Catalog Connector is a new integration to discover and query datasets from a remote Iceberg Catalog.
Example connecting to a remote Iceberg Catalog with tables stored in S3:
catalogs:
- from: iceberg:https://my-iceberg-catalog.com/v1/namespaces
name: ice
params:
iceberg_s3_access_key_id: ${secrets:ICEBERG_S3_ACCESS_KEY_ID}
iceberg_s3_secret_access_key: ${secrets:ICEBERG_S3_SECRET_ACCESS_KEY}
iceberg_s3_region: us-east-1
View the Iceberg Catalog Connector documentation for more details.
DuckDB Improvements: Added
cosine_distance
support for DuckDB-backed vector search, improvedunnest
nested type handling forarray_element
and lists, and optimized query performance.SQLite Data Accelerator: Graduated to Release Candidate (RC).
File Data Accelerator: Graduated to Release Candidate (RC).
Breaking changes
- API:
v1/datasets/sample
has been removed as it is not particularly useful, can be replicated via SQL, and via the tools endpointPOST v1/tools/:name
.
Cookbook
New Language Model Evals Recipe showing how to measure the performance of a language model using LLM-as-Judge, configured entirely in the spice runtime.
New Iceberg Catalog Recipe showing how to use Spice to query Iceberg tables from an Iceberg catalog.
Dependencies
- OpenTelemetry: Upgraded from 0.26.0 to 0.27.1
- Go: Upgraded from 1.22 to 1.23 (CLI)
Contributors
- @sgrebnov
- @phillipleblanc
- @peasee
- @Jeadie
- @Sevenannn
- @lukekim
- @ewgenius
What’s Changed
- Add CI configuration for search benchmark dataset access by @sgrebnov in https://github.com/spiceai/spiceai/pull/3888
- Update acknowledgements by @github-actions in https://github.com/spiceai/spiceai/pull/3895
- Upgrade dependencies by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3896
- chore: Update helm chart for RC.2 by @peasee in https://github.com/spiceai/spiceai/pull/3899
- Update spicepod.schema.json by @github-actions in https://github.com/spiceai/spiceai/pull/3903
- chore: Update MacOS test release install to macos-13 by @peasee in https://github.com/spiceai/spiceai/pull/3901
- Add usage to
spice chat
and fixv1/models?status=true
. by @Jeadie in https://github.com/spiceai/spiceai/pull/3898 - chore: Bump versions for rc3 by @peasee in https://github.com/spiceai/spiceai/pull/3902
- docs: Update endgame with a step to verify dependencies in release notes by @peasee in https://github.com/spiceai/spiceai/pull/3897
- Ensure eval dataset input and ouput of correct length by @Jeadie in https://github.com/spiceai/spiceai/pull/3900
spice add/connect/dataset configure
should update spicepod, not overwrite it & upgrade to Go 1.23 by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3905- Bump opentelemetry from 0.26.0 to 0.27.1 by @dependabot in https://github.com/spiceai/spiceai/pull/3879
- Ensure trace_id is overridden for prior written spans by @Jeadie in https://github.com/spiceai/spiceai/pull/3906
- add ‘role’: ‘assistant’ for local models by @Jeadie in https://github.com/spiceai/spiceai/pull/3910
- Run tpcds benchmark for file connector by @Sevenannn in https://github.com/spiceai/spiceai/pull/3924
- Update to reference cookbook instead of quickstarts/samples by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3928
- Fix/remove flaky integration tests by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3930
- Implement
/v1/iceberg/namespaces
&/v1/iceberg/config
APIs by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3923 - Add script for creating tpcds parquet files and spicepod for file connector by @Sevenannn in https://github.com/spiceai/spiceai/pull/3931
- Use
utoipa
to generate openapi.json and swagger for dev by @Jeadie in https://github.com/spiceai/spiceai/pull/3927 fuzzy_match
,json_match
,includes
scorer by @Jeadie in https://github.com/spiceai/spiceai/pull/3926- Implement
/v1/iceberg/namespaces/:namespace
by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3933 - Implement
GET /v1/iceberg/namespaces/:namespace/tables
API by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3934 - Add custom Spice DuckDB dialect with cosine_distance support by @sgrebnov in https://github.com/spiceai/spiceai/pull/3938
- Fix NSQL error:
all columns in a record batch must have the same length
by @sgrebnov in https://github.com/spiceai/spiceai/pull/3947 - Don’t include tools use in hf test model by @Jeadie in https://github.com/spiceai/spiceai/pull/3955
- Implement
GET /v1/namespaces/{namespace}/tables/{table}
API by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3940 - Update dependencies by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3967
- DuckDB: add support for nested types in Lists by @sgrebnov in https://github.com/spiceai/spiceai/pull/3961
- Add script to set up clickbench for file connector by @Sevenannn in https://github.com/spiceai/spiceai/pull/3945
- docs: Add connector stable criteria by @peasee in https://github.com/spiceai/spiceai/pull/3908
- Update Roadmp Dec 23, 2024 by @lukekim in https://github.com/spiceai/spiceai/pull/3978
- Improve CI testing for OpenAPI, new tool
spiceschema
, fix broken OpenAPI stuff. by @Jeadie in https://github.com/spiceai/spiceai/pull/3948 - remove
v1/datasets/sample
by @Jeadie in https://github.com/spiceai/spiceai/pull/3981 - feat: add SQLite ClickBench benchmark by @peasee in https://github.com/spiceai/spiceai/pull/3975
- Remove feature ’llms/mistralrs’ by @Jeadie in https://github.com/spiceai/spiceai/pull/3984
- Add support for ‘params.spice_tools: nsql’ by @Jeadie in https://github.com/spiceai/spiceai/pull/3985
- Fix integration tests - add missing
format
query parameter in /v1/status requests by @ewgenius in https://github.com/spiceai/spiceai/pull/3989 - Enhance AI tools sampling logic for robust handling of large fields by @sgrebnov in https://github.com/spiceai/spiceai/pull/3959
- Fix subquery federation by @Sevenannn in https://github.com/spiceai/spiceai/pull/3991
- Fix unnest and add DuckDB support for
array_element
by @sgrebnov in https://github.com/spiceai/spiceai/pull/3995 - Add score value snapshotting to vector similarity search tests by @sgrebnov in https://github.com/spiceai/spiceai/pull/3996
- Use Llama-3.2-3B-Instruct for Hugging Face integration testing by @sgrebnov in https://github.com/spiceai/spiceai/pull/3992
- Simplify
construct_chunk_query_sql
for DuckDB compatibility by @sgrebnov in https://github.com/spiceai/spiceai/pull/3988 - Update TPCH and TPCDS benchmarks for spice.ai connector by @ewgenius in https://github.com/spiceai/spiceai/pull/3982
- Correctly pass Hugging Face token in models integration tests by @sgrebnov in https://github.com/spiceai/spiceai/pull/3997
- Fix:
on_zero_results
causesTransactionContext Error: Catalog write-write conflict on create with "attachment_0"
by @phillipleblanc in https://github.com/spiceai/spiceai/pull/3998 - Add DuckDB acceleration to search benchmarks by @sgrebnov in https://github.com/spiceai/spiceai/pull/4000
- Enable Postgres write via non-default
postgres-write
feature flag by @sgrebnov in https://github.com/spiceai/spiceai/pull/4004 - Allow search benchmark to write test results by @sgrebnov in https://github.com/spiceai/spiceai/pull/4008
- Make Flight DoPut atomic and commit write only on successful stream completion by @sgrebnov in https://github.com/spiceai/spiceai/pull/4002
- Create a
CatalogConnector
abstraction by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4003 - Fix
generate-openapi.yml
and add.schema/openapi.json
. by @Jeadie in https://github.com/spiceai/spiceai/pull/3983 - Enable spice.ai tpcds bench workflow. Comment failing tpch queries. by @ewgenius in https://github.com/spiceai/spiceai/pull/4001
- feat: Add SQLite ClickBench overrides by @peasee in https://github.com/spiceai/spiceai/pull/4016
- Implement Iceberg Catalog Connector by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4053
- feat: Datafusion updates for SQLite fixes and release by @peasee in https://github.com/spiceai/spiceai/pull/4054
- docs: Add accelerator stable release criteria by @peasee in https://github.com/spiceai/spiceai/pull/4017
- Add dremio tpch / tpcds benchmark test by @Sevenannn in https://github.com/spiceai/spiceai/pull/4063
- Update docs, and make PR to
spiceai/docs
for newopenapi.json
. by @Jeadie in https://github.com/spiceai/spiceai/pull/4019 - Update openapi.json by @github-actions in https://github.com/spiceai/spiceai/pull/4065
- Fix dremio subquery rewrite by @Sevenannn in https://github.com/spiceai/spiceai/pull/4064
- Update generate-openapi.yml by @Jeadie in https://github.com/spiceai/spiceai/pull/4073
- docs: Add catalog criteria by @peasee in https://github.com/spiceai/spiceai/pull/4052
- fix
distinct_columns
in auto/nsql tool groups by @Jeadie in https://github.com/spiceai/spiceai/pull/4074 - Update openapi.json by @github-actions in https://github.com/spiceai/spiceai/pull/4075
- Update openapi.json by @github-actions in https://github.com/spiceai/spiceai/pull/4076
- Implement window_func_support_window_frame from DremioDialect by @Sevenannn in https://github.com/spiceai/spiceai/pull/4012
- Update acknowledgements by @github-actions in https://github.com/spiceai/spiceai/pull/4079
- Promote file connector to rc by @Sevenannn in https://github.com/spiceai/spiceai/pull/4080
- Add Iceberg to README by @phillipleblanc in https://github.com/spiceai/spiceai/pull/4085
- Fix ‘/v1/status’ default format by @Jeadie in https://github.com/spiceai/spiceai/pull/4081
Full Changelog: https://github.com/spiceai/spiceai/compare/v1.0.0-rc.2...v1.0.0-rc.3
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.
- Twitter: @spice_ai
- Discord: https://discord.gg/kZnTfneP5u
- Telegram: Spice AI Discussion
- Reddit: https://www.reddit.com/r/spiceai
- Email: [email protected]