https://github.com/swarmauri/swarmauri-sdk
a modular multimodal framework for ai applications
https://github.com/swarmauri/swarmauri-sdk
agents ai chunking factories llm-framework measures metrics modular monorepo nlp orchestration orchestration-framework parsing tooling tools vectors
Last synced: 15 days ago
JSON representation
a modular multimodal framework for ai applications
- Host: GitHub
- URL: https://github.com/swarmauri/swarmauri-sdk
- Owner: swarmauri
- License: apache-2.0
- Created: 2024-04-08T03:39:16.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-31T12:17:24.000Z (23 days ago)
- Last Synced: 2025-03-31T12:30:02.964Z (23 days ago)
- Topics: agents, ai, chunking, factories, llm-framework, measures, metrics, modular, monorepo, nlp, orchestration, orchestration-framework, parsing, tooling, tools, vectors
- Language: Python
- Homepage: https://swarmauri.com
- Size: 23.1 MB
- Stars: 88
- Watchers: 6
- Forks: 44
- Open Issues: 224
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README

---
# Swarmauri SDK
The Swarmauri SDK provides a powerful, extensible framework for building AI-powered applications. This repository includes core interfaces, standard abstract base classes, and concrete reference implementations.
## Installation Options
Swarmauri offers multiple installation options to suit different needs:
### Option 1: Complete SDK Installation
For a full-featured experience with all standard components:
```bash
# Install the main namespace package with standard components
pip install swarmauri# Install the main namespace package with extra standard components
pip install swarmauri[full]
```### Option 2: Core Only
For a minimal installation with just the core interfaces:```bash
# Install only the core components
pip install swarmauri_core
```### Option 3: Experimental Components
Add additional experimental components:
```bash# Add experimental features (optional)
pip install swarmauri_experimental
```### Option 4: Standalone Packages
Install specific packages for targeted functionality:
```bash
# Install only the vector store implementations you need
pip install swarmauri_vectorstore_pinecone
pip install swarmauri_vectorstore_annoy# Install specific tools
pip install swarmauri_tool_jupyterexportlatex
```### Development Installation
For contributors or those wanting the latest features:
```bash
# Clone the repository
git clone https://github.com/swarmauri/swarmauri-sdk.git
cd swarmauri-sdk# Install in development mode
pip install -e .# Or with UV for faster installation
pip install uv
uv pip install -e .
```## Using Swarmauri Components
### Method 1: Access via Namespace (Recommended)
The namespace approach provides a clean, unified interface to all components:
```python
# Import through the swarmauri namespace
from swarmauri.vectorstores import PineconeVectorStore, AnnoyVectorStore
from swarmauri.documents import Document
from swarmauri.tools import JupyterExportLatexTool# Create a vector store
vector_store = PineconeVectorStore(
api_key="your-api-key",
environment="your-environment",
index_name="your-index"
)# Create a document
document = Document(
content="Sample text content",
metadata={"source": "example"}
)# Add document to vector store
vector_store.add_document(document)# Retrieve similar documents
results = vector_store.retrieve("query text", top_k=5)
```
### Method 2: Direct Package Access
For more explicit imports or when working with specific packages:```python
# Import directly from individual packages
from swarmauri_vectorstore_pinecone import PineconeVectorStore
from swarmauri_standard.documents import Document
from swarmauri_tool_jupyterexportlatex import JupyterExportLatexTool# Use components as before
vector_store = PineconeVectorStore(...)
```## Package Structure
The Swarmauri SDK is organized into several key packages:- `swarmauri_core`: Core interfaces and constants
- `swarmauri_base`: Abstract base classes for extensibility
- `swarmauri_standard`: Standard implementations of common components
- `swarmauri`: Main namespace package that unifies all components
- `swarmauri_experimental`: Experimental features under developmentIndividual components follow these naming conventions:
- `swarmauri_vectorstore_`*: Vector database integrations
- `swarmauri_embedding_`*: Embedding model implementations
- `swarmauri_tool_`*: Task-specific tools
- `swarmauri_parser_`*: Text parsing utilities
- `swarmauri_distance_`*: Distance calculation methods## For Contributors
If you want to contribute to the Swarmauri SDK, please read our [guidelines for contributing](https://github.com/swarmauri/swarmauri-sdk/blob/master/CONTRIBUTING.md) and [style guide](https://github.com/swarmauri/swarmauri-sdk/blob/master/STYLE_GUIDE.md) to get started.### Creating a New Plugin
Swarmauri uses Python's entry point system for plugin discovery. Here's how to register your component:```python
# In your pyproject.toml
[project.entry-points.'swarmauri.vectorstores']
YourVectorStore = "swarmauri_vectorstore_yourplugin:YourVectorStore"# In your implementation file
@ComponentBase.register_type(VectorStoreBase, "YourVectorStore")
class YourVectorStore(VectorStoreBase):
# Your implementation
```## License
The Swarmauri SDK is licensed under the Apache License 2.0. See the [LICENSE](https://github.com/swarmauri/swarmauri-sdk/blob/master/LICENSE) file for details.