Skip to main content

A package for managing workflows with various functions.

Project description

SegmindWorkflow

SegmindWorkflow is a Python package that provides a structured approach to handling multiple API calls in a sequence. It is designed to query a prompt, manage a function call sequence based on API responses, and execute these functions in a defined order. The package keeps track of the context, cost, and credits left after each function call.

Installation

To install the SegmindWorkflow package, you can use pip. Run the following command:

pip install SegmindWorkflow
Usage
Import the package
First, import the Workflow class from the SegmindWorkflow package:

python
Copy code
from segmindworkflow import Workflow
Initialization
You can initialize the Workflow class by passing an API key, which will be used for the external API requests.

python
Copy code
api_key = "your_api_key_here"
workflow = Workflow(api_key)
1. Query the Workflow
The query method allows you to send a prompt to the external API. Based on the prompt, the API will return a sequence of function calls and an updated context that will be used for further queries or function executions.

Parameters:

prompt (str): The input string (or query) you want to send to the API.
python
Copy code
prompt = "Find the best solution for my query"
workflow.query(prompt)
This method will update:

The function call sequence
The context for future requests
2. Execute the Function Sequence
Once the function call sequence is generated, you can execute it using the call method. This method will go through each function in the sequence and make API requests to execute them in order.

Parameters:

input_data (dict): The input data required by the functions in the sequence.
python
Copy code
input_data = {
    "param1": "value1",
    "param2": "value2"
}
workflow.call(input_data)
3. Get the Function Call Sequence
You can retrieve the sequence of function calls generated by the last query using the get_sequence method.

python
Copy code
sequence = workflow.get_sequence()
print("Function call sequence:", sequence)
4. Get the Results
After executing the function call sequence, you can retrieve the results using the get_result method.

python
Copy code
results = workflow.get_result()
print("Results:", results)
5. Check Remaining Credits
Each function call reduces the available credits. You can check how many credits you have left after making function calls with the w_of_credits_left method.

python
Copy code
credits_left = workflow.w_of_credits_left()
print("Credits left:", credits_left)
6. Calculate Total Cost
The w_of_cost method calculates the total cost of the function call sequence based on the prices defined for each function.

python
Copy code
total_cost = workflow.w_of_cost()
print("Total cost:", total_cost)
7. Reset the Workflow
If you need to reset the workflow (clear context, query sequence, etc.), you can use the reset method. This will reset everything except the credits left.

python
Copy code
workflow.reset()
Error Handling
Each method will raise meaningful errors if they are called in the wrong order. For example:

Calling get_sequence() before query() will raise an error.
Calling get_result() before call() will raise an error.
You cannot calculate the cost of the function sequence before generating it with a query.
These checks ensure that the workflow is followed properly.

Example Usage
Here's a complete example that showcases the usage of the SegmindWorkflow package:

python
Copy code
from segmindworkflow import Workflow

# Step 1: Initialize the workflow with an API key
api_key = "your_api_key"
workflow = Workflow(api_key)

# Step 2: Query the workflow with a prompt
prompt = "Optimize the cost of running my application"
workflow.query(prompt)

# Step 3: Execute the sequence of function calls
input_data = {"param1": "value1"}
workflow.call(input_data)

# Step 4: Retrieve the function call sequence
sequence = workflow.get_sequence()
print("Function Call Sequence:", sequence)

# Step 5: Retrieve the results of the function calls
results = workflow.get_result()
print("Results:", results)

# Step 6: Check remaining credits
credits_left = workflow.w_of_credits_left()
print("Credits left:", credits_left)

# Step 7: Calculate the total cost
total_cost = workflow.w_of_cost()
print("Total cost:", total_cost)

# Step 8: Reset the workflow for a new session
workflow.reset()
License
This project is licensed under the MIT License.

Contributing
If you want to contribute to this package, feel free to fork the repository and submit a pull request.

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

segmind_workflow-0.1.5.tar.gz (82.2 kB view details)

Uploaded Source

Built Distribution

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

segmind_workflow-0.1.5-py3-none-any.whl (80.3 kB view details)

Uploaded Python 3

File details

Details for the file segmind_workflow-0.1.5.tar.gz.

File metadata

  • Download URL: segmind_workflow-0.1.5.tar.gz
  • Upload date:
  • Size: 82.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for segmind_workflow-0.1.5.tar.gz
Algorithm Hash digest
SHA256 1cd0b1d503ee8c044d23067485ccc886cad60bb25c7f7ef6ed6fccbb4dd0968b
MD5 3f0861a8aa691de95db739092e0577a2
BLAKE2b-256 d157ba32e4067e9d354a6650e9da2bb66c8c2d8b1ab4baec22bf112b08d71a87

See more details on using hashes here.

File details

Details for the file segmind_workflow-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for segmind_workflow-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ec69f6092ade27a92f2be80302a558e8949d81ef20e282d493376bab65b1b807
MD5 cd74bc3469d8dbcb6d0da57219924f70
BLAKE2b-256 1de1906228aa99c65c6118991b2c5fd2b53915b0fd31228de0cd067054c515e9

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