Tool for creating nanowire tools with the flask structure.
Project description
This library is designed to allow a python developer to easily create a nanowire plugin using the flask APIs structure.
The function you mount for image plugins, using the function mount_Image_function must have the arguments img and variables if you want initialise a model or other variables when the sever starts you may make the function to be mounted into a function of a class which is initiated with the function mount_Image_function. You should expect img to be a PIL RGB image object and variables to be a dictionary containing the variables sent to the plugin in the curl request.
The function for mounting a text based plugin is similar however it is called mount_text_function and expects the arguments text and variables.
The curl requests for images may be formatted 2 ways. The first involves sending the image as a file attached to the curl request. For example:
curl -F "image=@./1.jpg" -XPOST http://0.0.0.0:5000/model/predict?threshold=0.5
alternatively the file may be sent as a link using a dictionary eg.
curl -X POST -H "Content-Type:application/json" -d '{"contentUrl":"http://127.0.0.1:8000/1.jpg", "threshold":0.5}' http://0.0.0.0:5000/model/predict
The currently supported image formats are:
jpg
png
bmp
tif
ppm
The curl request for text is similar to that used for images except that it may take either raw text or a file containing raw text. You may either post a document containing the raw text using the command
curl -F "doc=@./doc1.txt" -XPOST http://0.0.0.0:5000/model/predict?deactivate_ngrams=True
or the raw text can be sent using:
curl -X POST -H "Content-Type:application/json" -d '{"content":"Example text about whichever subject you're interested in", "deactivate_ngrams"="True"}' http://0.0.0.0:5000/model/predict
This library will eventually be expanded to be able to handle video, sound and arbitary files however for now it is limited to text and images.
Notes for advanced users
mount_Image_function
Parameters
function :- The function to be mounted on the API. The function must take img and variables as arguments when processing images and text and variables when processing text. The function must return a dictionary
host optional:- default is ‘0.0.0.0’. Set the IP address to host the API on
port optional:- default 5000. Set the port to host the API on
path optional:- default ‘/model/predict’. Set the path for the API
Notes on debug mode
In order to activate debug mode the environmental variable PYTHON_DEBUG must be set to true.
Activating debug mode will return the maximum memory usage in MB, the time the mounted function took to run and the maximum CPU usage as a percentage along with the data. This data collection may affect the performance of the plugin so debug mode should be deactivated in production code. Debug mode will also mean that any errors encountered whilst running the function will also return a full traceback in the returned JSON. Debug mode will also result in the docker container ID being returned in the output JSON.
Notes on taskID
If the post contains taskID as an argument the taskID given will also be returned in the output JSON.
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
Built Distribution
Hashes for nanowire_flask-0.0.69-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 636f43349faf04eb6961a8aea8eed3dbf70d90a4aae2851349202a9ef8c07c18 |
|
MD5 | 562faeaa7fec6b4e974ad697421c7def |
|
BLAKE2b-256 | 7f8daf0518356b0d6e9aa8b5524fa45f0e170480256795bb494938f45bf6ce58 |