AI prompts
base on Rill Flow is a high-performance, scalable workflow orchestration engine for distributed workloads and LLMs # Rill Flow
[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) ![codecov](https://codecov.io/gh/weibocom/rill-flow/branch/main/graph/badge.svg) [![CN doc](https://img.shields.io/badge/document-中文-blue.svg)](README_zh_CN.md)
## Overview
Rill Flow is a high-performance, scalable distributed workflow orchestration service with the following core features:
- High performance: Supports the execution of tens of millions of tasks per day, with task execution latency less than 100ms
- Distributed: Supports the orchestration and scheduling of heterogeneous distributed systems
- Ease to use: supports visual process orchestration and plug-in access
- Cloud native: Supports cloud native container deployment and cloud native function orchestration
- AIGC: supports rapid integration of LLM model services
## Demo
[Live Demo](https://rill-flow.cloud) (sandbox/sandbox)
## QuickStart
### Environment Preparation
Before you begin, ensure that the following tools are installed:
- Environment suitable for OSX/Linux
- [Docker](https://docs.docker.com/engine/install/)
- [Docker-Compose](https://docs.docker.com/compose/install/)
### Service Deployment
Install Rill Flow services on your local environment using Docker-Compose:
#### Download the Rill-Flow source code.
```shell
git clone https://github.com/weibocom/rill-flow.git
```
#### Start the service.
Enter the Docker directory of the Rill-Flow source code and execute the one-click start command:
```shell
cd rill-flow/docker
docker-compose up -d
```
> If your system has Docker Compose V2 installed instead of V1, please use docker compose instead of docker-compose. Check if this is the case by running docker compose version. Read more information [here](https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command).
### Verify the installation.
To check the status of Rill Flow, please execute the following command:
```shell
docker-compose ps
```
Here is the expected output:
```txt
Name Command State Ports
------------------------------------------------------------------------------------------------------------------------------------------------------------
rill-flow-mysql docker-entrypoint.sh --bin ... Up 0.0.0.0:3306->3306/tcp, 33060/tcp
rillflow_cache_1 docker-entrypoint.sh redis ... Up 6379/tcp
rillflow_jaeger_1 /go/bin/all-in-one-linux Up 14250/tcp, 14268/tcp, 0.0.0.0:16686->16686/tcp, 5775/udp, 5778/tcp, 6831/udp, 6832/udp
rillflow_rill-flow_1 catalina.sh run Up 0.0.0.0:8080->8080/tcp
rillflow_sample-executor_1 uvicorn main:app --host 0. ... Up
rillflow_ui_1 /docker-entrypoint.sh /bin ... Up 0.0.0.0:80->80/tcp
```
If your actual output matches the expected output, it means that Rill Flow has been successfully installed.
### Access the Rill Flow administration background
After the command is successfully executed, you can access the Rill Flow management background at http://localhost (admin/admin). If the server is deployed, use the server IP address for access (port 80 by default).
### Execution Example
- Step 1: Open the Rill Flow management background, click the 'Flow Definition' menu, enter the 'Flow Definition List' page, click the 'Create' button
- Step 2: After entering the 'Flow Graph Edit' page, open the 'one-click import' switch, copy the following yaml file content into the text box, click the 'Submit' button, you can submit a simple flowchart.
```yaml
version: 1.0.0
workspace: rillFlowSimple
dagName: greet
alias: release
type: flow
inputSchema: >-
[{"required":true,"name":"Bob","type":"String"},{"required":true,"name":"Alice","type":"String"}]
tasks:
- category: function
name: Bob
resourceName: http://sample-executor:8000/greet.json?user=Bob
pattern: task_sync
tolerance: false
next: Alice
inputMappings:
- source: "$.context.Bob"
target: "$.input.Bob"
- category: function
name: Alice
resourceName: http://sample-executor:8000/greet.json?user=Alice
pattern: task_sync
tolerance: false
inputMappings:
- source: "$.context.Alice"
target: "$.input.Alice"
```
- Step 3: Submit the flow graph to execute the task
Click the 'Test' button, fill in the required parameters, and click the 'Submit' button.
- Step 4: Viewing the execution Result
Click the 'Submit' button in the previous step and you will automatically jump to the execution details page. You can view the execution status and details by clicking the 'Execution Records' button.
> More instructions on viewing results can be found in [Execution Status](../user-guide/04-execution/03-status.md)
![preview](https://rill-flow.github.io/img/flow_sample.jpg)
## Document
- [Document](https://rill-flow.github.io/en/docs/intro)
- [中文文档](https://rill-flow.github.io/docs/intro)
## Contributors
The following are contributors to the project along with their GitHub links:
- axb ([@qdaxb](https://github.com/qdaxb)) *Maintainer*
- techlog ([@techloghub](https://github.com/techloghub)) *Maintainer*
- ch15084 ([@ch15084](https://github.com/ch15084)) *Maintainer*
- Ocean ([@hhh041](https://github.com/hhh041))
- xilong-t ([@xilong-t](https://github.com/xilong-t))
- qfl ([@qiaofenlin](https://github.com/qiaofenlin))
- Kylen ([@Kylen](https://github.com/Kylen0714))
- zzfzzf ([@zzfzzf](https://github.com/zzfzzf))
- feifei ([@feifei325](https://github.com/feifei325))
- moqimoqidea ([@moqimoqidea](https://github.com/moqimoqidea))
- Guo, Jiansheng ([@guojiansheng0925](https://github.com/guojiansheng0925))
## License
Rill Flow is an open-source project under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
", Assign "at most 3 tags" to the expected json: {"id":"5512","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"