When it comes to full-stack AI workflows every step matters!
Geoweaver is an open source web-based application allowing users to compose, execute, and share full-stack distributed AI workflows.
Python driven/OS of choice
Geoweaver supports Python and shell scripting. Geowever can be installed on Linux, Mac, and Windows.
Full-stack workflows can be exported/imported as a single package file. That package file includes source code and execution history.
Geoweaver records the history of each execution and each change to the code, whether in Python, Jupyter notebooks, or a shell script.
Weaver: Build your AI workflow!
Geoweaver takes every step of a full-stack AI workflow and translates it into a reproducible, sharable push-button solution.
Geoweaver (version 0.9.7) is currently supported by ESIP, NSF geoinformatics program #1947893 & #1947875, and NASA ACCESS-19.
Geoweaver is a community effort and we welcome all contributors. If you want to get involved, please create your first issue at Github.
Geoweaver User Guide
Quick Start Guide
0. Get Geoweaver Password
- Geoweaver will automatically create a password for your local machine. You need to know that password before you start. It can be found in Terminal logs when Geoweaver is first started (only shown at the first time).
- If you missed the first start logs and don't know the password, please use command java -jar geoweaver.jar resetpassword to reset it.
1. Create and run a Process
- Click after 'Process' on the left menu.
- Select "Python" from the Language dropdown.
- Input "helloworld" for the name.
- Add the code print 'hello world' to the code area.
- Click "Add" on the bottom. A new process "helloworld" will be added to the Process/Python basket.
- Click on the newly added helloworld process. An informational panel will show in the main area.
- Click to run the process. In the popup window, select "Localhost" and click "Execute". In the popup Python environment dialog, click "Confirm" to the default. Add your password.
- If you see hello world printed in the logging window, it means you have successfully created and run your first process in Geoweaver! Congrats!
2. Create and Run a Workflow
- Click twice on after the "helloworld" process created in Step 1. The main work area will switch to the "Weaver" tab and two circles containing "Hello World" should appear in the workspace.
- Link the two circles by dragging from one circle and dropping on another circle while pressing "SHIFT" on the keyboard.
- Click on the topleft" toolbar in Weaver. In the popup window, input "HelloWorldWorkflow" as the workflow name, and type "Testing hello world" as Description. Click "Confirm".
- To run the workflow, click . In the popup window, select "one-host" option. Choose localhost and set the environment to the default. Click "Run".
- In the password dialog, enter the password for localhost.
- While the workflow is in execution mode, blue means the process is waiting, yellow means the corresponding process is running, green means the process execution is finished, and red means the process execution is failed for some reason.
- Double click on the circles to check the real time output. If users need more details, click "Details" button in the popup information window.
3. Export a Workflow
- Click when the workflow is present in the Weaver workspace.
- In the popup window, there are two options: workflow with process code / workflow with process code and history. The former will only download source code and workflow json. The latter will download not only source code and workflow, but also all the history details of previous execution of the workflow.
- Click "Confirm". A ZIP file will be automatically downloaded to your machine.
4. Import a workflow
- Click . In the upload window, select the ZIP file, click "Start".
- Once the uploading finished, if the workflow file is valid, it will ask "The upload workflow is valid. Do you want to proceed to save it into the database?" Click "OK".
- The workflow will be automatically loaded into the Weaver workspace and ready for execution and reuse.
- Congratulations you have learnt how to use Geoweaver!
Geoweaver provides a Host category called `Linux/Win/Mac Computers` to manage all the `local`/`remote` machines.
For `local computers` (where Geoweaver is running at), Geoweaver can directly access, manage, and run commands/programs. For security reasons, it will automatically generate a password at its first boot. Scientists have to input the correct passwords to execute their programs or do any action on the local computers via Geoweaver. The computer's authenticated users can change their Geoweaver password anytime (please refer to [reset password](install.md)).
For `remote computers` (where Geoweaver is not installed on but can access via networks), Geoweaver can access, manage, run commands/programs on them if the operating systems have SSH service enabled and Geoweaver users have valid accounts on those computers. Geoweaver provides a file browser and uploader for users to transfer the files from/to the remote servers. SSH, or Secure Shell, is a remote administration protocol that allows users to control remote servers over the Internet. It provides a mechanism for authenticating a remote user, transferring inputs from the client to the host, and relaying the output back to the client.
Geoweaver supports four types of processes to be executed on the SSH hosts enlisted in the Host section: Shell script, Notebooks, Python code, and Builtin processes.
Shell scripts can be directly created, saved, executed, and monitored in Geoweaver. Users can execute the shell scripts on remote servers or the localhost server which Geoweaver is hosted.
Geoweaver supports to run Jupyter notebooks using the nbconvert command. The notebook and its logout are recorded in the database.
Build In Process
To help people with limited programming skills, we are developing a set of built-in processes which have fixed program code and expose only input parameters to users. These processes make Geoweaver a powerful AI graphical user interface for the diverse user groups to learn and experiment their AI workflows without coding. Most buil-in processes in Geoweaver are developed based on the existing AI python ecosystem like Keras and Scikit-learn. This section is under intensive development right now. New features supporting users to create a full-stack AI workflow without writing a single line of code are on our development schedule.
Python is one of the most popular AI programming langauge and most AI-related packages reside in Python. Geoweaver supports Python coding and scripting on top of multiple servers while reserving and maintaining the code in one database. All the historical runs are recorded and served in Geoweaver to prevent future duplicated attempts and significantly improve the reproducibility and reusability of AI programs.
The workflow module allows users to compose a workflow using the existing processes. The workflow graph composer only supports Directed Acyclic Graph (DAG) (no cyclic loops and bidirectional connections) to chain multiple processes into workflows. Geoweaver provides an all-in-one function to execute, monitor, trace, and display the workflows, and check the history of workflow execution. During the execution, the color of the processes indicate the real-time status: Yellow - Running; Red - Failure; Green - Success.