From 5dbf26d283ad92f5a6715233f2a88b7fd9b7be7a Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Mon, 7 Oct 2024 07:21:32 -0400 Subject: [PATCH] Handle cases where text is either a list or a string --- src/pipecat/processors/frameworks/rtvi.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/pipecat/processors/frameworks/rtvi.py b/src/pipecat/processors/frameworks/rtvi.py index d80eef943..20d421bac 100644 --- a/src/pipecat/processors/frameworks/rtvi.py +++ b/src/pipecat/processors/frameworks/rtvi.py @@ -439,8 +439,16 @@ class RTVIUserLLMTextProcessor(RTVIFrameProcessor): if len(messages) > 0: message = messages[-1] if message["role"] == "user": - message = RTVIUserLLMTextMessage(data=RTVITextMessageData(text=message["content"])) - await self._push_transport_message_urgent(message) + content = message["content"] + if isinstance(content, list): + print("LIST") + text = " ".join(item["text"] for item in content if "text" in item) + else: + print("STRING") + text = content + + rtvi_message = RTVIUserLLMTextMessage(data=RTVITextMessageData(text=text)) + await self._push_transport_message_urgent(rtvi_message) class RTVIBotLLMProcessor(RTVIFrameProcessor):