diff --git a/libs/core/langchain_core/messages/utils.py b/libs/core/langchain_core/messages/utils.py index f7d823bf80a..ccdb0b24e9d 100644 --- a/libs/core/langchain_core/messages/utils.py +++ b/libs/core/langchain_core/messages/utils.py @@ -948,8 +948,9 @@ def convert_to_openai_messages( oai_messages: list = [] - if is_single := isinstance(messages, (BaseMessage, dict)): + if is_single := isinstance(messages, (BaseMessage, dict, str)): messages = [messages] + messages = convert_to_messages(messages) for i, message in enumerate(messages): diff --git a/libs/core/tests/unit_tests/messages/test_utils.py b/libs/core/tests/unit_tests/messages/test_utils.py index 18b95ce75a4..8777b2674c5 100644 --- a/libs/core/tests/unit_tests/messages/test_utils.py +++ b/libs/core/tests/unit_tests/messages/test_utils.py @@ -666,6 +666,12 @@ def create_base64_image(format: str = "jpeg") -> str: return f"data:image/{format};base64,{data}" +def test_convert_to_openai_messages_string() -> None: + message = "Hello" + result = convert_to_openai_messages(message) + assert result == {"role": "user", "content": "Hello"} + + def test_convert_to_openai_messages_single_message() -> None: message = HumanMessage(content="Hello") result = convert_to_openai_messages(message)