workflowai


Nameworkflowai JSON
Version 0.3.4 PyPI version JSON
download
home_pageNone
SummaryNone
upload_time2024-10-16 17:04:34
maintainerNone
docs_urlNone
authorGuillaume Aquilina
requires_python<4.0,>=3.9
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # WorkflowAI Python

A library to use WorkflowAI with Python

## Installation

`workflowai` requires a python >= 3.9.

```sh
pip install workflowai
```

## Usage

Usage examples are available in the [examples](./examples/) directory.

### Set up the workflowai client

```python
import workflowai

wai = workflowai.start(
    url=..., # defaults to WORKFLOWAI_API_URL env var or https://api.workflowai.com
    api_key=..., # defaults to WORKFLOWAI_API_KEY env var
)
```

### Define a task

We use pydantic for type definitions.

```python
from pydantic import BaseModel, Field

from workflowai import Task, TaskVersionReference

class CityToCapitalTaskInput(BaseModel):
    city: str


class CityToCapitalTaskOutput(BaseModel):
    capital: str

class CityToCapitalTask(Task[CityToCapitalTaskInput, CityToCapitalTaskOutput]):
    id: str = "citytocapital"
    schema_id: int = 1
    input_class: type[CityToCapitalTaskInput] = CityToCapitalTaskInput
    output_class: type[CityToCapitalTaskOutput] = CityToCapitalTaskOutput

    # The default version that should be used when running the task
    version: TaskVersionReference = TaskVersionReference(
        iteration=4,
    )
```

### Run a task

```python
task = CityToCapitalTask()
task_input = CityToCapitalTaskInput(city=city)
task_run = await wai.run(task, task_input)

print(task_run.task_output)
```

It is also possible to stream a task output

```python
task = CityToCapitalTask()
task_input = CityToCapitalTaskInput(city=city)
iterator = await wai.run(task, task_input, stream=True)
async for chunk in iterator:
    print(chunk) # chunk is a partial (non validated) CityToCapitalTaskOutput
```


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "workflowai",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Guillaume Aquilina",
    "author_email": "guillaume@workflowai.com",
    "download_url": "https://files.pythonhosted.org/packages/69/76/6a27136a49f790470c06c7a6f71df0c642679762deaff2ad18886d943730/workflowai-0.3.4.tar.gz",
    "platform": null,
    "description": "# WorkflowAI Python\n\nA library to use WorkflowAI with Python\n\n## Installation\n\n`workflowai` requires a python >= 3.9.\n\n```sh\npip install workflowai\n```\n\n## Usage\n\nUsage examples are available in the [examples](./examples/) directory.\n\n### Set up the workflowai client\n\n```python\nimport workflowai\n\nwai = workflowai.start(\n    url=..., # defaults to WORKFLOWAI_API_URL env var or https://api.workflowai.com\n    api_key=..., # defaults to WORKFLOWAI_API_KEY env var\n)\n```\n\n### Define a task\n\nWe use pydantic for type definitions.\n\n```python\nfrom pydantic import BaseModel, Field\n\nfrom workflowai import Task, TaskVersionReference\n\nclass CityToCapitalTaskInput(BaseModel):\n    city: str\n\n\nclass CityToCapitalTaskOutput(BaseModel):\n    capital: str\n\nclass CityToCapitalTask(Task[CityToCapitalTaskInput, CityToCapitalTaskOutput]):\n    id: str = \"citytocapital\"\n    schema_id: int = 1\n    input_class: type[CityToCapitalTaskInput] = CityToCapitalTaskInput\n    output_class: type[CityToCapitalTaskOutput] = CityToCapitalTaskOutput\n\n    # The default version that should be used when running the task\n    version: TaskVersionReference = TaskVersionReference(\n        iteration=4,\n    )\n```\n\n### Run a task\n\n```python\ntask = CityToCapitalTask()\ntask_input = CityToCapitalTaskInput(city=city)\ntask_run = await wai.run(task, task_input)\n\nprint(task_run.task_output)\n```\n\nIt is also possible to stream a task output\n\n```python\ntask = CityToCapitalTask()\ntask_input = CityToCapitalTaskInput(city=city)\niterator = await wai.run(task, task_input, stream=True)\nasync for chunk in iterator:\n    print(chunk) # chunk is a partial (non validated) CityToCapitalTaskOutput\n```\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": null,
    "version": "0.3.4",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "031d35ff45105e4c58b61c5944c3af9915636dbc26ea8309feccb41510f0aecb",
                "md5": "7df1f1113d097f2c8155d2e7f492f8a5",
                "sha256": "eba20bf1f797c8ac3c5dc2e83bb04922e2082bf39d79f422e15a437ff9f03594"
            },
            "downloads": -1,
            "filename": "workflowai-0.3.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7df1f1113d097f2c8155d2e7f492f8a5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 25946,
            "upload_time": "2024-10-16T17:04:32",
            "upload_time_iso_8601": "2024-10-16T17:04:32.774943Z",
            "url": "https://files.pythonhosted.org/packages/03/1d/35ff45105e4c58b61c5944c3af9915636dbc26ea8309feccb41510f0aecb/workflowai-0.3.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "69766a27136a49f790470c06c7a6f71df0c642679762deaff2ad18886d943730",
                "md5": "9ed9a0c07c8abf4da66fbac68b47928f",
                "sha256": "15af26979c4be4db64ce0dba44864a0bbd32aabc7a7bfe8e49a6b7acea66790d"
            },
            "downloads": -1,
            "filename": "workflowai-0.3.4.tar.gz",
            "has_sig": false,
            "md5_digest": "9ed9a0c07c8abf4da66fbac68b47928f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 16801,
            "upload_time": "2024-10-16T17:04:34",
            "upload_time_iso_8601": "2024-10-16T17:04:34.133915Z",
            "url": "https://files.pythonhosted.org/packages/69/76/6a27136a49f790470c06c7a6f71df0c642679762deaff2ad18886d943730/workflowai-0.3.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-16 17:04:34",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "workflowai"
}
        
Elapsed time: 0.66520s