def build_chunk(data)
parts = data.dig('candidates', 0, 'content', 'parts') || []
Chunk.new(
role: :assistant,
model_id: extract_model_id(data),
content: extract_text_content(parts),
thinking: Thinking.build(
text: extract_thought_content(parts),
signature: extract_thought_signature(parts)
),
input_tokens: extract_input_tokens(data),
output_tokens: extract_output_tokens(data),
cached_tokens: data.dig('usageMetadata', 'cachedContentTokenCount'),
thinking_tokens: data.dig('usageMetadata', 'thoughtsTokenCount'),
tool_calls: extract_tool_calls(data)
)
end