frames: add new StopFrame

This commit is contained in:
Aleix Conchillo Flaqué
2025-02-24 21:31:07 -08:00
parent fe9fc61c4e
commit 68789dfcf0
2 changed files with 21 additions and 3 deletions

View File

@@ -9,6 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Added a new `StopFrame` which can be used to stop a pipeline task while
keeping the frame processors running. The frame processors could then be used
in a different pipeline. The difference between a `StopFrame` and a
`StopTaskFrame` is that, as with `EndFrame` and `EndTaskFrame`, the
`StopFrame` is pushed from the task and the `StopTaskFrame` is pushed upstream
inside the pipeline by any processor.
- Added a new `PipelineTask` parameter `observers` that replaces the previous - Added a new `PipelineTask` parameter `observers` that replaces the previous
`PipelineParams.observers`. `PipelineParams.observers`.

View File

@@ -513,9 +513,9 @@ class CancelTaskFrame(SystemFrame):
@dataclass @dataclass
class StopTaskFrame(SystemFrame): class StopTaskFrame(SystemFrame):
"""Indicates that a pipeline task should be stopped but that the pipeline """This is used to notify the pipeline task that it should be stopped as
processors should be kept in a running state. This is normally queued from soon as possible (flushing all the queued frames) but that the pipeline
the pipeline task. processors should be kept in a running state.
""" """
@@ -722,6 +722,17 @@ class EndFrame(ControlFrame):
pass pass
@dataclass
class StopFrame(ControlFrame):
"""Indicates that a pipeline should be stopped but that the pipeline
processors should be kept in a running state. This is normally queued from
the pipeline task.
"""
pass
@dataclass @dataclass
class LLMFullResponseStartFrame(ControlFrame): class LLMFullResponseStartFrame(ControlFrame):
"""Used to indicate the beginning of an LLM response. Following by one or """Used to indicate the beginning of an LLM response. Following by one or