fix(gemini-live-vertex): disable NON_BLOCKING tools
GeminiLiveVertexLLMService overrides _supports_non_blocking_tools to return False — Vertex AI's Gemini Live endpoint doesn't yet accept the NON_BLOCKING behavior field on function declarations or the scheduling field on FunctionResponse, and sending either breaks tool calling. Effect: function declarations sent to Vertex no longer carry NON_BLOCKING; FunctionResponses no longer carry scheduling: WHEN_IDLE. Users registering a function with cancel_on_interruption=False against Vertex get the same one-time logger.error + push_error the base class surfaces on Gemini 3.x.
This commit is contained in:
@@ -238,6 +238,20 @@ class GeminiLiveVertexLLMService(GeminiLiveLLMService):
|
||||
"When using Vertex AI, the recommended approach is to use Google Cloud Storage for file handling. The Gemini File API is not directly supported in this context."
|
||||
)
|
||||
|
||||
@property
|
||||
def _supports_non_blocking_tools(self) -> bool:
|
||||
"""Vertex AI's Gemini Live endpoint does not yet support NON_BLOCKING tool calls.
|
||||
|
||||
Override the base ``GeminiLiveLLMService`` getter to disable the
|
||||
NON_BLOCKING ``behavior`` field on function declarations and the
|
||||
``scheduling`` field on FunctionResponse for Vertex sessions —
|
||||
sending either appears to break tool calling against Vertex.
|
||||
Users hitting this on a function registered with
|
||||
``cancel_on_interruption=False`` will see the same one-time
|
||||
warning the base class surfaces for unsupported models.
|
||||
"""
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def _get_credentials(
|
||||
credentials: str | None, credentials_path: str | None
|
||||
|
||||
Reference in New Issue
Block a user