Class: PromptBuilder::Serializers::Gemini::Response

Inherits:
Base
  • Object
show all
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 of finishReason

  • createTime — RFC 3339 response creation timestamp

  • index — candidate index when candidateCount > 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 / fileData parts (image/audio output blobs)

  • executableCode / codeExecutionResult parts

  • server-side toolCall / toolResponse parts

  • Parts with no recognized content key

When a response contains multiple candidates, only the first is parsed.

Method Summary

Methods inherited from Base

parse_response, request_payload