diff --git a/changelog/3252.added.md b/changelog/3252.added.md new file mode 100644 index 000000000..c6f85b713 --- /dev/null +++ b/changelog/3252.added.md @@ -0,0 +1,2 @@ +- Added `VisionFullResponseStartFrame`, `VisionFullResponseEndFrame` and + `VisionTextFrame`. This are used by vision services similar to LLM services. diff --git a/src/pipecat/frames/frames.py b/src/pipecat/frames/frames.py index 8d2a51333..998ca3cf0 100644 --- a/src/pipecat/frames/frames.py +++ b/src/pipecat/frames/frames.py @@ -400,6 +400,13 @@ class AggregatedTextFrame(TextFrame): aggregated_by: AggregationType | str +@dataclass +class VisionTextFrame(LLMTextFrame): + """Text frame generated by vision services.""" + + pass + + @dataclass class TTSTextFrame(AggregatedTextFrame): """Text frame generated by Text-to-Speech services.""" @@ -1766,6 +1773,25 @@ class FunctionCallInProgressFrame(ControlFrame, UninterruptibleFrame): cancel_on_interruption: bool = False +@dataclass +class VisionFullResponseStartFrame(LLMFullResponseStartFrame): + """Frame indicating the beginning of a vision model response. + + Used to indicate the beginning of a vision model response. Followed by one + or more VisionTextFrames and a final VisionFullResponseEndFrame. + + """ + + pass + + +@dataclass +class VisionFullResponseEndFrame(LLMFullResponseEndFrame): + """Frame indicating the end of a Vision model response.""" + + pass + + @dataclass class TTSStartedFrame(ControlFrame): """Frame indicating the beginning of a TTS response.