Metadata-Version: 2.1
Name: learning-loop-node
Version: 0.3.4
Summary: Python Library for Nodes which connect to the Zauberzeug Learning Loop
Home-page: https://github.com/zauberzeug/learning_loop_node
License: MIT
Author: Zauberzeug GmbH
Author-email: info@zauberzeug.com
Requires-Python: >=3.6,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: aiofiles (>=0.7.0,<0.8.0)
Requires-Dist: async_generator (>=1.10,<2.0)
Requires-Dist: fastapi (>=0.63.0,<0.64.0)
Requires-Dist: fastapi-socketio (>=0.0.6,<0.0.7)
Requires-Dist: fastapi-utils (>=0.2.1,<0.3.0)
Requires-Dist: icecream (>=2.1.0,<3.0.0)
Requires-Dist: psutil (>=5.8.0,<6.0.0)
Requires-Dist: pytest-watch (>=4.2.0,<5.0.0)
Requires-Dist: python-multipart (>=0.0.5,<0.0.6)
Requires-Dist: python-socketio[asyncio_client] (>=5.0.4,<6.0.0)
Requires-Dist: requests (>=2.25.1,<3.0.0)
Requires-Dist: simplejson (>=3.17.2,<4.0.0)
Requires-Dist: uvicorn (>=0.13.3,<0.14.0)
Requires-Dist: werkzeug (>=2.0.1,<3.0.0)
Project-URL: Repository, https://github.com/zauberzeug/learning_loop_node
Description-Content-Type: text/markdown

# Learning Loop Node

This Python library helps you to write your own Detection Nodes, Training Nodes and Converter Nodes for the Zauberzeug Learning Loop.

## General Usage

You can configure connection to the learning loop by specifying the following environment variables before starting:

- HOST=learning-loop.ai
- ORGANIZATION=<your organization>
- PROJECT=<your project>
- USERNAME=<your username>
- PASSWORD=<your password>

## Detector Node

## Trainer Node
  
- if the command line tool "jpeginfo" is installed, the downloader will drop corrupted images automatically

## Converter Node

A Conveter Node converts models from one format into another.

### How to test the operability?

Assumend there is a Converter Node which converts models of format 'format_a' into 'format_b'.
Upload a model with
`curl --request POST -F 'files=@my_model.zip' https://learning-loop.ai/api/zauberzeug/projects/demo/format_a`
The model should now be available for the format 'format_a'
`curl "https://learning-loop.ai/api/zauberzeug/projects/demo/models?format=format_a"`

```
{
  "models": [
    {
      "id": "3c20d807-f71c-40dc-a996-8a8968aa5431",
      "version": "4.0",
      "formats": [
        "format_a"
      ],
      "created": "2021-06-01T06:28:21.289092",
      "comment": "uploaded at 2021-06-01 06:28:21.288442",
      ...
    }
  ]
}

```

but not in the format_b
`curl "https://learning-loop.ai/api/zauberzeug/projects/demo/models?format=format_b"`

```
{
  "models": []
}
```

Connect the Node to the learning loop by simply starting the container.
After a short time the converted Model should be available as well.
`curl https://learning-loop.ai/api/zauberzeug/projects/demo/models?format=format_b`

```
{
  "models": [
    {
      "id": "3c20d807-f71c-40dc-a996-8a8968aa5431",
      "version": "4.0",
      "formats": [
        "format_a",
        "format_b",
      ],
      "created": "2021-06-01T06:28:21.289092",
      "comment": "uploaded at 2021-06-01 06:28:21.288442",
      ...
    }
  ]
}
```

