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_stg.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_stg.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_stg-0.1.2.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

mira_sdk_stg-0.1.2-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file mira_sdk_stg-0.1.2.tar.gz.

File metadata

  • Download URL: mira_sdk_stg-0.1.2.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.15

File hashes

Hashes for mira_sdk_stg-0.1.2.tar.gz
Algorithm Hash digest
SHA256 949c529a3c9310b028aefda9caa2058ece8f39e698b069aafb2df4068c14254a
MD5 e9a0b36d5639fd56178ac462aae8cafd
BLAKE2b-256 b14c9c629c8dc1adf98e99d7d8d7188121c0c6de464d4e39f82235cfb30c48fe

See more details on using hashes here.

File details

Details for the file mira_sdk_stg-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: mira_sdk_stg-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.15

File hashes

Hashes for mira_sdk_stg-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8fffa5d0a7c837a111e416490747ec146a88c141dfb6a2022185fcda9d0c1816
MD5 ec3e40f34e444a470fe2b46a21f197c0
BLAKE2b-256 c2b88c1bb29f4fdfe9fbbf4dc0656e96777cb68ec6a4957c3c8cfcc66926a0f5

See more details on using hashes here.

Supported by

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