diff --git a/src/rai_core/rai/communication/hri_connector.py b/src/rai_core/rai/communication/hri_connector.py index 28763766c..f6e352465 100644 --- a/src/rai_core/rai/communication/hri_connector.py +++ b/src/rai_core/rai/communication/hri_connector.py @@ -92,7 +92,7 @@ def to_langchain(self) -> LangchainBaseMessage: if self.images == [] and self.audios == []: return AIMessage(content=self.text) return AIMultimodalMessage( - content=self.text, images=base64_images, audios=base64_images + content=self.text, images=base64_images, audios=base64_audios ) case _: raise ValueError( diff --git a/tests/communication/test_hri_message.py b/tests/communication/test_hri_message.py index 8ec939dc1..52abb4482 100644 --- a/tests/communication/test_hri_message.py +++ b/tests/communication/test_hri_message.py @@ -82,26 +82,40 @@ def test_to_langchain_human(): assert langchain_message.content == "Hi there" -def test_to_langchain_ai_multimodal(image, audio): +def test_to_langchain_ai_images_only(image): + """AI messages with images (no audio) must map audios correctly and succeed.""" + from rai.messages.multimodal import AIMultimodalMessage + message = HRIMessage( text="Response", images=[image], - audios=[audio], + audios=[], message_author="ai", communication_id=HRIMessage.generate_communication_id(), seq_no=0, seq_end=True, ) + langchain_message = message.to_langchain() + assert isinstance(langchain_message, AIMultimodalMessage) + assert langchain_message.images is not None + assert len(langchain_message.images) == 1 + - with pytest.raises( - ValueError - ): # NOTE: update when https://github.com/RobotecAI/rai/issues/370 is resolved +def test_to_langchain_ai_with_audio_still_unsupported(image, audio): + """Audio on MultimodalMessage remains unsupported until issue #370.""" + message = HRIMessage( + text="Response", + images=[image], + audios=[audio], + message_author="ai", + communication_id=HRIMessage.generate_communication_id(), + seq_no=0, + seq_end=True, + ) + with pytest.raises(ValueError, match="Audio is not yet supported"): _ = message.to_langchain() - # assert isinstance(langchain_message, AIMultimodalMessage) - # assert langchain_message.content == "Response" - # assert langchain_message.images == ["img"] - # assert langchain_message.audios == ["audio"] + def test_from_langchain_human():