From faf41c0b361451c4add75fdc916ce34baa2b5694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Wed, 31 Jul 2024 23:41:03 -0700 Subject: [PATCH] services: ignore yielded None values --- CHANGELOG.md | 3 +++ src/pipecat/services/ai_services.py | 9 +++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b1363261..94db1935f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Fixed an issue in `AIService` that would cause a yielded `None` value to be + processed. + - RTVI's `bot-ready` message is now sent when the RTVI pipeline is ready and a first participant joins. diff --git a/src/pipecat/services/ai_services.py b/src/pipecat/services/ai_services.py index 8dae7ed0b..2b828df31 100644 --- a/src/pipecat/services/ai_services.py +++ b/src/pipecat/services/ai_services.py @@ -75,10 +75,11 @@ class AIService(FrameProcessor): async def process_generator(self, generator: AsyncGenerator[Frame, None]): async for f in generator: - if isinstance(f, ErrorFrame): - await self.push_error(f) - else: - await self.push_frame(f) + if f: + if isinstance(f, ErrorFrame): + await self.push_error(f) + else: + await self.push_frame(f) class AsyncAIService(AsyncFrameProcessor):