Config-driven enterprise RAG architecture generator for serverless infrastructure
Project description
RAGForge
Config-driven enterprise RAG architecture generator for serverless infrastructure.
RAGForge transforms a single YAML configuration into a production-ready Retrieval-Augmented Generation pipeline. Define your data sources, chunking strategy, embedding model, and retrieval method — RAGForge handles the rest.
Features
- Config-driven — Define your entire RAG pipeline in a single
ragforge.yaml - Auto-adaptive chunking — Automatically selects chunking strategy based on document type (semantic for markdown, recursive for code)
- Hybrid retrieval — Combines semantic similarity with BM25-style keyword matching for better recall
- Pluggable embedders — Local dev embedder (zero API calls) or AWS Bedrock Titan Embed
- FAISS vector store — In-memory similarity search with optional disk persistence, no external services needed
- Minimal dependencies — Only
pyyamlrequired; AWS, FAISS, and OpenSearch are optional - CLI interface —
ragforge init,ingest,query,eval,deploy,status - Cost-aware — Built-in budget tracking and optimization recommendations
Installation
pip install substrai-ragforge
With optional dependencies:
# AWS Bedrock embeddings
pip install substrai-ragforge[aws]
# FAISS vector search
pip install substrai-ragforge[faiss]
# All optional dependencies
pip install substrai-ragforge[all]
Quickstart
1. Initialize a project
ragforge init --name my-rag-project
This creates a ragforge.yaml configuration file.
2. Configure your pipeline
project:
name: my-rag-project
version: "1.0.0"
data_sources:
- name: documentation
type: local
config:
path: ./docs
file_types: [md, txt, pdf]
chunking:
strategy: auto
max_chunk_size: 512
overlap: 50
embedding:
model: bedrock/amazon.titan-embed-text-v2:0
dimensions: 1024
storage:
provider: faiss
index_name: my-project-index
retrieval:
method: hybrid
semantic_weight: 0.7
keyword_weight: 0.3
top_k: 5
3. Ingest documents
ragforge ingest
4. Query your pipeline
ragforge query "How do I configure authentication?"
Python API
from ragforge.core.pipeline import RAGPipeline, Document
# From config file
pipeline = RAGPipeline.from_config("ragforge.yaml")
# Ingest documents
docs = [
Document(content="Your document text...", source="doc.md", doc_type="md")
]
stats = pipeline.ingest(documents=docs)
# Query
results = pipeline.query("What is RAG?", top_k=5)
for result in results:
print(f"[{result.score:.3f}] {result.content[:100]}")
Architecture
ragforge.yaml → Pipeline Orchestrator
├── Chunkers (recursive, semantic, auto-select)
├── Embedders (local dev, Bedrock Titan)
├── Vector Store (FAISS, OpenSearch Serverless)
└── Retrievers (hybrid semantic + keyword)
Project Structure
src/ragforge/
├── core/ # Config parser, pipeline orchestrator
├── chunkers/ # Text chunking strategies
├── embedders/ # Embedding model integrations
├── storage/ # Vector store backends
├── retrievers/ # Retrieval and ranking strategies
├── ingestion/ # Document loading and preprocessing
├── evaluation/ # Quality metrics (MRR, NDCG, recall@k)
├── cost/ # Cost tracking and optimization
└── cli/ # Command-line interface
Development
# Clone and install in development mode
git clone https://github.com/substrai/ragforge.git
cd ragforge
pip install -e ".[dev]"
# Run tests
pytest
# Run specific test module
pytest tests/test_chunking.py -v
License
MIT License — see LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file substrai_ragforge-0.2.0.tar.gz.
File metadata
- Download URL: substrai_ragforge-0.2.0.tar.gz
- Upload date:
- Size: 43.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9905284af000a4498fafd1191e18722ad95a07af025c9fa3a1cb3cab7e062d51
|
|
| MD5 |
a2503c5814fcfbac9c5794c21ec4714e
|
|
| BLAKE2b-256 |
4420cd6ac9525d4ad4b653865c227953233f8022a20ac31442e2cfb49ed0ad97
|
File details
Details for the file substrai_ragforge-0.2.0-py3-none-any.whl.
File metadata
- Download URL: substrai_ragforge-0.2.0-py3-none-any.whl
- Upload date:
- Size: 39.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29d906d44cdb7ed3a822725634fb2cc8aba11d4a78602ce0a375e7d95d530d70
|
|
| MD5 |
10a04c27e30042a31917f9d7f70378da
|
|
| BLAKE2b-256 |
fd73a548266e1ce0cb9ee390e4e864c1734c96d1a1884acdc6a2fa5517527765
|