Skip to content
SIE

DSPy

The sie-dspy package provides an embedder compatible with DSPy’s retrieval components. Use SIEEmbedder with dspy.retrievers.Embeddings for semantic search.

Terminal window
pip install sie-dspy

This installs sie-sdk and numpy as dependencies.

Terminal window
# Docker (recommended)
docker run -p 8080:8080 ghcr.io/superlinked/sie:latest
# Or with GPU
docker run --gpus all -p 8080:8080 ghcr.io/superlinked/sie:latest

SIEEmbedder is callable and works directly with DSPy’s retrieval components.

from sie_dspy import SIEEmbedder
embedder = SIEEmbedder(
base_url="http://localhost:8080",
model="BAAI/bge-m3",
)
# Embed a single text
vector = embedder("What is machine learning?")
print(vector.shape) # (1024,)
# Embed multiple texts
vectors = embedder(["First document", "Second document"])
print(vectors.shape) # (2, 1024)
ParameterTypeDefaultDescription
base_urlstrhttp://localhost:8080SIE server URL
modelstrBAAI/bge-m3Model to use
gpustrNoneTarget GPU type for routing
optionsdictNoneModel-specific options
timeout_sfloat180.0Request timeout in seconds

Build a complete DSPy RAG program using SIE embeddings:

import dspy
from sie_dspy import SIEEmbedder
# 1. Configure DSPy with your LLM
lm = dspy.LM("openai/gpt-4o-mini")
dspy.configure(lm=lm)
# 2. Create SIE embedder
embedder = SIEEmbedder(
base_url="http://localhost:8080",
model="BAAI/bge-m3",
)
# 3. Build retriever with your corpus
corpus = [
"Machine learning is a branch of artificial intelligence.",
"Neural networks are inspired by biological neurons.",
"Deep learning uses multiple layers of neural networks.",
"Python is popular for machine learning development.",
]
retriever = dspy.retrievers.Embeddings(
corpus=corpus,
embedder=embedder,
k=2,
)
# 4. Define a RAG signature
class RAG(dspy.Signature):
"""Answer questions using retrieved context."""
context: list[str] = dspy.InputField(desc="retrieved passages")
question: str = dspy.InputField()
answer: str = dspy.OutputField()
# 5. Build the RAG program
class RAGProgram(dspy.Module):
def __init__(self):
self.retriever = retriever
self.generate = dspy.ChainOfThought(RAG)
def forward(self, question: str):
passages = self.retriever(question)
return self.generate(context=passages, question=question)
# 6. Run the program
rag = RAGProgram()
result = rag("What is deep learning?")
print(result.answer)