Skip to content

DSPy (Stanford NLP) integration

Astrocyte as a DSPy retrieval model (RM) for declarative AI programming.

Module: astrocyte.integrations.dspy Pattern: Retrieval model — __call__(query, k)list[str] (DSPy RM protocol) Framework dependency: dspy (optional)

Terminal window
pip install astrocyte dspy
from astrocyte import Astrocyte
from astrocyte.integrations.dspy import AstrocyteRM
brain = Astrocyte.from_config("astrocyte.yaml")
retriever = AstrocyteRM(brain, bank_id="knowledge-base", default_k=5)
# Use as a DSPy retrieval model
import dspy
dspy.configure(rm=retriever)
# Sync call (DSPy RM protocol)
passages = retriever("What is dark mode?", k=5)
# → ["Calvin prefers dark mode", "Dark mode reduces eye strain"]
# Async methods for programmatic use
passages = await retriever.aretrieve("dark mode")
await retriever.aretain("New knowledge to store")
answer = await retriever.areflect("Summarize what we know")

DSPy’s retrieval model protocol is simple: __call__(query, k) → list[str].

MethodDescriptionReturns
__call__(query, k)Sync retrieval (DSPy RM protocol)list[str] — passage texts
aretrieve(query, k)Async retrievallist[str]
aretain(content, **kwargs)Store contentstr | None — memory_id
areflect(query)Synthesize answerstr

AstrocyteRM(brain, bank_id, *, default_k=5)

Section titled “AstrocyteRM(brain, bank_id, *, default_k=5)”
ParameterTypeDescription
brainAstrocyteConfigured Astrocyte instance
bank_idstrMemory bank for retrieval
default_kintDefault number of passages to return