Fix Google provider tool formatting - use genai.FunctionDeclaration objects instead of dicts

parent 36669a22
...@@ -303,16 +303,18 @@ class GoogleProviderHandler(BaseProviderHandler): ...@@ -303,16 +303,18 @@ class GoogleProviderHandler(BaseProviderHandler):
for tool in tools: for tool in tools:
if tool.get("type") == "function": if tool.get("type") == "function":
function = tool.get("function", {}) function = tool.get("function", {})
function_declaration = { # Use Google's SDK types for proper validation
"name": function.get("name"), from google import genai
"description": function.get("description", ""), function_declaration = genai.FunctionDeclaration(
"parameters": function.get("parameters", {}) name=function.get("name"),
} description=function.get("description", ""),
parameters=function.get("parameters", {})
)
function_declarations.append(function_declaration) function_declarations.append(function_declaration)
logging.info(f"GoogleProviderHandler: Converted tool to Google format: {function_declaration}") logging.info(f"GoogleProviderHandler: Converted tool to Google format: {function_declaration}")
if function_declarations: if function_declarations:
# Google API expects tools to be a list of tool declarations directly # Google API expects tools to be a list of FunctionDeclaration objects
config["tools"] = function_declarations config["tools"] = function_declarations
logging.info(f"GoogleProviderHandler: Added {len(function_declarations)} tools to config") logging.info(f"GoogleProviderHandler: Added {len(function_declarations)} tools to config")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment