|
14 | 14 | import pandas as pd |
15 | 15 | from attr import dataclass |
16 | 16 | from browsergym.experiments.loop import StepInfo as BGymStepInfo |
17 | | -from langchain.schema import BaseMessage, HumanMessage |
18 | 17 | from openai import OpenAI |
19 | 18 | from openai.types.responses import ResponseFunctionToolCall |
20 | 19 | from PIL import Image |
|
30 | 29 | from agentlab.llm.llm_utils import Discussion |
31 | 30 | from agentlab.llm.response_api import MessageBuilder, ToolCalls |
32 | 31 |
|
| 32 | +try: |
| 33 | + from langchain.schema import BaseMessage, HumanMessage |
| 34 | +except ImportError: |
| 35 | + BaseMessage, HumanMessage = None, None |
| 36 | + |
33 | 37 | select_dir_instructions = "Select Experiment Directory" |
34 | 38 | AGENT_NAME_KEY = "agent.agent_name" |
35 | 39 | TASK_NAME_KEY = "env.task_name" |
@@ -746,7 +750,7 @@ def format_chat_message(message: BaseMessage | MessageBuilder | dict): |
746 | 750 | """ |
747 | 751 | Format a message to markdown. |
748 | 752 | """ |
749 | | - if isinstance(message, BaseMessage): |
| 753 | + if BaseMessage and isinstance(message, BaseMessage): |
750 | 754 | return message.content |
751 | 755 | elif isinstance(message, MessageBuilder): |
752 | 756 | return message.to_markdown() |
@@ -859,7 +863,9 @@ def submit_action(input_text): |
859 | 863 | global info |
860 | 864 | agent_info = info.exp_result.steps_info[info.step].agent_info |
861 | 865 | chat_messages = deepcopy(agent_info.get("chat_messages", ["No Chat Messages"])[:2]) |
862 | | - if isinstance(chat_messages[1], BaseMessage): # TODO remove once langchain is deprecated |
| 866 | + if BaseMessage and isinstance( |
| 867 | + chat_messages[1], BaseMessage |
| 868 | + ): # TODO remove once langchain is deprecated |
863 | 869 | assert isinstance(chat_messages[1], HumanMessage), "Second message should be user" |
864 | 870 | chat_messages = [ |
865 | 871 | make_system_message(chat_messages[0].content), |
|
0 commit comments