| @@ -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: | |||
| """ | |||