You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_utils.py 1.4 kB

123456789101112131415161718192021222324252627282930313233343536
  1. from typing import List
  2. import pytest
  3. from autogen_agentchat.utils import remove_images
  4. from autogen_core import Image
  5. from autogen_core.models import AssistantMessage, LLMMessage, SystemMessage, UserMessage
  6. @pytest.mark.asyncio
  7. async def test_remove_images() -> None:
  8. img_base64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4//8/AAX+Av4N70a4AAAAAElFTkSuQmCC"
  9. messages: List[LLMMessage] = [
  10. SystemMessage(content="System.1"),
  11. UserMessage(content=["User.1", Image.from_base64(img_base64)], source="user.1"),
  12. AssistantMessage(content="Assistant.1", source="assistant.1"),
  13. UserMessage(content="User.2", source="assistant.2"),
  14. ]
  15. result = remove_images(messages)
  16. # Check all the invariants
  17. assert len(result) == 4
  18. assert isinstance(result[0], SystemMessage)
  19. assert isinstance(result[1], UserMessage)
  20. assert isinstance(result[2], AssistantMessage)
  21. assert isinstance(result[3], UserMessage)
  22. assert result[0].content == messages[0].content
  23. assert result[2].content == messages[2].content
  24. assert result[3].content == messages[3].content
  25. assert isinstance(messages[2], AssistantMessage)
  26. assert isinstance(messages[3], UserMessage)
  27. assert result[2].source == messages[2].source
  28. assert result[3].source == messages[3].source
  29. # Check that the image was removed.
  30. assert result[1].content == "User.1\n<image>"