diff --git a/gns3server/agent/gns3_copilot/utils/message_converters.py b/gns3server/agent/gns3_copilot/utils/message_converters.py index 8bf18f668..367b2d956 100644 --- a/gns3server/agent/gns3_copilot/utils/message_converters.py +++ b/gns3server/agent/gns3_copilot/utils/message_converters.py @@ -37,6 +37,7 @@ from typing import Dict from langchain_core.messages import AIMessage from langchain_core.messages import HumanMessage from langchain_core.messages import SystemMessage +from langchain_core.messages import ToolCall from langchain_core.messages import ToolMessage @@ -86,7 +87,7 @@ def convert_langchain_to_openai(lc_message) -> Dict[str, Any]: tool_calls = [] for tc in lc_message.tool_calls: # Convert to dict if it's an object - tc_dict = tc if isinstance(tc, dict) else tc.model_dump() + tc_dict = tc tool_calls.append( { "id": tc_dict.get("id", str(uuid.uuid4())), @@ -139,7 +140,7 @@ def convert_openai_to_langchain(msg: Dict[str, Any]): # Restore tool calls if present if "tool_calls" in msg and msg["tool_calls"]: - tool_calls = [] + tool_calls: list[ToolCall] = [] for tc in msg["tool_calls"]: tool_calls.append( { diff --git a/pyproject.toml b/pyproject.toml index 258447eb6..25a160936 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -312,7 +312,6 @@ module = [ "gns3server.agent.gns3_copilot.tools_v2.packet_analysis_tool", # 1 "gns3server.agent.gns3_copilot.tools_v2.vpcs_tools_netmiko", # 9 "gns3server.agent.gns3_copilot.utils.custom_netmiko.scripts.list_netmiko_telnet_devices", # 1 - "gns3server.agent.gns3_copilot.utils.message_converters", # 2 "gns3server.agent.gns3_copilot.utils.parse_tool_content", # 1 "gns3server.agent.mcp.appliances", # 1 "gns3server.agent.web_wireshark.docker_client", # 5