Skip to content
Why did we open-source our inference engine? Read the post

Overview

SIE provides three integration paths: native SDK for full feature access, framework adapters for RAG pipelines, and OpenAI compatibility for drop-in migration.

OptionFeaturesBest For
Framework AdaptersDense, sparse, reranking, extractionChroma, CrewAI, DSPy, Haystack, LanceDB, LangChain, LlamaIndex, Qdrant, Weaviate
Native SDKAll features, full controlCustom pipelines, advanced use cases
OpenAI CompatibilityDense onlyMigrating existing OpenAI code

SIE provides native packages for popular frameworks and vector stores in Python, and three in TypeScript.

FrameworkPackageEmbeddingsSparseMultivectorRerankingExtractionMultimodal
Chromasie-chromaYesYesNoNoNoNo
CrewAIsie-crewaiNoYesNoYesYesNo
DSPysie-dspyYesYesNoYesYesNo
Haystacksie-haystackYesYesYesYesYesYes
LanceDBsie-lancedbYesNoNoYesYesNo
LangChainsie-langchainYesYesNoYesYesNo
LlamaIndexsie-llamaindexYesYesNoYesYesYes
Qdrantsie-qdrantYesYesYesNoNoNo
Weaviatesie-weaviateYesYesYesNoNoNo
FrameworkPackageEmbeddingsSparseMultivectorRerankingExtraction
Chroma@superlinked/sie-chromaYesYesNoNoNo
LanceDB@superlinked/sie-lancedbYesNoNoYesNo
LangChain.js@superlinked/sie-langchainYesYesNoYesYes
LlamaIndex.ts@superlinked/sie-llamaindexYesYesNoYesYes

Use framework adapters when:

  • You’re building a RAG pipeline with one of these frameworks
  • You need sparse embeddings for hybrid search
  • You need reranking to improve retrieval quality

For features not available in an integration (marked “No” above), you can use the Native SDK directly alongside the integration - see each integration’s doc page for examples.


The native SDK provides full access to all SIE features: dense, sparse, multi-vector embeddings, reranking, and extraction (entities, relations, classifications, object detection).

Terminal window
pip install sie-sdk
from sie_sdk import SIEClient
from sie_sdk.types import Item
client = SIEClient("http://localhost:8080")
# All output types
result = client.encode(
"BAAI/bge-m3",
Item(text="Your text"),
output_types=["dense", "sparse", "multivector"]
)
# Reranking
scores = client.score(
"BAAI/bge-reranker-v2-m3",
query=Item(text="What is AI?"),
items=[Item(text="AI is..."), Item(text="Weather is...")]
)
# Extraction
entities = client.extract(
"urchade/gliner_multi-v2.1",
Item(text="Tim Cook leads Apple."),
labels=["person", "organization"]
)

Use the native SDK when:

  • You’re building a custom pipeline without a framework
  • You need multi-vector (ColBERT) output
  • You need extraction (entities, relations, classifications, object detection)
  • You want fine-grained control over batching and timing

SIE exposes /v1/embeddings matching OpenAI’s API format. Existing OpenAI code works with a URL change.

from openai import OpenAI
client = OpenAI(base_url="http://localhost:8080/v1", api_key="not-needed")
response = client.embeddings.create(
model="BAAI/bge-m3",
input=["Your text here", "Another text"]
)
for item in response.data:
print(f"Index {item.index}: {len(item.embedding)} dimensions")

Use OpenAI compatibility when:

  • You have existing code using the OpenAI SDK
  • You only need dense embeddings
  • You want zero code changes beyond the URL

Limitations: Only dense embeddings. No sparse, multi-vector, reranking, or extraction.


FeatureFramework AdaptersNative SDKOpenAI Compat
Dense embeddingsYesYesYes
Sparse embeddingsMostYesNo
Multi-vector (ColBERT)LanceDBYesNo
RerankingHaystack, LangChain, LlamaIndex, LanceDBYesNo
Extraction (entities, relations, classifications, objects)Haystack, LangChain, LlamaIndex, LanceDB, CrewAI, DSPyYesNo

  • Chroma - embedding functions for ChromaDB
  • CrewAI - sparse embeddings for hybrid search
  • DSPy - embedder for DSPy retrievers
  • Haystack - embeddings, reranking, and extraction
  • LanceDB - embeddings, reranking, extraction, and multi-vector for LanceDB
  • LangChain - embeddings, reranking, and extraction for LangChain
  • LlamaIndex - embeddings and reranking for LlamaIndex
  • Qdrant - dense and sparse embeddings for Qdrant
  • Weaviate - dense and named vectors for Weaviate
  • SDK Reference - full SDK documentation

Contact us

Tell us about your use case and we'll get back to you shortly.