Python API
The Python API is the most feature-complete interface for Reeflect, offering deep integration capabilities for Python applications.
Core Classes
Reeflect
The main entry point for the memory system, providing access to all core functionality.
Memory
Represents a single memory item with content, metadata, and relationships.
BaseMemoryAdapter
Base class for LLM provider adapters, with implementations for OpenAI, Anthropic, etc.
MemoryStorage
Abstract base class for storage backends, with implementations for various databases.
Basic Operations
Memory Creation and Retrieval
# Create a memory
memory_id = memory.create(
content="The user prefers dark mode in all applications.",
namespace="user_preferences",
importance=0.8,
tags=["ui", "theme", "preference"]
)
# Retrieve a memory by ID
memory_obj = memory.retrieve(memory_id)
# Query memories by filter
memories = memory.query(
filter_params={"tags": ["preference"]},
namespace="user_preferences",
limit=10
)
# Search memories by semantic similarity
results = memory.search(
query="What theme does the user prefer?",
namespace="user_preferences",
limit=5
)
Memory Update and Deletion
# Update a memory
memory.update(
memory_id=memory_id,
content="The user prefers dark mode for desktop applications, but light mode for mobile.",
importance=0.9
)
# Delete a memory
memory.delete(memory_id)
Prompt Enhancement
# Enhance a prompt with relevant memories
enhanced_prompt = memory.enhance_prompt(
prompt="What theme should I use for the dashboard?",
namespace="user_preferences",
max_memories=3,
max_tokens=800
)
# Generate a response with the enhanced prompt
client = memory.adapter.client
response = client.chat.completions.create(
model="gpt-4-turbo-preview",
messages=[
{"role": "system", "content": "You are a helpful assistant with memory."},
{"role": "user", "content": enhanced_prompt}
]
)
Memory Extraction
# Extract memories from a conversation
conversation = [
{"role": "user", "content": "I prefer to see data visualizations in blue and green colors."},
{"role": "assistant", "content": "I'll make note of your color preferences for visualizations."},
{"role": "user", "content": "And please always use a light background with dark text."},
{"role": "assistant", "content": "Got it, I'll remember to use light backgrounds with dark text."}
]
extracted_memories = memory.extract_memories(
conversation=conversation,
namespace="user_preferences",
min_importance=0.6,
auto_store=True
)
Advanced Features
Memory Reasoning
# Reason using memories
reasoning_result = memory.reason(
query="What kind of dashboard design would be best for this user?",
namespace="user_preferences",
max_memories=7,
instruction="Focus on UI preferences, color choices, and theme preferences."
)
Memory Relationships
from reeflect.core.memory import MemoryRelationType
# Create related memories
memory_id1 = memory.create(
content="The user prefers dark mode in desktop applications.",
namespace="user_preferences"
)
memory_id2 = memory.create(
content="The user prefers light mode in mobile applications.",
namespace="user_preferences"
)
# Create a relationship between memories
memory.add_relation(
source_id=memory_id1,
target_id=memory_id2,
relation_type=MemoryRelationType.RELATED,
metadata={"context": "device-specific preferences"}
)
# Retrieve memory with relationships
memory_obj = memory.retrieve(memory_id1)
related_memories = memory.get_related_memories(
memory_id=memory_id1,
relation_types=[MemoryRelationType.RELATED],
include_metadata=True
)
Memory Batch Operations
# Batch create memories
memories_to_create = [
{
"content": "The user prefers sans-serif fonts.",
"namespace": "user_preferences",
"importance": 0.7,
"tags": ["typography", "ui"]
},
{
"content": "The user prefers compact layouts with high information density.",
"namespace": "user_preferences",
"importance": 0.8,
"tags": ["layout", "ui"]
},
{
"content": "The user prefers seeing data in tables rather than charts.",
"namespace": "user_preferences",
"importance": 0.6,
"tags": ["data_visualization", "ui"]
}
]
memory_ids = memory.batch_create(memories_to_create)
# Batch update memories
updates = [
{"id": memory_ids[0], "importance": 0.9},
{"id": memory_ids[1], "tags": ["layout", "ui", "density"]},
{"id": memory_ids[2], "content": "The user prefers seeing data in tables rather than charts, except for time series data."}
]
memory.batch_update(updates)
Installation
# Install from PyPI
pip install reeflect
# Install with visualization extras
pip install reeflect[visualization]
# Install with all optional dependencies
pip install reeflect[all]
Full API Reference
For complete documentation of all Python API classes, methods, and parameters, please refer to the full Python API reference.
Next Steps
Learn how to use the Python API in specific scenarios: