Skip to main content

LlamaIndex VectorStore integration for Pixeltable multimodal data infrastructure.

Project description

llama-index-vector-stores-pixeltable

LlamaIndex VectorStore integration backed by Pixeltable -- multimodal data infrastructure with built-in embedding indexes, metadata filtering, computed column lineage, and incremental computation.

Installation

pip install llama-index-vector-stores-pixeltable

Quick Start

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, StorageContext
from llama_index.vector_stores.pixeltable import PixeltableVectorStore

# Create the vector store
vector_store = PixeltableVectorStore(
    table_name="mydir.docs",
    embed_dim=1536,
)

# Load documents and build index
storage_context = StorageContext.from_defaults(vector_store=vector_store)
documents = SimpleDirectoryReader("./data").load_data()
index = VectorStoreIndex.from_documents(documents, storage_context=storage_context)

# Query
query_engine = index.as_query_engine()
response = query_engine.query("What is Pixeltable?")
print(response)

Filtered Queries with MetadataFilters

MetadataFilters on query() map to Pixeltable's .where() clause -- predicates are evaluated before ranking:

from llama_index.core.vector_stores.types import (
    VectorStoreQuery, MetadataFilters, MetadataFilter, FilterOperator,
)

filters = MetadataFilters(filters=[
    MetadataFilter(key="category", value="science", operator=FilterOperator.EQ),
])
result = vector_store.query(VectorStoreQuery(
    query_embedding=embedding,
    similarity_top_k=5,
    filters=filters,
))

Supported operators: ==, !=, >, <, >=, <= with AND/OR conditions.

Access the Underlying Pixeltable Table

The .table property gives direct access to the Pixeltable table for operations beyond the VectorStore interface -- computed columns, lineage, version history, and arbitrary predicates:

import pixeltable as pxt

t = vector_store.table

# Inspect all data
t.select(t.text, t.metadata, t.embedding).collect()

# Add a computed column -- auto-backfills all existing rows
t.add_computed_column(modality=extract_modality(t.metadata))

# WHERE on computed columns + similarity
import numpy as np
sim = t.embedding.similarity(vector=np.array(query_vec, dtype=np.float32))
results = (
    t.where(t.modality == "image")
    .order_by(sim, asc=False)
    .limit(5)
    .select(t.text, t.modality, sim=sim)
    .collect()
)

Connect to an Existing Pixeltable Table

vector_store = PixeltableVectorStore(table_name="mydir.existing_docs")
index = VectorStoreIndex.from_vector_store(vector_store)
query_engine = index.as_query_engine()

Why Pixeltable as a Vector Backend?

  • Metadata filtering via .where(): Filter on metadata fields before ranking, not post-hoc
  • Computed column lineage: Add derived columns that auto-backfill and auto-compute on new inserts
  • Persistent and versioned: Data survives restarts; every change is tracked
  • Incremental: Only new/changed rows get re-embedded
  • Multimodal native: Images, video, audio, and documents alongside text
  • Any embedding model: Works with OpenAI, Hugging Face, or any local model
  • No external services: Embedded PostgreSQL, no Docker required

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llama_index_vector_stores_pixeltable-0.1.2.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file llama_index_vector_stores_pixeltable-0.1.2.tar.gz.

File metadata

File hashes

Hashes for llama_index_vector_stores_pixeltable-0.1.2.tar.gz
Algorithm Hash digest
SHA256 557273d554fc64ddf106d79d319c739a25f43fb3948633b0df29424e64145dcb
MD5 c2129808a248879332cf0628666c7399
BLAKE2b-256 4f11c3b0f85cb636382879f748f029a34e6e14969b7d74198fcf8e1ad8ac77c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for llama_index_vector_stores_pixeltable-0.1.2.tar.gz:

Publisher: release.yml on pixeltable/llama-index-vector-stores-pixeltable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llama_index_vector_stores_pixeltable-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for llama_index_vector_stores_pixeltable-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6cc2f7e16ad5c2c993150839729f2a70957ce66f072a1e3e431920c3bede74d3
MD5 07d8c40519e540800504b0b322e22fa0
BLAKE2b-256 685eb5511483d0c209d0d1335c4b76e811767fe8be80cf5399d201343da9fc8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for llama_index_vector_stores_pixeltable-0.1.2-py3-none-any.whl:

Publisher: release.yml on pixeltable/llama-index-vector-stores-pixeltable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page