Skip to main content

Enables creation of workflows for Dria Agents

Project description

Dria Workflows

Dria Workflows enables the creation of workflows for Dria Agents.

Installation

You can install Dria Workflows using pip:

pip install dria_workflows

Usage Example

Here's a simple example of how to use Dria Workflows:

import logging
from dria_workflows import WorkflowBuilder, Operator, Write, Edge, validate_workflow_json


def main():
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

    builder = WorkflowBuilder()

    # Add a step to your workflow
    builder.generative_step(id="write_poem", prompt="Write a poem as if you are Kahlil Gibran", operator=Operator.GENERATION, outputs=[Write.new("poem")])
    
    # Define the flow of your workflow
    flow = [Edge(source="write_poem", target="_end")]
    builder.flow(flow)
    
    # Set the return value of your workflow
    builder.set_return_value("poem")
    
    # Build your workflow
    workflow = builder.build()

    # Validate your workflow
    validate_workflow_json(workflow.model_dump_json(indent=2, exclude_unset=True, exclude_none=True))

    # Save workflow
    workflow.save("poem_workflow.json")


if __name__ == "__main__":
    main()

Here is a more complex workflow

import logging
from dria_workflows import WorkflowBuilder, ConditionBuilder, Operator, Write, GetAll, Read, Push, Edge, Expression, validate_workflow_json


def main():
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

    # Give a starting memory as input
    builder = WorkflowBuilder(memory={"topic_1":"Linear Algebra", "topic_2":"CUDA"})

    # Add steps to your workflow
    builder.generative_step(id="create_query", prompt="Write down a search query related to following topics: {{topic_1}} and {{topic_2}}. If any, avoid asking questions asked before: {{history}}", operator=Operator.GENERATION, inputs=[GetAll.new("history", False)], outputs=[Write.new("search_query")])
    builder.generative_step(id="search", prompt="{{search_query}}", operator=Operator.FUNCTION_CALLING, outputs=[Write.new("result"), Push.new("history")])
    builder.generative_step(id="evaluate", prompt="Evaluate if search result is related and high quality to given question by saying Yes or No. Question: {{search_query}} , Search Result: {{result}}. Only output Yes or No and nothing else.", operator=Operator.GENERATION, outputs=[Write.new("is_valid")])

    # Define the flow of your workflow
    flow = [
        Edge(source="create_query", target="search"),
        Edge(source="search", target="evaluate"),
        Edge(source="evaluate", target="_end", condition=ConditionBuilder.build(expected="Yes", target_if_not="create_query", expression=Expression.CONTAINS, input=Read.new("is_valid", True))),
    ]
    builder.flow(flow)

    # Set the return value of your workflow
    builder.set_return_value("result")

    # Build your workflow
    workflow = builder.build()
    validate_workflow_json(workflow.model_dump_json(indent=2, exclude_unset=True, exclude_none=True))

    workflow.save("search_workflow.json")


if __name__ == "__main__":
    main()

Detailed docs soon. andthattoo

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

dria_workflows-0.2.9.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

dria_workflows-0.2.9-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file dria_workflows-0.2.9.tar.gz.

File metadata

  • Download URL: dria_workflows-0.2.9.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.5 Darwin/23.6.0

File hashes

Hashes for dria_workflows-0.2.9.tar.gz
Algorithm Hash digest
SHA256 bc2c3d3f16019d251dc22330300e2266f972423eb91301a5c709d1a9960f4fb5
MD5 879256fc1d2f9aacb0df41f611e533c0
BLAKE2b-256 be23eea9514459a9c23370ca288af66e70ebf8dd87db2d23cc6a6256d901c2ca

See more details on using hashes here.

File details

Details for the file dria_workflows-0.2.9-py3-none-any.whl.

File metadata

  • Download URL: dria_workflows-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.5 Darwin/23.6.0

File hashes

Hashes for dria_workflows-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 5b4e7109876b5722e6126458463583a99910dcebf188713d21ddb945aa5113fe
MD5 0620dcb797d72ed379dfbf30563d6c28
BLAKE2b-256 50b750e6318f4a77b2fd0c21b1f60359581ad58cdb08c640cab75ab25e93ffb1

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