|  | @@ -116,26 +116,33 @@ class GoogleLargeLanguageModel(LargeLanguageModel):
 | 
	
		
			
				|  |  |          :param tools: tool messages
 | 
	
		
			
				|  |  |          :return: glm tools
 | 
	
		
			
				|  |  |          """
 | 
	
		
			
				|  |  | -        return glm.Tool(
 | 
	
		
			
				|  |  | -            function_declarations=[
 | 
	
		
			
				|  |  | -                glm.FunctionDeclaration(
 | 
	
		
			
				|  |  | -                    name=tool.name,
 | 
	
		
			
				|  |  | -                    parameters=glm.Schema(
 | 
	
		
			
				|  |  | -                        type=glm.Type.OBJECT,
 | 
	
		
			
				|  |  | -                        properties={
 | 
	
		
			
				|  |  | -                            key: {
 | 
	
		
			
				|  |  | -                                "type_": value.get("type", "string").upper(),
 | 
	
		
			
				|  |  | -                                "description": value.get("description", ""),
 | 
	
		
			
				|  |  | -                                "enum": value.get("enum", []),
 | 
	
		
			
				|  |  | -                            }
 | 
	
		
			
				|  |  | -                            for key, value in tool.parameters.get("properties", {}).items()
 | 
	
		
			
				|  |  | -                        },
 | 
	
		
			
				|  |  | -                        required=tool.parameters.get("required", []),
 | 
	
		
			
				|  |  | -                    ),
 | 
	
		
			
				|  |  | +        function_declarations = []
 | 
	
		
			
				|  |  | +        for tool in tools:
 | 
	
		
			
				|  |  | +            properties = {}
 | 
	
		
			
				|  |  | +            for key, value in tool.parameters.get("properties", {}).items():
 | 
	
		
			
				|  |  | +                properties[key] = {
 | 
	
		
			
				|  |  | +                    "type_": glm.Type.STRING,
 | 
	
		
			
				|  |  | +                    "description": value.get("description", ""),
 | 
	
		
			
				|  |  | +                    "enum": value.get("enum", []),
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if properties:
 | 
	
		
			
				|  |  | +                parameters = glm.Schema(
 | 
	
		
			
				|  |  | +                    type=glm.Type.OBJECT,
 | 
	
		
			
				|  |  | +                    properties=properties,
 | 
	
		
			
				|  |  | +                    required=tool.parameters.get("required", []),
 | 
	
		
			
				|  |  |                  )
 | 
	
		
			
				|  |  | -                for tool in tools
 | 
	
		
			
				|  |  | -            ]
 | 
	
		
			
				|  |  | -        )
 | 
	
		
			
				|  |  | +            else:
 | 
	
		
			
				|  |  | +                parameters = None
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            function_declaration = glm.FunctionDeclaration(
 | 
	
		
			
				|  |  | +                name=tool.name,
 | 
	
		
			
				|  |  | +                parameters=parameters,
 | 
	
		
			
				|  |  | +                description=tool.description,
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +            function_declarations.append(function_declaration)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return glm.Tool(function_declarations=function_declarations)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def validate_credentials(self, model: str, credentials: dict) -> None:
 | 
	
		
			
				|  |  |          """
 |