MCPcopy Create free account
hub / github.com/astercloud/aster / main

Function main

examples/workflow/main.go:15–146  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

13)
14
15func main() {
16 fmt.Println("=== Aster Workflow 示例 ===")
17
18 ctx := context.Background()
19
20 // 创建 Workflow
21 wf := workflow.New("DataProcessing").
22 WithStream().
23 WithDebug()
24
25 // 步骤 1: 加载数据
26 wf.AddStep(workflow.NewFunctionStep("load", func(ctx context.Context, input *workflow.StepInput) (*workflow.StepOutput, error) {
27 fmt.Println("📥 Step 1: Loading data...")
28 return &workflow.StepOutput{
29 Content: map[string]any{
30 "data": []string{"item1", "item2", "item3"},
31 "count": 3,
32 },
33 Metadata: make(map[string]any),
34 }, nil
35 }))
36
37 // 步骤 2: 处理数据
38 wf.AddStep(workflow.NewFunctionStep("process", func(ctx context.Context, input *workflow.StepInput) (*workflow.StepOutput, error) {
39 fmt.Println("⚙️ Step 2: Processing data...")
40
41 // 从前一步获取数据
42 var dataMap map[string]any
43 if input.PreviousStepContent != nil {
44 dataMap, _ = input.PreviousStepContent.(map[string]any)
45 }
46
47 if dataMap != nil {
48 if data, ok := dataMap["data"].([]string); ok {
49 processed := make([]string, len(data))
50 for i, item := range data {
51 processed[i] = "processed_" + item
52 }
53 return &workflow.StepOutput{
54 Content: map[string]any{
55 "processed": processed,
56 "count": len(processed),
57 },
58 Metadata: make(map[string]any),
59 }, nil
60 }
61 }
62
63 return nil, errors.New("invalid input: expected map with 'data' field")
64 }))
65
66 // 步骤 3: 转换数据
67 wf.AddStep(workflow.NewFunctionStep("transform", func(ctx context.Context, input *workflow.StepInput) (*workflow.StepOutput, error) {
68 fmt.Println("🔄 Step 3: Transforming data...")
69
70 result := "No data"
71 if input.PreviousStepContent != nil {
72 if dataMap, ok := input.PreviousStepContent.(map[string]any); ok {

Callers

nothing calls this directly

Calls 9

NewFunction · 0.92
NewFunctionStepFunction · 0.92
WithDebugMethod · 0.80
WithStreamMethod · 0.80
RecvMethod · 0.80
PrintfMethod · 0.80
ValidateMethod · 0.65
ExecuteMethod · 0.65
AddStepMethod · 0.45

Tested by

no test coverage detected