Open
Description
Operating System
Windows 11
Environment (if applicable)
Chrome
Firebase SDK Version
11.1.0
Firebase SDK Product(s)
VertexAI
Project Tooling
Next.js app
Detailed Problem Description
When trying to provide optionalProperties to a function as part of the Vertex AI tools, I get this error:
Invalid JSON payload received. Unknown name "optionalProperties" at 'tools[0].function_declarations[0].parameters': Cannot find field.
It is typed correctly as I can see optionalProperties is available to provide to the function declaration. This is an issue as Vertex AI in Firebase treats all parameters as required unless specified as optional but I am unable to actually specify anything as optional.
Steps and code to reproduce issue
- Create a function declaration that has optionalProperties defined and pass it to the Vertex AI model creation
- Attempt to create a new chat and send a message.
Activity
google-oss-bot commentedon Apr 17, 2025
I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
hsubox76 commentedon Apr 17, 2025
You didn't provide any code but here's a version of it that seems to be working fine. Are you using the
Schema.object()
method?optionalProperties
only works withSchema.object
. We should probably add that in the documentation and/or fix the typing so it doesn't look like it's an available property if you are passing a raw object.brandonfranke commentedon Apr 18, 2025
Thanks for the reply.
I've copied the exact function declaration you've provided and looks like that works however I am now getting type errors.
Type 'ObjectSchema' is not assignable to type 'ObjectSchemaInterface'. Types of property 'type' are incompatible. Type 'SchemaType' is not assignable to type 'SchemaType.OBJECT'.
Works but with type errors:
No type errors but causes described error:
hsubox76 commentedon Apr 18, 2025
I see that, let me see what I can do to fix it. In the meantime, to unblock yourself, you can temporarily use
// @ts-ignore
on that line and remove it when we release a fix.