Skip to content

Can several steps accept one event in a workflow? #18215

Answered by InAnYan
InAnYan asked this question in Q&A

You must be logged in to vote

Yes, you can do this without problems.

Here is an example:

from typing import Optional
from llama_index.core.workflow import Context, Event, StartEvent, StopEvent, Workflow, step
import asyncio
from pprint import pprint


class ProcessEvent(Event):
    start: StartEvent


class ResultA(Event):
    process: ProcessEvent


class ResultB(Event):
    process: ProcessEvent


class MyStopEvent(StopEvent):
    a: ResultA
    b: ResultB
    

class MyWorkflow(Workflow):
    @step
    async def start(self, ev: StartEvent) -> ProcessEvent:
        return ProcessEvent(start=ev)

    @step
    async def make_result_a(self, ev: ProcessEvent) -> ResultA:
        return ResultA(process=ev)

    @step
    

Replies: 2 comments 2 replies

You must be logged in to vote
0 replies

You must be logged in to vote
2 replies
@InAnYan

@InAnYan

Answer selected by InAnYan
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
1 participant