-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
064e3eb
commit f6985d9
Showing
62 changed files
with
903 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,132 @@ | ||
# zetaforge | ||
|
||
|
||
<div align="center"> | ||
<img src="assets/ZetaForge-Logo-White-Background.png" alt="ZetaForge Logo" style="width:400px;padding-bottom: 15px"/> | ||
|
||
|
||
[![PyPI version](https://badge.fury.io/py/zetaforge.svg)](https://badge.fury.io/py/zetaforge) | ||
[![Discord](https://img.shields.io/discord/1196886318035255296?label=Discord&logo=discord)](https://discord.gg/zetaforge) | ||
[![X Badge](https://img.shields.io/static/v1?label=&message=Follow&color=blue&logo=x)](https://twitter.com/ZetaneSystems) | ||
[![YouTube Channel](https://img.shields.io/static/v1?label=YouTube&message=Subscribe&color=red&logo=YouTube)](https://www.youtube.com/channel/UCGDwKqB1HPjEdw97jm4wTFA) | ||
|
||
|
||
<h3 style="padding-bottom: 15px"> | ||
Open source AI platform for rapid development of advanced AI and AGI pipelines. | ||
</h3> | ||
</div> | ||
|
||
|
||
![Project Image](assets/Screenshot.png) | ||
|
||
|
||
|
||
<a id="why-zetaforge"></a> | ||
## 🔥 Why ZetaForge? | ||
|
||
ZetaForge is an AI platform designed to accelerate the development and deployment of advanced AI solutions. It allows users to assemble reusable, customizable, and containerized Blocks into highly visual AI Pipelines, enabling rapid experimentation and collaboration. | ||
|
||
- **Language Agnostic:** Work with AI technologies in any programming language. | ||
- **Dynamic:** Easily modify and update AI pipelines with new or improved components. | ||
- **Full Code Accessibility:** Dive into the code whenever needed while enjoying a user-friendly interface. | ||
- **Community and Sharing:** Utilize community-driven blocks and pipelines, and share your own creations. | ||
|
||
|
||
> ⭐ Support us by starring this repo. | ||
|
||
## 📰 Breaking News | ||
We've launched the first release of ZetaForge! Start building AI pipelines with our core features. | ||
|
||
Expect regular updates with new enhancements. | ||
|
||
|
||
>👁 Watch this repo to stay in the loop about changes and updates. | ||
## Getting Started | ||
|
||
**Installation** | ||
You can install ZetaForge Python Package through pip by running the following command in your terminal: | ||
|
||
``` | ||
pip install zetaforge | ||
``` | ||
|
||
Or, you can clone the ZetaForge GitHub repository and install from source by running: | ||
|
||
``` | ||
git clone https://github.com/zetane/zetaforge | ||
cd zetaforge | ||
pip install . | ||
``` | ||
|
||
|
||
**Install Docker Desktop and Enable Kubernetes** | ||
|
||
You need to install Docker Desktop or any other container runtime that includes Kubernetes integration. | ||
Follow the instructions to [install Docker Desktop](https://docs.docker.com/desktop/) from their official website. | ||
You will need to [enable Kubernetes](https://docs.docker.com/desktop/kubernetes/) to use ZetaForge. | ||
|
||
> Note: We recommend [OrbStack](https://orbstack.dev/download) to macOS users for efficiency and performance reasons. | ||
|
||
## Run your First Pipeline | ||
|
||
![Demo Pipeline](assets/quick-start.gif) | ||
|
||
To experience ZetaForge in action, start by dragging and dropping a core pipeline, such as the "Canny Edge Pipeline," from the Core Pipelines Library into your workspace. Once the pipeline is loaded, click the "Run" button to see the magic happen! | ||
|
||
|
||
## Documentation | ||
|
||
Explore our [official documentation](https://zetane.com/docs) for a guide on using ZetaForge. Learn how to create your own ZetaForge blocks, assemble custom pipelines, and more. You'll also find tutorials and best practices to enhance your ZetaForge experience. | ||
|
||
|
||
## Pipeline Gallery | ||
|
||
**Visualize Multidimensional Numpy Arrays** | ||
|
||
![Pipeline Screenshot Numpy](assets/numpy-visualization.png) | ||
|
||
**Integrate Popular GitHub Repos in AI Pipeline** | ||
(LAVIS and Open-CD) | ||
|
||
![Pipeline Screenshot GitHub](assets/popular-repos-pipeline.png) | ||
|
||
**Use Three.js Visualization Blocks** | ||
|
||
![Pipeline Screenshot Three.js](assets/threejs.png) | ||
|
||
|
||
## Share a Pipeline | ||
|
||
To share a pipeline with your team, follow these steps: | ||
|
||
1. **Save:** Go to `File` -> `Save` or `Save As`, choose a target folder, and name your pipeline. | ||
2. **Package and Send:** Zip the saved folder, which contains all necessary files, and share it with your team. | ||
3. **Load and Run:** Team members can unzip the folder, load the pipeline via `File` -> `Load` -> `Pipeline`, and click `Run` to replicate the results. | ||
|
||
This streamlined process ensures easy sharing and consistent results across your team. | ||
|
||
## License | ||
|
||
- **[AGPL license](https://opensource.org/license/agpl-v3/)** | ||
- If you need another type of license please contact us [here](https://zetane.com/contact-us). | ||
|
||
## Contact | ||
|
||
- Reach out to us on [Discord](https://discord.gg/zetaforge) if you have any questions or issues. | ||
- ZetaForge Homepage: [https://www.zetaforge.com/](https://www.zetaforge.com/) | ||
|
||
|
||
<!-- ## Star History | ||
[![Star History Chart](https://api.star-history.com/svg?repos=zetane/viewer&type=Date)](https://star-history.com/#zetane/viewer&Date) | ||
## Contributors | ||
Thanks go to these awesome contributors | ||
<a href="https://github.com/zetane/viewer/graphs/contributors"> | ||
<img src="https://contrib.rocks/image?repo=zetane/viewer" /> | ||
</a> --> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
## Installation | ||
Make a virtual environment with venv (or use another method) | ||
|
||
``` | ||
python -m venv venv | ||
venv/Scripts/activate.bat | ||
``` | ||
|
||
`pip install mkdocs-material` | ||
|
||
`pip install mkdocs` | ||
|
||
## Launch | ||
|
||
`mkdocs serve` | ||
|
||
|
||
## Build Static Website | ||
|
||
`mkdocs build` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Assemble a Pipeline | ||
|
||
A Pipeline is composed of Blocks. To construct a Pipeline, drag and drop Blocks into your workspace and connect the Blocks by adding links between the output of one Block and the input of the next Block. ZetaForge supports directed acyclic connections between the Blocks. | ||
|
||
![drag-drop-blocks-add-links.gif](assets%2Fdrag-drop-blocks-add-links.gif) | ||
|
||
The changes made to the workspace are saved in `frontend/.cache`. When the first Block is added to an empty workspace, a new directory (`pipeline-${pipeline_id}`) will be created under `frontend/.cache` for the Pipeline representing the workspace. The information about the pipeline, such as the Blocks making the pipeline and the connections between them, is stored in a JSON file with the same name as the pipeline, i.e., `pipeline-${pipeline_id}.json`. Note that the `${pipeline_id}` is displayed at the top of the window in the ZetaForge app. | ||
|
||
For each Block added to the workspace, a new directory will be created in `frontend/.cache/pipeline-${pipeline_id}` containing the Block files. Also, for each connection made between the Blocks, the `pipeline-${pipeline_id}.json` file gets updated to save the links between the Blocks. | ||
|
||
## Saving and Loading a Pipeline | ||
|
||
You can save a Pipeline using the Save button in the `File` menu. Saved Pipelines can be loaded later from the same menu using the `Load` button. | ||
|
||
## Example | ||
|
||
Let's say we want to create a simple Pipeline that takes a prompt as input, generates a short story based on that prompt, and saves the story as a text file. To build this Pipeline, we need four Blocks: | ||
|
||
1. **String Block**: to take the input prompt. | ||
2. **Story Teller Block**: that takes a prompt and uses a GPT-like model to generate the story. | ||
3. **Save Text Block**: that takes in an input string and a file path and saves the generated text for us. | ||
4. **String Block**: that stores the path to the output text file. | ||
|
||
Refer to [Create Blocks](create-blocks.md) to find more information about creating Blocks. Assuming we already have all the four Blocks in the `Core Blocks` menu on the sidebar, we can start building the Pipeline. | ||
|
||
We start by adding the GPT Story Teller Block. As soon as the GPT Story Teller is added to the workspace, you can see a new directory is created in `frontend/.cache`, e.g., `pipeline-ns3d0fvdf3s3`. Inside this folder, there is a JSON file representing this Pipeline, called `pipeline-ns3d0fvdf3s3.json`, as well as a directory called `gpt-storyteller-5o7a1lfvy2td` that includes all the Block files. | ||
|
||
Next, we add the String Block. Since the String Block is a primitive type Block ([learn more about Block types](create-blocks.md#block-components)), it does not have any Block files, e.g., `computations.py`, `Dockerfile`, etc. Therefore, no new directory is created for this Block. The only thing that changes is the JSON file that now includes two Blocks; `string-yjebz1z8shms` and `gpt-storyteller-5o7a1lfvy2td`. | ||
|
||
Before adding the final Block, let's try adding links between the String Block and the GPT Story Teller Block. We connect `string`, which is the output node of the String Block, to `descriptions`, the input node of the GPT Story Teller Block. To see how adding this link modified the Pipeline, we take a look at the `pipeline-ns3d0fvdf3s3.json` file. We can see that `pipeline["string-yjebz1z8shms"]["outputs"]["connections"]` has been modified and now contains information about the link we just made. The information includes the Block name in `block` as well as the node name in `variable`. In addition to this, `pipeline["gpt-storyteller-5o7a1lfvy2td"]["outputs"]["connections"]` has also been updated to reflect the new link made to the GPT Story Teller Block's input node. | ||
|
||
Finally, we add the Save Text Block to store the story GPT generated to a file and another String Block to enter the save location. We will then fill in the String Block with the prompt and choose the output file path in the String Block to get everything ready. In the `pipeline-ns3d0fvdf3s3.json` file, you can see the values for these Blocks being updated in `pipeline["string-yjebz1z8shms"]["action"]["parameters"]["string"]` and `pipeline["gpt-storyteller-5o7a1lfvy2td"]["action"]["parameters"]["output_path"]` as the links are made. | ||
|
||
We run the Pipeline by clicking on the Run button at the top of the window. Here is a screenshot of the full Pipeline: | ||
|
||
![GPT Story Teller Pipeline](assets/gpt-storyteller-pipeline.png) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.