English / 简体中文
Omni-Flow is a controller for orchestrating and scheduling AI capabilities, aiming to simplify the management and task scheduling of AI models. Through JSON configuration files and API calls, Omni-Flow can flexibly schedule various AI models to generate required media content. This project draws inspiration from Kubernetes and is built based on the Spring Boot framework, with Redis used as the underlying storage.
To run this project, you need the following environment:
- Java: Version 21 or higher
- Maven: Version 3.x or higher
- Redis: Version 5.0 or higher (Stream support required)
- Docker (optional): For containerized deployment
- Build Docker image:
docker build -t omni-flow .
- Run Docker container:
docker run -d --name omni-flow -p 8080:8080 omni-flow
- Clone repository:
git clone https://github.com/your-repo/omni-flow.git
cd omni-flow
- Build project:
mvn clean install
- Start application:
java -jar target/omni-flow-0.0.1-SNAPSHOT.jar
The project integrates OpenAPI documentation, which can be accessed and tested via http://localhost:8080/swagger-ui.html
.
You can send HTTP requests to the service using the following command:
curl -X GET http://localhost:8080/api/xxxx
Omni-Flow provides a Web Portal for managing and monitoring the creation and execution of AI tasks. Below are the steps to access and use the Portal:
- Start Application: Ensure that the Omni-Flow application has started successfully.
- Open Browser: Enter the following URL in your browser to access the Portal:
http://localhost:8080/page/controlplane.html
The Portal includes several main function modules:
-
Kind Create
- Define Kind: Create new Kind tasks by filling out definitions in JSON format.
- Sample Button: Click the "Coze Sample" button to load a sample definition.
- Create Button: Click the "Create" button to submit the definition and create a new Kind task.
-
Kind List
- Search Functionality: Input UserId and click the "Search" button to query the Kind task list for specific users.
- Task List: Display all Kind tasks in table form, including ID, Phase, Kind, and creation time information.
- Pagination Navigation: Use pagination buttons to browse through different pages of the task list.
-
Detail Pop-up
- View Details: Click on a row in the task list to pop up a detail window showing detailed information about the task.
- JSON View: Click the "Json" button to view the task's JSON definition and status.
- Regenerate: Select different generation steps and click the "Regenerate" button to regenerate the task.
Contributions to Omni-Flow are welcome! Please follow these steps:
- Fork this repository.
- Create a new branch (
git checkout -b feature/new-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin feature/new-feature
). - Initiate a Pull Request.
The Omni-Flow project is licensed under the MIT License. See the LICENSE file for details.
Thank you for your attention and support for Omni-Flow! If you have any questions or suggestions, please feel free to contact our development team.