Skip to content

Commit 33cd967

Browse files
author
Murat Kaan Meral
committed
fix(gemini): Fix event loop closed error from Gemini asyncio
1 parent f5e2070 commit 33cd967

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/strands/models/gemini.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ def __init__(
6363

6464
logger.debug("config=<%s> | initializing", self.config)
6565

66-
client_args = client_args or {}
67-
self.client = genai.Client(**client_args)
66+
self.client_args = client_args or {}
6867

6968
@override
7069
def update_config(self, **model_config: Unpack[GeminiConfig]) -> None: # type: ignore[override]
@@ -366,8 +365,9 @@ async def stream(
366365
"""
367366
request = self._format_request(messages, tool_specs, system_prompt, self.config.get("params"))
368367

368+
client = genai.Client(**self.client_args).aio
369369
try:
370-
response = await self.client.aio.models.generate_content_stream(**request)
370+
response = await client.models.generate_content_stream(**request)
371371

372372
yield self._format_chunk({"chunk_type": "message_start"})
373373
yield self._format_chunk({"chunk_type": "content_start", "data_type": "text"})
@@ -442,5 +442,10 @@ async def structured_output(
442442
"response_schema": output_model.model_json_schema(),
443443
}
444444
request = self._format_request(prompt, None, system_prompt, params)
445-
response = await self.client.aio.models.generate_content(**request)
446-
yield {"output": output_model.model_validate(response.parsed)}
445+
client = genai.Client(**self.client_args).aio
446+
try:
447+
response = await client.models.generate_content(**request)
448+
yield {"output": output_model.model_validate(response.parsed)}
449+
finally:
450+
# Note: genai.AsyncClient doesn't expose proper cleanup methods
451+
pass

0 commit comments

Comments
 (0)