From 549eee828e21ef0f0ab918c3f6a7469b6116ab63 Mon Sep 17 00:00:00 2001 From: Emmanuel Leroy Date: Fri, 1 Aug 2025 14:06:13 -0700 Subject: [PATCH] create dummy AIMessage repeating ToolMessage results to circumvent the issue with ToolMessages being stripped out. --- libs/oci/langchain_oci/chat_models/oci_generative_ai.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/oci/langchain_oci/chat_models/oci_generative_ai.py b/libs/oci/langchain_oci/chat_models/oci_generative_ai.py index 935b001..0450570 100644 --- a/libs/oci/langchain_oci/chat_models/oci_generative_ai.py +++ b/libs/oci/langchain_oci/chat_models/oci_generative_ai.py @@ -365,9 +365,12 @@ def messages_to_oci_params( # Process current turn messages in reverse order until a HumanMessage current_turn = [] - for message in reversed(messages): + for i, message in enumerate(messages[::-1]): current_turn.append(message) if isinstance(message, HumanMessage): + if len(messages) > i and isinstance(messages[len(messages) - i - 2], ToolMessage): + # add dummy message REPEATING the tool_result to avoid the error about ToolMessage needing to be followed by an AI message + oci_chat_history.append(self.oci_chat_message['CHATBOT'](message=messages[len(messages) - i - 2].content)) break current_turn = list(reversed(current_turn))