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.1.1.tar.gz (36.4 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.1.1-py3-none-any.whl (51.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: moderatelyai_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 36.4 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.1.1.tar.gz
Algorithm Hash digest
SHA256 a001ca7669622a55017ff86301699e1885caee1a0320f4c19a2148d5fbbb3391
MD5 e3f9d5ad3e75bbad02462290f5dbf9d0
BLAKE2b-256 66ff354200a4b66a4b96c433176043a2674c48de6759cd60c64d227d9d62722d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: moderatelyai_sdk-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 51.5 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d2fdf1cee1a060a01a3a702864517651e0417de09c554a1455764c6b0af78b44
MD5 c3ac8540fe7d63b837c52e1e57f59295
BLAKE2b-256 819398b4aa818e6ffcbfd691aab01263ac7e7b538828bf0a47d69f2c82d556b7

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