Skip to main content

LlamaIndex vector store integration for SynapCores — the AI-native SQL engine.

Project description

llama-index-vector-stores-synapcores

LlamaIndex vector store integration for SynapCores — the AI-native SQL engine that combines vectors, graph, SQL, and AI inference in one self-hosted binary.

pip install llama-index llama-index-vector-stores-synapcores

Quickstart

from llama_index.core import VectorStoreIndex, StorageContext
from llama_index.core.readers import SimpleDirectoryReader
from llama_index.vector_stores.synapcores import SynapCoresVectorStore

# 1. Start the engine: docker run -p 8080:8080 -e AIDB_ACCEPT_LICENSE=1 synapcores/community:latest
# 2. Point the integration at it
vector_store = SynapCoresVectorStore(
    uri="http://localhost:8080",
    table_name="my_docs",
    embedding_dim=1536,           # match your embedding model
)

# 3. Standard LlamaIndex flow — no per-vendor weirdness
docs = SimpleDirectoryReader("./data").load_data()
index = VectorStoreIndex.from_documents(
    docs,
    storage_context=StorageContext.from_defaults(vector_store=vector_store),
)
response = index.as_query_engine().query("What does this document say?")
print(response)

Configuration

Argument Default Env fallback
uri http://localhost:8080 SYNAPCORES_URI
database default SYNAPCORES_DATABASE
auth_token None SYNAPCORES_AUTH_TOKEN
table_name llama_nodes
embedding_dim 1536
distance "cosine" (also: "euclidean", "dot_product")
overwrite False
batch_size 100

Metadata filters

LlamaIndex's full filter grammar maps to SynapCores' JSON arrow operator:

from llama_index.core.vector_stores import MetadataFilters, MetadataFilter, FilterOperator

filters = MetadataFilters(filters=[
    MetadataFilter(key="tenant_id", value="acme", operator=FilterOperator.EQ),
    MetadataFilter(key="doc_type", value=["policy", "contract"], operator=FilterOperator.IN),
])

retriever = index.as_retriever(filters=filters)

Supported operators: EQ, NE, GT, GTE, LT, LTE, IN, NIN, TEXT_MATCH, TEXT_MATCH_INSENSITIVE, CONTAINS, IS_EMPTY. Conditions: AND, OR, NOT. Filter groups may be nested. ANY / ALL (array-membership) are tracked for v0.2.0.

Existing store

If you've already ingested:

vector_store = SynapCoresVectorStore(uri="http://localhost:8080", table_name="my_docs", embedding_dim=1536)
index = VectorStoreIndex.from_vector_store(vector_store)

Do I need to install any models in SynapCores?

No. The integration works out-of-the-box against a stock synapcores/community:latest container with zero model downloads.

Embeddings are computed by LlamaIndexOpenAIEmbedding, HuggingFaceEmbedding, CohereEmbedding, or whatever you've configured in your LlamaIndex Settings.embed_model. The integration writes the resulting List[float] to a VECTOR(N) column. SynapCores just stores it. There is no engine-side embedding model to download, no GGUF, no Ollama, no API key, nothing.

If you separately want to use the engine's in-DB AI surface (SELECT EMBED(...), SELECT GENERATE(...), SELECT AGENT_RUN(...)) — those need a model warmed via synapcores pull <model:tag> or an [query.ai_service] block in gateway.toml. But for this integration alone, you can stop reading here: it works against a fresh docker run with no further setup.

Engine requirements

  • synapcores/community:v1.7.0.2-ce or newer

Async

async_add, aquery, adelete, adelete_nodes, aclear are available. v0.1.0 wraps the sync client via asyncio.to_thread — non-blocking but uses a thread per call. Native httpx path is on the v0.2.0 roadmap.

License

MIT

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_synapcores-0.1.1.tar.gz (14.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_synapcores-0.1.1.tar.gz.

File metadata

File hashes

Hashes for llama_index_vector_stores_synapcores-0.1.1.tar.gz
Algorithm Hash digest
SHA256 109aebf78a047c15c2bf7a8dae6086adb0d2403f5a79bb10bb12598e3fece970
MD5 91ed5424bff3aad5c0f5a16264a31993
BLAKE2b-256 84091579e4b1305112acaf61305cdb2fb92557b809dca6addb6dc6ebcfc5535f

See more details on using hashes here.

File details

Details for the file llama_index_vector_stores_synapcores-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for llama_index_vector_stores_synapcores-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 58c5189bf85c619667bf9732e981f6d2202f2a09a3e2beaf7a69c9dda4bb0177
MD5 cd610d376c78ecf93b34925a460c573d
BLAKE2b-256 6881e2ec6f4ab6b771b5f9289445f550d7a8fb7442d70d23a6100414b5680dbc

See more details on using hashes here.

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