Skip to main content

A Python SDK for the Mira API

Project description

mira-sdk / mira-cli

Prerequisites

  • Python >= 3.10
  • pip
  • pdm

Setup

pdm sync

Usage

CLI Commands

The mira-cli provides several commands for managing flows, prompts, and executing operations. Here's a brief overview of the available commands:

  1. Initialize a flow:

    pdm run python -m src.mira.cli.mira_cli init --flow <flow_name> --template <template_name>
    
    • List available templates:
      pdm run python -m src.mira.cli.mira_cli init --list
      
  2. Execute a flow: - #TODO - lets call this as local testing or local run

    pdm run python -m src.mira.cli.mira_cli execute --config <path_to_config_file> --input key1=value1 key2=value2
    
  3. Manage prompts: - we have to start with prompts

    • List all prompts:
      pdm run python -m src.mira.cli.mira_cli prompts --lists
      
    • Show details of a specific prompt:
      pdm run python -m src.mira.cli.mira_cli prompts --show --prompt-name <author/prompt_name>
      
  4. Deploy a flow:

    pdm run python -m src.mira.cli.mira_cli deploy --flow <path_to_yaml_config> --name <flow_name>
    
  5. Execute a deployed flow:

    pdm run python -m src.mira.cli.mira_cli execute-flow --flow-name <flow_name> --input-data '{"key": "value"}'
    

For more detailed information on each command and its options, use the --help flag:

SDK Usage

The Mira SDK provides a simple way to execute flows and build custom flows programmatically. Here are examples of how to use the SDK:

Executing a Flow

To execute a flow using the MiraClient:

from mira_sdk.mira.client.mira_client import MiraClient

client = MiraClient("flows/person.yaml")
result = client.execute({"coin": "Solana"})
print(result)

This script loads a flow from a YAML file and executes it with the given input.

Building a Custom Flow

#TODO - lets skip this piece for now

To create a custom flow using the FlowBuilder:

from mira_sdk.mira.builder.flow_builder import FlowBuilder

builder = FlowBuilder()

# Set flow name and description
builder.set_name("SimpleTextGenerator")
builder.set_description("Persona Impersonator")

# Add resources
builder.add_prompt([{"second_prompt": "Generate a short story about {person} at {club}", "type": "local"},
                    {"main_prompt": "@aroha-labs/klok/1.0.0", "type": "mira"}])
builder.add_resource("knowledge", "writing_tips", {"file": "writing_tips.txt"})
builder.add_resource("models", "story_generator", {"type": "gpt-3.5-turbo"})

# Add component
builder.add_component(
    "story_generator",
    "Generator",
    {
        "prompt": "{resources.prompts.main_prompt}",
        "models": "{resources.models.story_generator}",
    },
)

# Add flow step
builder.add_flow_step(
    "story_generator",
    inputs=[{"person": "request", "club": "request"}],
    outputs=[{"target": "response"}]
)

# Save the flow
builder.save("flows/person.yaml")

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

mira_sdk-0.1.16.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

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

mira_sdk-0.1.16-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file mira_sdk-0.1.16.tar.gz.

File metadata

  • Download URL: mira_sdk-0.1.16.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for mira_sdk-0.1.16.tar.gz
Algorithm Hash digest
SHA256 ddcc3ede46986716fe730c3ee713e9090e5c98bdf6bd09fd4f9f7cbb7fd038d5
MD5 e0e6f98bdd96f8a0ce80002aecfd0f86
BLAKE2b-256 400cbda1d8edd42dab628b6376f64337f8b364d548c16a7cb3e166c6f5b901de

See more details on using hashes here.

File details

Details for the file mira_sdk-0.1.16-py3-none-any.whl.

File metadata

  • Download URL: mira_sdk-0.1.16-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for mira_sdk-0.1.16-py3-none-any.whl
Algorithm Hash digest
SHA256 d7fea26d75fc6d0abe2febcae74e9d934210562cb315ccba6ca8977fb8258f19
MD5 a1bcc92b0663145e200dca1f0f33f547
BLAKE2b-256 ca496b3ab74a086f82198919d4f5781275b4d846e07286297b14cf9a7c1e2074

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