feat(workflow): enhance message stages and image routing
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import unittest
|
||||
|
||||
from pipecat.frames.frames import LLMMessagesAppendFrame, UserImageRawFrame
|
||||
from services.pipecat.pipeline import _multimodal_user_input_frame
|
||||
from services.pipecat.processors import UserInputError, parse_user_input
|
||||
|
||||
|
||||
@@ -52,6 +54,33 @@ class UserInputParserTests(unittest.TestCase):
|
||||
}
|
||||
)
|
||||
|
||||
def test_native_image_uses_the_standard_multimodal_user_turn_path(self):
|
||||
image = UserImageRawFrame(
|
||||
image=bytes([220, 40, 40] * 16 * 16),
|
||||
size=(16, 16),
|
||||
format="RGB",
|
||||
)
|
||||
|
||||
frame = _multimodal_user_input_frame(
|
||||
image,
|
||||
"请根据用户刚提交的图片进行回复。",
|
||||
)
|
||||
|
||||
self.assertIsInstance(frame, LLMMessagesAppendFrame)
|
||||
self.assertTrue(frame.run_llm)
|
||||
self.assertEqual(frame.messages[0]["role"], "user")
|
||||
content = frame.messages[0]["content"]
|
||||
self.assertEqual(
|
||||
content[0],
|
||||
{"type": "text", "text": "请根据用户刚提交的图片进行回复。"},
|
||||
)
|
||||
self.assertEqual(content[1]["type"], "image_url")
|
||||
self.assertTrue(
|
||||
content[1]["image_url"]["url"].startswith(
|
||||
"data:image/jpeg;base64,"
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user