@@ -263,6 +263,8 @@ async def _make_request(
263263 yield r
264264
265265 def _process_response (self , response : _GeminiResponse ) -> ModelResponse :
266+ vendor_details : dict [str , Any ] | None = None
267+
266268 if len (response ['candidates' ]) != 1 :
267269 raise UnexpectedModelBehavior ('Expected exactly one candidate in Gemini response' ) # pragma: no cover
268270 if 'content' not in response ['candidates' ][0 ]:
@@ -274,7 +276,9 @@ def _process_response(self, response: _GeminiResponse) -> ModelResponse:
274276 )
275277 parts = response ['candidates' ][0 ]['content' ]['parts' ]
276278 vendor_id = response .get ('vendor_id' , None )
277- vendor_details = {'finish_reason' : response ['candidates' ][0 ].get ('finish_reason' )}
279+ finish_reason = response ['candidates' ][0 ].get ('finish_reason' )
280+ if finish_reason :
281+ vendor_details = {'finish_reason' : finish_reason }
278282 usage = _metadata_as_usage (response )
279283 usage .requests = 1
280284 return _process_response_from_parts (
@@ -609,7 +613,7 @@ def _process_response_from_parts(
609613 model_name : GeminiModelName ,
610614 usage : usage .Usage ,
611615 vendor_id : str | None ,
612- vendor_details : dict [str , Any ] | None ,
616+ vendor_details : dict [str , Any ] | None = None ,
613617) -> ModelResponse :
614618 items : list [ModelResponsePart ] = []
615619 for part in parts :
0 commit comments