This project is not currently maintained and requires an adoption of the cli of ludwig to some POJO classes. There is a automated generator included. The whole project is untested!
Gustav is a JVM (Groovy) based REST-Wrapper for uber/ludwig
Using Uber's Ludwig on a single computer is a great experience. You can use it to experiment with your data or even serve your data using the internal web server. Running experiments using multiple servers, distributed over a network is currently not possible. There is no web interface at all. Gustav tries to fix this giving a REST interface to basic IO operations, process access and log access.
Because of the way Ludwig is designed, it's heavily based on file and directory operations. Therefor, Gustav is providing a simple and effective way to access the servers file system. Uploading, moving and removing files and folders works out of the box.
You can create a full overview of a directory using a simple get request:
/<workspace/index
parameter | description |
---|---|
p | Path of the directory relative to the workspace |
m | Method to index, use r to get all files recursive |
/<workspace/delete
Used to delete files and directories
parameter | description |
---|---|
p | Path of the directory relative to the workspace |
/<workspace/get
Used to get a file or directory When the given path is a directory, a zip file will be crated and served as download
parameter | description |
---|---|
p | Path of the directory relative to the workspace |
/<workspace/add
Used to add and overwrite a file or directory When posting a zip file, the file will be extracted to the given path, use the m parameter with k (as "keep") to disable the extraction
parameter | description |
---|---|
p | Path of the directory relative to the workspace |
m | k (keep) or u (unpack) used for zip files |
Gustav is project based, each project got it's own workspace and is separated from other projects
Create a new project
/project/create
parameter | description |
---|---|
name | Name of the project |
Show a list of all projects on this server
/project/index
Used to delete a project including all files and directories
/project/delete
parameter | description |
---|---|
id | Id of a project |
Given the new predict serve function, Gustav is also able to give access to this new interface. A reverse proxy is available using
Used to start a new serve session, a session identifier is returned
/project/<id>/proxy
parameter | description |
---|---|
model_path | Path of the model to serve, relative to the workspace |
Used to send data to the server endpoint and get the result
parameter | description |
---|---|
s | Session to use |
Used to stop a serve process
parameter | description |
---|---|
s | Session to use |
[work in progress]