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

How to integrate SIE with your existing stack

SIE provides three integration paths depending on how you are building. Framework adapters plug SIE into existing RAG pipelines with minimal code. The native SDK gives you full access to every feature. OpenAI compatibility lets you point existing OpenAI code at SIE with a single URL change.

OptionBest for
Framework adaptersLangChain, LlamaIndex, Haystack, Qdrant, Weaviate, Chroma, LanceDB, DSPy, CrewAI
Native SDKCustom pipelines, multi-vector output, full extraction support
OpenAI compatibilityMigrating existing OpenAI embeddings or chat code

Use the summary table and anchor links above to jump to framework adapters, the native SDK, or OpenAI compatibility.


SIE provides dedicated packages for all major Python AI frameworks and vector stores, plus four TypeScript packages.

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 a framework adapter when:

  • You are 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 marked “No” in the table above, you can use the native SDK alongside your framework integration. See each integration’s page for examples.


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

pip install sie-sdk
# or
pnpm add @superlinked/sie-sdk
from sie_sdk import SIEClient
from sie_sdk.types import Item
client = SIEClient("http://localhost:8080")
# All output types from one model
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...")]
)
# Entity extraction
entities = client.extract(
"urchade/gliner_multi-v2.1",
Item(text="Tim Cook leads Apple."),
labels=["person", "organization"]
)

Use the native SDK when:

  • You are 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 speaks the OpenAI API for both embeddings and generation. /v1/embeddings and /v1/chat/completions are drop-in: existing OpenAI code works with a single URL change and no other modifications. The gateway also serves /v1/completions (non-streaming) and /v1/responses (string input, non-streaming) for the common cases:

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")
reply = client.chat.completions.create(
model="Qwen/Qwen3-4B-Instruct-2507",
messages=[{"role": "user", "content": "Reply with one word: the capital of France."}],
)
print(reply.choices[0].message.content)

Where each endpoint is served: /v1/embeddings is available on every SIE server, single-node or cluster. /v1/chat/completions, /v1/completions, and /v1/responses are served by the cluster gateway against generation models (the sglang bundle). On a single-node Apple Silicon server, /v1/chat/completions also works against the local MLX generation backend.

Use OpenAI compatibility when:

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

Limitations: Sparse, multi-vector, reranking, and extraction are not part of the OpenAI API shape; they require the native SDK or a framework adapter.


FeatureFramework adaptersNative SDKOpenAI compat
Dense embeddingsAllYesYes
Chat / text generationNoYesYes (gateway)
Sparse embeddingsMostYesNo
Multi-vector (ColBERT)Haystack, Qdrant, WeaviateYesNo
RerankingHaystack, LangChain, LlamaIndex, LanceDBYesNo
Extraction (NER, relations, classification, vision)Haystack, LangChain, LlamaIndex, LanceDB, CrewAI, DSPyYesNo

Does SIE work with Qdrant? Yes. Install sie-qdrant for dense and sparse embedding support with Qdrant. See the Qdrant integration guide.

Can I use SIE as a drop-in replacement for OpenAI? Yes, for dense embeddings and chat completions. Change your base URL to your SIE server and set any string as the API key. The response format matches OpenAI’s exactly. The gateway also serves /v1/completions and /v1/responses, currently non-streaming. See OpenAI compatibility above.

Which integration supports the most features? sie-haystack and sie-llamaindex support the most features, including embeddings, sparse, reranking, extraction, and multimodal. See the full feature table above.

Where can I find setup instructions for each framework? Each framework has its own dedicated page. See Chroma, LangChain, LlamaIndex, Haystack, Qdrant, Weaviate, LanceDB, DSPy, and CrewAI.

Contact us

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