Class: PromptBuilder::Serializers::Gemini::Response
- Defined in:
- lib/prompt_builder/serializers/gemini/response.rb
Overview
Response parser for the Google Gemini API format.
Response metadata not modeled by Open Responses
The Gemini response surface has fields with no canonical Open Responses equivalent. The parser preserves them on Response#extra rather than dropping them silently:
-
groundingMetadata— web search grounding chunks, supports, queries -
citationMetadata— per-candidate citation sources -
urlContextMetadata/urlRetrievalMetadata— URL retrieval traces -
safetyRatings— per-candidate safety probabilities and severities -
promptFeedback— prompt-level safety feedback -
avgLogprobs/logprobsResult— log-probability outputs -
finishMessage— human-readable explanation offinishReason -
createTime— RFC 3339 response creation timestamp -
index— candidate index whencandidateCount> 1
Additional usageMetadata breakdowns (per-modality token counts and tool-use prompt tokens) are surfaced through Usage#input_tokens_details and Usage#output_tokens_details.
Unsupported response shapes
The response parser silently skips Part shapes that have no canonical Open Responses equivalent:
-
inlineData/fileDataparts (image/audio output blobs) -
executableCode/codeExecutionResultparts -
server-side
toolCall/toolResponseparts -
Parts with no recognized content key
When a response contains multiple candidates, only the first is parsed.