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.
| Option | Best for |
|---|---|
| Framework adapters | LangChain, LlamaIndex, Haystack, Qdrant, Weaviate, Chroma, LanceDB, DSPy, CrewAI |
| Native SDK | Custom pipelines, multi-vector output, full extraction support |
| OpenAI compatibility | Migrating existing OpenAI embeddings code |
Which Integration Path Should I Use?
Section titled “Which Integration Path Should I Use?”Use the summary table and anchor links above to jump to framework adapters, the native SDK, or OpenAI compatibility.
Framework Adapters
Section titled “Framework Adapters”SIE provides dedicated packages for all major Python AI frameworks and vector stores, plus four TypeScript packages.
Python
Section titled “Python”| Framework | Package | Embeddings | Sparse | Multivector | Reranking | Extraction | Multimodal |
|---|---|---|---|---|---|---|---|
| Chroma | sie-chroma | Yes | Yes | No | No | No | No |
| CrewAI | sie-crewai | No | Yes | No | Yes | Yes | No |
| DSPy | sie-dspy | Yes | Yes | No | Yes | Yes | No |
| Haystack | sie-haystack | Yes | Yes | Yes | Yes | Yes | Yes |
| LanceDB | sie-lancedb | Yes | No | No | Yes | Yes | No |
| LangChain | sie-langchain | Yes | Yes | No | Yes | Yes | No |
| LlamaIndex | sie-llamaindex | Yes | Yes | No | Yes | Yes | Yes |
| Qdrant | sie-qdrant | Yes | Yes | Yes | No | No | No |
| Weaviate | sie-weaviate | Yes | Yes | Yes | No | No | No |
TypeScript
Section titled “TypeScript”| Framework | Package | Embeddings | Sparse | Multivector | Reranking | Extraction |
|---|---|---|---|---|---|---|
| Chroma | @superlinked/sie-chroma | Yes | Yes | No | No | No |
| LanceDB | @superlinked/sie-lancedb | Yes | No | No | Yes | No |
| LangChain.js | @superlinked/sie-langchain | Yes | Yes | No | Yes | Yes |
| LlamaIndex.ts | @superlinked/sie-llamaindex | Yes | Yes | No | Yes | Yes |
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.
Native SDK
Section titled “Native SDK”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# orpnpm add @superlinked/sie-sdkfrom sie_sdk import SIEClientfrom sie_sdk.types import Item
client = SIEClient("http://localhost:8080")
# All output types from one modelresult = client.encode( "BAAI/bge-m3", Item(text="Your text"), output_types=["dense", "sparse", "multivector"])
# Rerankingscores = client.score( "BAAI/bge-reranker-v2-m3", query=Item(text="What is AI?"), items=[Item(text="AI is..."), Item(text="Weather is...")])
# Entity extractionentities = client.extract( "urchade/gliner_multi-v2.1", Item(text="Tim Cook leads Apple."), labels=["person", "organization"])import { SIEClient } from "@superlinked/sie-sdk";
const client = new SIEClient("http://localhost:8080");
// All output types from one modelconst result = await client.encode( "BAAI/bge-m3", { text: "Your text" }, { outputTypes: ["dense", "sparse", "multivector"] },);
// Rerankingconst scores = await client.score( "BAAI/bge-reranker-v2-m3", { text: "What is AI?" }, [{ text: "AI is..." }, { text: "Weather is..." }],);
// Entity extractionconst entities = await client.extract( "urchade/gliner_multi-v2.1", { text: "Tim Cook leads Apple." }, { labels: ["person", "organization"] },);
await client.close();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
OpenAI Compatibility
Section titled “OpenAI Compatibility”SIE exposes /v1/embeddings matching OpenAI’s API format. Existing OpenAI code works with a single URL change and no other modifications:
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: Dense embeddings only. Sparse, multi-vector, reranking, and extraction require the native SDK or a framework adapter.
Full Feature Comparison
Section titled “Full Feature Comparison”| Feature | Framework adapters | Native SDK | OpenAI compat |
|---|---|---|---|
| Dense embeddings | All | Yes | Yes |
| Sparse embeddings | Most | Yes | No |
| Multi-vector (ColBERT) | Haystack, Qdrant, Weaviate | Yes | No |
| Reranking | Haystack, LangChain, LlamaIndex, LanceDB | Yes | No |
| Extraction (NER, relations, classification, vision) | Haystack, LangChain, LlamaIndex, LanceDB, CrewAI, DSPy | Yes | No |
Frequently Asked Questions
Section titled “Frequently Asked Questions”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 embeddings? Yes, for dense embeddings. Change your base URL to your SIE server and set any string as the API key. The response format matches OpenAI’s exactly. 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.