LlamaIndex Integration
The llamaindex-dakera package provides persistent memory and vector indexing for LlamaIndex pipelines. Dakera handles embeddings server-side — no local GPU or embedding API needed.
Quick Start
pip install llamaindex-dakera
Requires Python ≥ 3.10 and a running Dakera server.
from llama_index_dakera import DakeraMemoryStore, DakeraIndexStore
# Semantic memory
store = DakeraMemoryStore(
api_url="http://localhost:3300",
api_key="dk-mykey",
agent_id="my-agent",
)
# Vector index for RAG
index = DakeraIndexStore(
api_url="http://localhost:3300",
api_key="dk-mykey",
namespace="my-docs",
)
Features
- DakeraMemoryStore — semantic memory with importance scoring and decay
- DakeraIndexStore — vector index compatible with LlamaIndex's
VectorStoreQuery - DakeraSessionManager — session lifecycle tracking
- DakeraKnowledgeGraph — entity-relationship graph operations
- DakeraEntityExtractor — automatic entity extraction
- DakeraNamespaceManager — multi-tenant namespace isolation
Examples
Agent memory
from llama_index_dakera import DakeraMemoryStore
store = DakeraMemoryStore(
api_url="http://localhost:3300",
api_key="dk-mykey",
agent_id="llamaindex-demo",
recall_k=3,
default_importance=0.8,
)
store.put("The user prefers Python over JavaScript.")
store.put("Project deadline is next Friday.", memory_type="episodic", importance=0.9)
store.put("The codebase uses FastAPI with SQLAlchemy.", memory_type="semantic")
memories = store.get("programming language preferences")
for m in memories:
print(f" [{m['score']:.3f}] {m['content']}")
RAG pipeline with VectorStoreQuery
from llama_index.core.schema import TextNode
from llama_index.core.vector_stores.types import VectorStoreQuery
from llama_index_dakera import DakeraIndexStore
store = DakeraIndexStore(
api_url="http://localhost:3300",
api_key="dk-mykey",
namespace="rag-demo",
)
nodes = [
TextNode(text="Dakera provides persistent memory for AI agents.", metadata={"topic": "overview"}),
TextNode(text="Vector search uses cosine similarity over embeddings.", metadata={"topic": "search"}),
TextNode(text="Server-side embedding removes the need for local GPUs.", metadata={"topic": "architecture"}),
]
ids = store.add(nodes)
query = VectorStoreQuery(query_str="How does Dakera handle embeddings?", similarity_top_k=2)
result = store.query(query)
for node, score in zip(result.nodes, result.similarities):
print(f" [{score:.3f}] {node.text}")
API Reference
DakeraMemoryStore options
| Parameter | Type | Default | Description |
|---|---|---|---|
api_url | str | — | Dakera server URL |
api_key | str | "" | API key |
agent_id | str | — | Agent identifier |
recall_k | int | 5 | Results per recall query |
default_importance | float | 0.7 | Default importance for stored memories |
DakeraIndexStore options
| Parameter | Type | Default | Description |
|---|---|---|---|
api_url | str | — | Dakera server URL |
api_key | str | "" | API key |
namespace | str | — | Vector namespace |
Configuration
export DAKERA_API_URL=http://localhost:3300
export DAKERA_API_KEY=dk-your-key