Skip to main content

Python SDK for Moderately AI platform

Project description

Moderately AI Python SDK

The official Python SDK for the Moderately AI platform, providing programmatic access to agents, datasets, pipelines, and team management.

Features

  • Python 3.8+ Support: Compatible with Python 3.8 and later versions
  • Type Safety: Full type annotations with mypy support
  • Async/Await: Built-in support for asynchronous operations
  • Team-scoped Operations: Automatic filtering and scoping to your team
  • Resource Management: Agents, datasets, pipelines, files, and users
  • Error Handling: Comprehensive exception handling for different error scenarios
  • Rate Limiting: Built-in rate limit handling and retry logic
  • Modern Tooling: Uses PDM for dependency management, Ruff for linting, and pytest for testing

Installation

pip install moderatelyai-sdk

Quick Start

import moderatelyai_sdk

# Initialize with environment variables (recommended)
client = moderatelyai_sdk.ModeratelyAI()  # reads MODERATELY_API_KEY and MODERATELY_TEAM_ID

# Or initialize with explicit parameters
client = moderatelyai_sdk.ModeratelyAI(
    team_id="your-team-id",
    api_key="your-api-key"
)

# Use the client - all operations are automatically scoped to your team
users = client.users.list()
dataset = client.datasets.create(name="My Dataset")
agents = client.agents.list()

Usage

Working with Datasets

from moderatelyai_sdk import ModeratelyAI

client = ModeratelyAI(team_id="your-team-id", api_key="your-api-key")

# Create a dataset
dataset = client.datasets.create(
    name="Customer Data",
    description="Customer interaction dataset"
)

# Upload data to the dataset
version = dataset.upload_data("/path/to/data.csv")
print(f"Uploaded version {version.version_no} with {version.row_count} rows")

# List all datasets
datasets = client.datasets.list()

Working with Agents

# List all agents in your team
agents = client.agents.list()

# Create and run an agent execution
execution = client.agent_executions.create(
    agent_id="agent_123",
    input_data={"query": "Process this data"}
)

Using Context Manager

from moderatelyai_sdk import ModeratelyAI

with ModeratelyAI(team_id="your-team-id", api_key="your-api-key") as client:
    users = client.users.list()
    print(f"Found {len(users)} users")

Error Handling

from moderatelyai_sdk import ModeratelyAI, APIError, AuthenticationError

client = ModeratelyAI(team_id="your-team-id", api_key="your-api-key")

try:
    dataset = client.datasets.create(name="Test Dataset")
except AuthenticationError:
    print("Invalid API key")
except APIError as e:
    print(f"API error: {e}")
    if hasattr(e, 'status_code'):
        print(f"Status code: {e.status_code}")

Configuration

The client can be configured with various options:

client = ModeratelyAI(
    team_id="your-team-id",
    api_key="your-api-key",
    base_url="https://api.moderately.ai",  # Custom API endpoint
    timeout=30,                            # Request timeout in seconds
    max_retries=3                          # Maximum retry attempts
)

Development

This project uses PDM for dependency management. To set up the development environment:

# Install PDM
pip install pdm

# Install dependencies
pdm install

# Install pre-commit hooks
pdm run pre-commit install

# Run tests
pdm run pytest

# Run linting
pdm run ruff check .
pdm run ruff format .

# Type checking
pdm run mypy src/

API Reference

ModeratelyAI

The main client class for interacting with the Moderately AI API.

Resource Groups

  • client.users: Manage users in your team
  • client.teams: Manage team settings and information
  • client.agents: Manage AI agents
  • client.agent_executions: Create and monitor agent executions
  • client.datasets: Manage datasets with rich functionality (upload, download, schema management)
  • client.pipelines: Manage data pipelines
  • client.files: Upload and manage files

Exceptions

  • ModeratelyAIError: Base exception class
  • APIError: Raised for API-related errors
  • AuthenticationError: Raised for authentication failures
  • ConflictError: Raised for resource conflicts
  • NotFoundError: Raised when resources are not found
  • RateLimitError: Raised when rate limits are exceeded
  • TimeoutError: Raised for request timeouts
  • UnprocessableEntityError: Raised for validation errors
  • ValidationError: Raised for input validation errors

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For questions and support, please visit our GitHub repository or contact us at sdk@moderately.ai.

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

moderatelyai_sdk-0.2.1.tar.gz (47.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

moderatelyai_sdk-0.2.1-py3-none-any.whl (79.9 kB view details)

Uploaded Python 3

File details

Details for the file moderatelyai_sdk-0.2.1.tar.gz.

File metadata

  • Download URL: moderatelyai_sdk-0.2.1.tar.gz
  • Upload date:
  • Size: 47.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.25.5 CPython/3.11.12 Darwin/24.5.0

File hashes

Hashes for moderatelyai_sdk-0.2.1.tar.gz
Algorithm Hash digest
SHA256 fb2e876f313b5d3901bdf5685a6fb0a7b02549d72dc984fae7fa8fc2d3e4a22e
MD5 c96910d17096a9305246c2f92b44ae4c
BLAKE2b-256 9302479db0fb73abcc95e769c085e2b4e093e62cc061f94b92a8eaad22b3e88c

See more details on using hashes here.

File details

Details for the file moderatelyai_sdk-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: moderatelyai_sdk-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 79.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.25.5 CPython/3.11.12 Darwin/24.5.0

File hashes

Hashes for moderatelyai_sdk-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7b8d0c9a05b8b56949995559e9c72a02e38d1829cbe227f6cbc94b3c548d7f34
MD5 02581b8cd43fa7d0f771a023b3046278
BLAKE2b-256 ed8f742e1978c68bb6adca7c65e2e6d4b1d76101a435e122b198aec256a9bee0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page