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:
-
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
- List available templates:
-
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
-
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>
- List all prompts:
-
Deploy a flow:
pdm run python -m src.mira.cli.mira_cli deploy --flow <path_to_yaml_config> --name <flow_name>
-
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 949c529a3c9310b028aefda9caa2058ece8f39e698b069aafb2df4068c14254a |
|
MD5 | e9a0b36d5639fd56178ac462aae8cafd |
|
BLAKE2b-256 | b14c9c629c8dc1adf98e99d7d8d7188121c0c6de464d4e39f82235cfb30c48fe |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fffa5d0a7c837a111e416490747ec146a88c141dfb6a2022185fcda9d0c1816 |
|
MD5 | ec3e40f34e444a470fe2b46a21f197c0 |
|
BLAKE2b-256 | c2b88c1bb29f4fdfe9fbbf4dc0656e96777cb68ec6a4957c3c8cfcc66926a0f5 |