Skip to content

Commit 28dec6a

Browse files
fix: added default for vendor details
1 parent e07b58f commit 28dec6a

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

pydantic_ai_slim/pydantic_ai/models/gemini.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)