Skip to main content
Version: v0.3.0

Rakam System Core

The core package of Rakam Systems providing foundational interfaces, base components, and utilities.

Overview​

rakam-systems-core is the foundation of the Rakam Systems framework. It provides:

  • Base Component: Abstract base class with lifecycle management
  • Interfaces: Standard interfaces for agents, tools, vector stores, embeddings, and loaders
  • Configuration System: YAML/JSON configuration loading and validation
  • Tracking System: Input/output tracking for debugging and evaluation
  • Logging Utilities: Structured logging with color support

This package is required by both rakam-systems-agent and rakam-systems-vectorstore.

Installation​

pip install rakam-systems-core

Key Components​

BaseComponent​

All components extend BaseComponent which provides:

  • Lifecycle management with setup() and shutdown() methods
  • Auto-initialization via __call__
  • Context manager support
  • Built-in evaluation harness
from rakam_systems_core.ai_core.base import BaseComponent

class MyComponent(BaseComponent):
def setup(self):
super().setup()
# Initialize resources

def shutdown(self):
# Clean up resources
super().shutdown()

def run(self, *args, **kwargs):
# Main logic
pass

Interfaces​

Standard interfaces for building AI systems:

  • AgentComponent: AI agents with sync/async support
  • ToolComponent: Callable tools for agents
  • LLMGateway: LLM provider abstraction
  • VectorStore: Vector storage interface
  • EmbeddingModel: Text embedding interface
  • Loader: Document loading interface
  • Chunker: Text chunking interface
from rakam_systems_core.ai_core.interfaces.agent import AgentComponent
from rakam_systems_core.ai_core.interfaces.tool import ToolComponent
from rakam_systems_core.ai_core.interfaces.vectorstore import VectorStore

Configuration System​

Load and validate configurations from YAML files:

from rakam_systems_core.ai_core.config_loader import ConfigurationLoader

loader = ConfigurationLoader()
config = loader.load_from_yaml("agent_config.yaml")
agent = loader.create_agent("my_agent", config)

Tracking System​

Track inputs and outputs for debugging:

from rakam_systems_core.ai_core.tracking import TrackingMixin

class MyAgent(TrackingMixin, BaseAgent):
pass

agent.enable_tracking(output_dir="./tracking")
# Use agent...
agent.export_tracking_data(format='csv')

Package Structure​

rakam-systems-core/
├── src/rakam_systems_core/
│ ├── ai_core/
│ │ ├── base.py # BaseComponent
│ │ ├── interfaces/ # Standard interfaces
│ │ ├── config_loader.py # Configuration system
│ │ ├── tracking.py # I/O tracking
│ │ └── mcp/ # MCP server support
│ └── ai_utils/
│ └── logging.py # Logging utilities
└── pyproject.toml

Usage in Other Packages​

Agent Package​

# rakam-systems-agent uses core interfaces
from rakam_systems_core.ai_core.interfaces.agent import AgentComponent
from rakam_systems_agent import BaseAgent

agent = BaseAgent(name="my_agent", model="openai:gpt-4o")

Vectorstore Package​

# rakam-systems-vectorstore uses core interfaces
from rakam_systems_core.ai_core.interfaces.vectorstore import VectorStore
from rakam_systems_vectorstore import ConfigurablePgVectorStore

store = ConfigurablePgVectorStore(config=config)

Development​

This package contains only interfaces and utilities. To contribute:

  1. Fork Rakam Systems repo
  2. Make changes to interfaces or utilities
  3. Ensure backward compatibility with agent and vectorstore packages
  4. Update version in pyproject.toml
  5. Open PR

License​

Apache 2.0