Pipe Widget is used for complex logic orchestration, serving as an alternative to Flow.
Warning:
Pipe Widget is an experimental feature and not recommended for production use.
Usage Scenario
Generating DSL from a graphical interface, implementing simple functional logic extensions on the application side.
CLI: https://github.com/YaoApp/yao-dev-app/blob/main/pipes/cli/translator.pip.yao
WEB: https://github.com/YaoApp/yao-dev-app/blob/main/pipes/web/translator.pip.yao
Type | options | Description |
---|---|---|
Yao Process | name , args |
run yao process |
Switch | conditional branch | |
AI | prompts , model , option |
AI interface |
Request | HTTP request (not supported yet, use yao process instead) | |
User Input | ui (cli/web/...) |
user input interface |
for more details, refer to the DSL demo.
Refer to unit test programs for examples.
Run Pipe
yao run pipes.<Widget.ID> [args...]
If interrupted by user input interface, it returns a context ID for resuming execution.
Run Pipe, equivalent to pipes.<Widget.ID>
yao run pipe.Run <Widget.ID> [args...]
Pass DSL text to create and run Pipe
yao run pipe.Create <DSL> [args...]
Pass DSL text to create and run Pipe
yao run pipe.CreateWith <DSL> '::{"foo":"bar"}' [args...]
Resume execution, used for context restoration
yao run pipe.Resume <Context.ID> [args...]
Resume execution, used for context restoration
yao run pipe.ResumeWith <Context.ID> '::{"foo":"bar"}' [args...]
Close Pipe
yao run pipe.Close <Context.ID>
- Yao Process Node Support for running yao process
- Switch Node Conditional branch
- AI Node AI interface
- User Input Node User input interface
- Request Node Support for Http Request
- Hooks Progress report for hook integration