Swarmauri Core
The Core Library provides the foundational interfaces and abstract base classes necessary for developing scalable and flexible machine learning agents, models, and tools. It is designed to offer a standardized approach to implementing various components of machine learning systems, such as models, parsers, conversations, and vector stores.
Features
- LLMs Interface: Define and interact with predictive models.
class IPredict(ABC):
"""
Interface focusing on the basic properties and settings essential for defining models.
"""
@abstractmethod
def predict(self, *args, **kwargs) -> any:
"""
Generate predictions based on the input data provided to the model.
"""
pass
@abstractmethod
async def apredict(self, *args, **kwargs) -> any:
"""
Generate predictions based on the input data provided to the model.
"""
...
- Agents Interface: Build and manage intelligent agents for varied tasks.
class IAgent(ABC):
@abstractmethod
def exec(self, input_data: Optional[Any], llm_kwargs: Optional[Dict]) -> Any:
"""
Executive method that triggers the agent's action based on the input data.
"""
pass
- Tools Interface: Develop tools with standardized execution and configuration.
class ITool(ABC):
@abstractmethod
def call(self, *args, **kwargs):
pass
@abstractmethod
def __call__(self, *args, **kwargs) -> Dict[str, Any]:
pass
- Parsers and Conversations: Handle and parse text data, manage conversations states.
class IParser(ABC):
"""
Abstract base class for parsers. It defines a public method to parse input data (str or Message) into documents,
and relies on subclasses to implement the specific parsing logic through protected and private methods.
"""
@abstractmethod
def parse(self, data: Union[str, bytes, FilePath]) -> List[IDocument]:
"""
Public method to parse input data (either a str or a Message) into a list of Document instances.
This method leverages the abstract _parse_data method which must be
implemented by subclasses to define specific parsing logic.
"""
pass
- Vector Stores: Interface for vector storage and similarity searches.
class IVectorStore(ABC):
"""
Interface for a vector store responsible for storing, indexing, and retrieving documents.
"""
@abstractmethod
def add_document(self, document: IDocument) -> None:
"""
Stores a single document in the vector store.
Parameters:
- document (IDocument): The document to store.
"""
pass
@abstractmethod
def add_documents(self, documents: List[IDocument]) -> None:
"""
Stores multiple documents in the vector store.
Parameters:
- documents (List[IDocument]): The list of documents to store.
"""
pass
...
- Document Stores: Manage the storage and retrieval of documents.
class IDocumentStore(ABC):
"""
Interface for a Document Store responsible for storing, indexing, and retrieving documents.
"""
@abstractmethod
def add_document(self, document: IDocument) -> None:
"""
Stores a single document in the document store.
Parameters:
- document (IDocument): The document to store.
"""
pass
@abstractmethod
def add_documents(self, documents: List[IDocument]) -> None:
"""
Stores multiple documents in the document store.
Parameters:
- documents (List[IDocument]): The list of documents to store.
"""
pass
Getting Started
To start developing with the Core Library, include it as a module in your Python project. Ensure you have Python 3.10 or later installed.
Steps to install via pypi
pip install swarmauri_core
Usage Example
# Example of using an abstract model interface from the Core Library
from swarmauri_core.llms.IPredict import IPredict
class MyModel(IPredict):
# Implement the abstract methods here
pass
Contributing
Contributions are welcome! If you'd like to add a new feature, fix a bug, or improve documentation, kindly go through the contributions guidelines first.
Metadata
Release files for swarmauri_core 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| swarmauri_core-0.10.0.tar.gz | 60.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| swarmauri_core-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 183.3 kB
Release files / swarmauri_core-0.10.0.tar.gz
| Download URL | swarmauri_core-0.10.0.tar.gz |
|---|---|
| Size | 60.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a759177275a23fecad7b4bc9c218726c1b27a0fe966fd6eaeb1115495b3f490d
|
|
BLAKE2b-256 checksum How to use checksums |
534af68485921082e7c87bf14b82c90145eb450cf068b70a4bd9cbf4c1409e89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / swarmauri_core-0.10.0-py3-none-any.whl
| Download URL | swarmauri_core-0.10.0-py3-none-any.whl |
|---|---|
| Size | 123.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
676823d047946bb8a740a146e9bf2ad13129920011e13539fef1a5de0293cc34
|
|
BLAKE2b-256 checksum How to use checksums |
cf9297efa7dd663bb514f7d657b4c5897b0ab4f545dce38321c9acd0ebdc48b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|