Getting Started
Prerequisites
Before you begin, make sure you have:
- Python 3.10 or higher
- pip package manager
- Docker installed
Clone the repository
git clone git@github.com:Rakam-AI/rakam_systems.git
cd rakam_systems
Source code architecture
rakam-systems/
│
├─ core/ ← Foundation (required by all others)
│ └─ src/rakam_systems_core/
│ ├─ base.py BaseComponent
│ ├─ interfaces/ Abstract interfaces
│ ├─ config_loader.py Configuration system
│ ├─ tracking.py Input/output tracking
│ └─ utils/ Logging utilities
│
├─ ai-components/
│ ├─ agents/ ← Agent implementations
│ │ └─ src/rakam_systems_agent/
│ │ └─ components/
│ │ ├─ base_agent.py BaseAgent implementation
│ │ ├─ llm_gateway/ LLM provider gateways
│ │ ├─ chat_history/ Chat history backends
│ │ └─ tools/ Built-in tools
│ │
│ └─ vector-store/ ← Vector storage and document processing
│ └─ src/rakam_systems_vectorstore/
│ ├─ core.py Node, VSFile data structures
│ ├─ config.py VectorStoreConfig
│ └─ components/
│ ├─ vectorstore/ Store implementations
│ ├─ embedding_model/ Embedding models
│ ├─ loader/ Document loaders
│ └─ chunker/ Text chunkers
│
├─ tools/ ← Evaluation SDK, S3 utilities, observability
│ └─ src/rakam_systems_tools/
│ ├─ evaluation/ DeepEvalClient, metrics, schemas
│ └─ utils/
│ ├─ s3/ S3-compatible storage wrapper
│ ├─ logging.py Logging utilities
│ ├─ metrics.py Metrics collection
│ └─ tracing.py Tracing utilities
│
└─ cli/ ← Command-line interface for evaluations
└─ src/rakam_systems_cli/
├─ cli.py CLI entry point (rakam eval ...)
├─ decorators.py @eval_run decorator
└─ utils/ CLI utilities
Set up the development environment
Create a virtual environment and install all packages in editable mode (source changes take effect immediately without reinstalling):
python3 -m venv venv
source venv/bin/activate # On macOS/Linux
# On Windows: venv\Scripts\activate
pip install -e core/ -e ai-components/agents/[all] -e ai-components/vector-store/[all] -e tools/ -e cli/
Verify the installation:
python -c "from rakam_systems_agent import BaseAgent; print('OK')"
rakam --help