Skip to main content

PowerML python package

Reason this release was yanked:

Please install most recent version

Project description

PowerML Python Package

Installation

pip install powerml_app

Authentication

You will need two keys: PowerML and OpenAI.

To get a PowerML key, go to https://staging.powerml.co/ and log in with your email. Contact our team if you are unable to log in and we'll add you!

To get an OpenAI key, go to https://beta.openai.com/account/api-keys.

Configuration

In order to use this library, first create a config file at ~/.powerml/configure.yaml with your PowerML and OpenAI keys. Here's an example:

powerml:
    key: "<POWERML-KEY>"
openai:
    key: "<OPENAI-KEY>"

By default, we will use these keys for the PowerML class:

from powerml import PowerML
powerml = PowerML()

You may also configure the PowerML class by passing in a dictionary with the following specified format

from powerml import PowerML
config = {"powerml": {"key": "<POWERML-KEY>"}}
powerml = PowerML(config)

Usage

How to use:

You can use the member functions of the PowerML class, fit and predict, to make predictions with the model and fit data to the model to improve and customize it.

from powerml import PowerML
config = {"powerml": {"key": "<POWERML-KEY>"}}
powerml = PowerML(config)

# Run base model
testPrompt = "hello there"
response = powerml.predict(prompt=testPrompt)

# Fit model to data
data = ["item2", "item3"]
model_details = powerml.fit(data)

# Use new model
new_model_name = model_details["model_name"]
response = powerml.predict(prompt=testPrompt, model=new_model_name)

Note that the default model is OpenAI's text-davinci-003. You may specify a different model in PowerML.fit, such as your new fitted model

model_details = powerml.fit(data, model="<MODEL_NAME>")

Fit

fit will return a dictionary object in the following format:

{
    "model_id":"23",
    "project_id":"None",
    "user_id":"12",
    "job_id":"89",
    "model_name":"be894276039088c5f8db3f6bfaeb19953ed9ffe55f37a847a58f9fb320d307bc",
    "job_config":"{\"type\": \"prompt_tune\", \"model_name\": \"llama\"}",
    "prompt":"item2item3{{input}}",
    "creation_time":"2022-12-20 02:19:36.519260",
    "job":{
        "job_id":"89",
        "project_id":"None",
        "user_id":"12",
        "config":"{\"type\": \"prompt_tune\", \"model_name\": \"llama\"}",
        "status":"COMPLETED",
        "name":"be894276039088c5f8db3f6bfaeb19953ed9ffe55f37a847a58f9fb320d307bc",
        "metric":"None",
        "history":"None",
        "start_time":"2022-12-20 02:19:36.369450",
        "end_time":"2022-12-20 02:19:35.837668"
    }
}

Predict

The PowerML class can use different models you've fitted in the predictions method predict:

response = powerml.predict("test", model="<MODEL_NAME>")

Without the model parameter, the default model is OpenAI's text-davinci-003.

PowerML Class

The PowerML class has member functions fit and predict.

predict accepts the following arguments:

def predict(self,
            prompt: str,
            model: str = "",
            stop: str = "",
            max_tokens: int = 128,
            temperature: int = 0,
            ) -> str:

fit accepts the following arguments:

def fit(self,
        data: list[str],
        model: str = ""):

PowerMLTopicModel Class

The PowerMLTopicModel class is an example class designed to extract topics from the prompt.

Usage

def get_examples():
    examples_path = os.path.join(os.path.dirname(__file__), "examples.json")
    with open(examples_path) as examples_file:
        examples = json.load(examples_file)
    return examples

def get_topics():
    return ["vscode","web","dashboard"]

config = {"powerml": {"key": "<POWERML-KEY>"}}
model = PowerMLTopicModel(get_topics(), config)
examples = get_examples()
model.fit(examples)
topics = model.predict("Move invite teammates page to its own base route . per designs:   This PR just moves existing views around and adds a new base route (i.e. no new functionality)")
print("topics:", topics)

Methods

__init__ is defined as follows:

def __init__(self, topics: list[str], config={}):

fit is defined as follows:

def fit(self, 
        examples: list[
            {"example": str, "labels": list[str]}
        ]):

where examples is a list of dictionaries with format {"example": str, "labels": list[str]}.

predict is defined as follows:

def predict(self, prompt: str):

PowerMLLearnTopics Class

The PowerMLLearnTopics class is an example class designed to generate topics from a list of documents.

Usage

model = PowerMLLearnTopics()
model.add_data(list_of_docs)

topics = model.get_topics()
print(topics)

Methods

__init__ is defined as follows:

def __init__(self, config={}, num_subsamples=100, sample_size=50):

add_data is defined as follows:

def add_data(self, documents):

where documents is a list of strings.

get_topics is defined as follows:

def get_topics(self):

and returns a set of strings

get_filtered_topics is defined as follows:

def get_topics(self):

and returns a set of strings.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

powerml_app-0.0.18.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

powerml_app-0.0.18-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file powerml_app-0.0.18.tar.gz.

File metadata

  • Download URL: powerml_app-0.0.18.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for powerml_app-0.0.18.tar.gz
Algorithm Hash digest
SHA256 955c58bd8d833dcd0272ff98c73dc9d5912b5010ba784be2527c1301bfc2fbfd
MD5 a9fb538e206d5c75921f08641bb316ce
BLAKE2b-256 64d92424cdc3621c8e20cc6417375ed739d5f46d21c6b68279315ff9f1565c63

See more details on using hashes here.

File details

Details for the file powerml_app-0.0.18-py3-none-any.whl.

File metadata

  • Download URL: powerml_app-0.0.18-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for powerml_app-0.0.18-py3-none-any.whl
Algorithm Hash digest
SHA256 d4130e42356e6ee948a6ab56d6ff31076d7723266b960ab7d2b3238f2671c67b
MD5 41d404f58dc03f5c7b4024eb217c732c
BLAKE2b-256 54b533d5415fcd2193acdf4413af5bd7e2a09d109072ed89dae1f687151f9b58

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