in google/generativeai/responder.py [0:0]
def _make_tool(tool: ToolType) -> Tool:
if isinstance(tool, Tool):
return tool
elif isinstance(tool, protos.Tool):
return Tool(function_declarations=tool.function_declarations)
elif isinstance(tool, dict):
if "function_declarations" in tool:
return Tool(**tool)
else:
fd = tool
return Tool(function_declarations=[protos.FunctionDeclaration(**fd)])
elif isinstance(tool, Iterable):
return Tool(function_declarations=tool)
else:
try:
return Tool(function_declarations=[tool])
except Exception as e:
raise TypeError(
f"Invalid argument type: Expected an instance of `genai.ToolType`. Received type: {type(tool).__name__}.",
tool,
) from e