You are an argument selector of the tools. You must look at the reasoning of the sequence of tools, and choose the argument appropriately. You also have must look at the previous tool outputs and previous constraint outputs, because it will help you choose exact inputs. The output should be a list, containing roomId(str) as elements.
Tools:
def get_window_list(roomId: list) -> dict:
"""
Returns a list of window IDs from the given scene.
Input:
- roomId (list): A list of room IDs (strings) for which object IDs are required.
Output:
- window_list (dict): A dictionary where each key is a room ID from the input list, and the corresponding value is a list of window ID strings that are connected to that room in the scene.
"""
def get_door_list(roomId: list) -> dict:
"""
Retrieves door IDs associated with the specified room IDs in the scene.
Input:
- roomId (list): A list of room ID strings for which the door IDs are to be retrieved.
Output:
- dict: A dictionary where each key is a room ID from the input list, and the corresponding value is a list of door ID strings that are connected to that room in the scene.
"""
def get_wall_list(roomId: list) -> dict:
"""
Returns a list of wall IDs from the given scene.
Input:
- roomId (list): A list of room IDs (strings) for which object IDs are required.
Output:
- wall_list (dict): A dictionary where each key is a room ID from the input list, and the corresponding value is a list of wall ID strings that are connected to that room in the scene.
"""
def get_object_list(roomId: list) -> dict:
"""
Returns a list of object IDs for specified rooms in the given scene.
Input:
- roomId (list): A list of room IDs (strings) for which object IDs are required.
Output:
- object_list (dict): A dictionary where keys are room IDs and values are lists of object IDs (strings) present in each room.
"""
ONLY OUTPUT IN THE SAME FORMAT AS THE EXAMPLES WITHOUT EXPLANATIONS.
Example 1.
User Instruction: There is a bedroom and a bathroom in the scene. In the both rooms, there are four windows. There are 3 couches in the bedroom. They are all orange. They are all shaped differently.
Previous Constraint Outputs: ["There is a bedroom and a bathroom in the scene, and their Ids are 'bedroom 0' and 'bathroom 1'."]
Current Constraint: There are four windows in the both rooms.
Tool Sequence: ['get_window_list', 'get_window_info']
Reasoning behind Tool Sequence: From the previous constraint outputs, I know that the room Id of the bedroom and bathroom are 'bedroom 0', and 'bathroom 0'. I will use 'get_window_list' with the room Id of the bedroom and bathroom as input. After that, I will use 'get_window_info' to get the information of the windows in the bedroom and bathroom. The input of that tool is the output of 'get_window_list'.
Previous Tool Outputs:
Arguments: ['bedroom 0', 'bathroom 1']
Example 2.
User Instruction: There are two bedrooms in the scene. In one bedroom, there is a door that leads to the exterior. In the bedroom that does not have the door to the exterior, there is a desk. On the desk, there is a pencil.
Previous Constraint Outputs: ["There are two bedrooms in the scene, and their room Ids are 'bedroom 0' and 'bedroom 1'."]
Current Constraint: In one bedroom, there is a door that leads to the exterior.
Tool Sequence: ['get_door_list', 'get_door_info', 'get_topdown_room']
Reasoning behind Tool Sequence: I need room Id to use other tools that I have to use. I will use 'get_door_list' tool to get the list of doors in the two bedrooms. The input of 'get_door_list' will be the room Ids, and I can know them from the previous constraint outputs. The room Id of both bedrooms will be the input. With the door list, I will check all their information by using 'get_door_info' tool.
Previous Tool Outputs:
Current Tool to Use: 'get_door_list'
Arguments: ['bedroom 0', 'bedroom 1']
Example 3.
User Instruction: I want to create one classroom in the scene. The two walls in the classroom are blue. The other two are red.
Previous Constraint Outputs: ["There is one classroom in the scene, and the Id is 'classroom 0'."]
Current Constraint: The two walls in the classroom are blue.
Tool Sequence: ['get_wall_list', 'get_wall_info', 'get_material_image']
Reasoning behind Tool Sequence: The room Id of the classroom is 'classroom 0', as I can see in the previous constraint outputs. With the room Ids as input, I will use the 'get_wall_list' to get the list of walls(wall IDs) in the classroom. Then, with the wall ID list, I will use the 'get_wall_info' tool to find out the material of the walls. Then, I will use the 'get_material_image' to visually see if two walls are blue.
Previous Tool Outputs:
Current Tool to Use: 'get_wall_list'
Arguments: ['classroom 0']
Example 4.
User Instruction: There are two rooms in the scene. One room is larger than the other room. In the larger room, there is a bed, a desk, and a doll.
Previous Constraint Outputs: ["There are two rooms in the scene, one room's ID is 'room 1' and the other one's ID is 'room 2'.", "The larger room is 'room 2', and the smaller room is 'room 1'."]
Current Constraint: In the larger room, there is a bed, a desk, and a doll.
Tool Sequence: ['get_room_info', 'get_object_list', 'get_object_info', 'get_topdown_room']
Reasoning behind Tool Sequence: From the previous constraint outputs, I can find that the room Id of the larger room is 'room 2'. I will use the 'get_object_list' tool to get the list of object IDs in that room. From the list of object IDs, I can check if there is a bed, a desk, and a doll in the room. To confirm, I can use the 'get_object_info' tool with the IDs of the bed, desk, and doll as input. This will give me detailed information about these objects, including their positions in the room. Finally, I will use the 'get_topdown_room' tool with the ID of the larger room as input to get a top-down view of the room. This will allow me to visually confirm the placement of the objects in the room.
Previous Tool Outputs:
Current Tool to Use: 'get_object_list'
Arguments: ['room 2']
User Instruction: {instruction}
Previous Constraint Outputs: {constraint_output}
Current Constraint: {constraint}
Tool Sequence: {tool_sequence}
Reasoning behind Tool Sequence: {reasoning}
Previous Tool Outputs: {tool_output}
Current Tool to Use: {tool_to_use}
Arguments: