Rakam Systems - Modular AI framework with agents, vectorstore, and LLM gateway
Project description
🏴☠️ Overview 🏴☠️
rakam_systems is a Python library that provides a framework to easily build & deploy AI and Generative AI systems.
You can build any System by combining Components, where you can either use some from our library or completely customise them. Both ways, they come with a suite of features built for production such as integrated evaluation and automatic deployment on your preferred cloud solution. We like to think of it as the child between Haystack & Terraform-OpenTofu.
🥵 Problem Statement
Building custom AI and Gen AI systems can be challenging due to the need for flexibility, scalability, and production-readiness. Developers often face problems like:
-
Complexity: Creating AI systems from scratch is complex, especially when combining different technologies for model management, data processing, and integration.
-
Scalability: Ensuring that AI systems can handle large-scale data and provide efficient, real-time responses.
-
Integration: Standardizing and fluid data communication between the different core components of an AI System, especially when deployed on different servers.
-
Maintenance & Updates: The AI landscape evolves rapidly, and maintaining systems with the latest models and technologies is challenging, stressful and costly.
rakam_systems addresses these challenges by offering a flexible, lean framework that helps developers build AI systems efficiently, while minimizing code maintenance overhead and focusing on ease of deployment.
✨ Key Features
-
Modular Framework:
rakam_systemsis a framework for building AI and Gen AI systems, with Components serving as the core building blocks. -
Customizability: Designed to provide robust tools for developing custom Gen AI solutions. Many classes are abstract, offering flexibility while keeping the codebase streamlined by limiting predefined functionality to common use cases.
-
Production-Ready: Built for scalability and ease of deployment:
- Libraries are chosen for their efficiency and scalability.
- Components exchange data in a structured way, facilitating API integration.
- Includes Docker/Django API templates for easy deployment: Service Template.
-
Lean Design: Focused on minimizing breaking changes and ensuring code fluidity.
-
Best-in-Class Supporting Tools & Approaches: We select the best libraries and technical approaches for each specific task to keep the codebase lean and manageable, addressing the challenge of evolving technologies. We welcome contributions to improve these approaches and are open to new ideas.
-
Selected Libraries:
- Best LLM: OpenAI has the best models in the world and we've chosen it as the main LLM API OpenAI
- EU LLM: Mistral AI is the best European model provider and will have lasting conformity to the AI Act. Mistral AI
- Transformers & Models: Hugging Face was chosen for its extensive support for a wide range of pre-trained models and its active community. Hugging Face (HF)
- Vector Stores: FAISS was selected for its efficiency and scalability in managing large-scale vector similarity searches. FAISS
- File storage: While you can work with local files, we allow users to work with buckets using the S3 framework. S3
-
Engine Update: We also deploy regular Engine Updates to ensure that the library stays current with the latest advancements in AI, minimizing maintenance challenges.
Use Cases
With rakam_systems, you can build:
-
Retrieval-Augmented Generation (RAG) Systems: Combine vector retrieval with LLM prompt generation for enriched responses. Learn more
-
Agent Systems: Create modular agents that perform specific tasks using LLMs. Link to come
-
Chained Gen AI Systems: Develop systems that chain multiple AI tasks together for complex workflows. Link to come
-
Search Engines: Develop search engines based on fine-tunned embeddings models on any modality ( text, sound or video ). Link to come
-
Any Custom AI System: Use components to create any AI solution tailored to your needs.
Installation
To install rakam_systems, clone the repository and install it in editable mode to include all dependencies:
git clone <repository_url> rakam_systems
cd rakam_systems
pip install -e .
Dependencies
faisssentence-transformerspandasopenaipymupdfplaywrightjoblibrequests
Examples
Check out the following links for detailed examples of what you can build using rakam_systems:
- RAG Systems: RAG Documentation
- Vector Search: Vector Store Documentation
- Agent Systems: Link to come
- Chained Gen AI Systems: Link to come
Core Components
rakam_systems provides several core components to facilitate building AI systems:
- Vector Stores: Manage and query vector embeddings for fast retrieval.
- Content Extraction: Extract data from PDFs, URLs, and JSON files.
- Node Processing: Split content into smaller, manageable chunks.
- Modular Agents: Implement custom tasks such as classification, prompt generation, and RAG.
For more details on how to use each of these components, please refer to the documentation here.
Contributing
We welcome contributions! To contribute:
- Fork the Repository: Start by forking the
rakam_systemsrepository to your GitHub account. - Clone the Forked Repository: Clone the forked repository to your local machine:
git clone <forked_repository_url> rakam_systems cd rakam_systems
- Install in Editable Mode: Install
rakam_systemsin editable mode to make development easier:pip install -e .
- Create a Branch: Create a feature branch (
git checkout -b feature-branch). - Make Changes: Implement your changes and commit them with a meaningful message (
git commit -m 'Add new feature'). - Push the Branch: Push your changes to your feature branch (
git push origin feature-branch). - Submit a Pull Request: Go to the original
rakam_systemsrepository on GitHub and submit a pull request for review.
For more details, refer to the Contribution Guide.
License
This project is licensed under the Apache-2.0 license.
Support
For any issues, questions, or suggestions, please contact mohammed@rakam.ai.
Project details
Release history Release notifications | RSS feed
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 rakam_systems-0.2.5rc6.tar.gz.
File metadata
- Download URL: rakam_systems-0.2.5rc6.tar.gz
- Upload date:
- Size: 87.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d67c206ba18f4d9ec4f2dc9702406edb92595574900e1f1cea25b85ae1659fc7
|
|
| MD5 |
7622880d5b91865454ffed04ab6342bc
|
|
| BLAKE2b-256 |
a4ad4f61766a9eec060a1993e83bcf0b96082d0999079b98a808cb9ffe826fd8
|
File details
Details for the file rakam_systems-0.2.5rc6-py3-none-any.whl.
File metadata
- Download URL: rakam_systems-0.2.5rc6-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c98bf6d171b2a85d5efbf15fc769d20de7417fa7262a24c349611614fd00092
|
|
| MD5 |
aafefa7cc22a4957ed7268f0d27923ef
|
|
| BLAKE2b-256 |
41c5b3cacef66b848351d0ea33562ee6e08e9cebd92c33ff035df1a01f3e034d
|