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()andshutdown()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:
- Fork Rakam Systems repo
- Make changes to interfaces or utilities
- Ensure backward compatibility with agent and vectorstore packages
- Update version in
pyproject.toml - Open PR
License
Apache 2.0