Fix a bug in GeminiLiveLLMService where in some circumstances it wouldn't respond after a tool call

This commit is contained in:
Paul Kompfner
2025-11-04 10:26:56 -05:00
parent 24365aeefe
commit 75245e1daa
2 changed files with 10 additions and 3 deletions

View File

@@ -76,6 +76,9 @@ reason")`.
arbitrary request data from client due to camelCase typing. This fixes data
passthrough for JS clients where `APIRequest` is used.
- Fixed a bug in `GeminiLiveLLMService` where in some circumstances it wouldn't
respond after a tool call.
- Fixed `GeminiLiveLLMService` session resumption after a connection timeout.
- `GeminiLiveLLMService` now properly supports context-provided system

View File

@@ -13,8 +13,6 @@ voice transcription, streaming responses, and tool usage.
import base64
import io
import json
import random
import time
import uuid
import warnings
@@ -1012,7 +1010,13 @@ class GeminiLiveLLMService(LLMService):
if part.function_response:
tool_call_id = part.function_response.id
tool_name = part.function_response.name
if tool_call_id and tool_call_id not in self._completed_tool_calls:
response = part.function_response.response
if (
tool_call_id
and tool_call_id not in self._completed_tool_calls
and response
and response.get("value") != "IN_PROGRESS"
):
# Found a newly-completed function call - send the result to the service
if send_new_results:
await self._tool_result(