module RubyLLM::Providers::Bedrock::Streaming::ContentExtraction
def extract_block_start_content(data)
def extract_block_start_content(data) data.dig('content_block', 'text').to_s end
def extract_content_by_type(data)
def extract_content_by_type(data) case data['type'] when 'content_block_start' then extract_block_start_content(data) when 'content_block_delta' then extract_delta_content(data) else '' end end
def extract_delta_content(data)
def extract_delta_content(data) data.dig('delta', 'text').to_s end
def extract_input_tokens(data)
def extract_input_tokens(data) data.dig('message', 'usage', 'input_tokens') end
def extract_model_id(data)
def extract_model_id(data) data.dig('message', 'model') || @model_id end
def extract_output_tokens(data)
def extract_output_tokens(data) data.dig('message', 'usage', 'output_tokens') || data.dig('usage', 'output_tokens') end
def extract_streaming_content(data)
def extract_streaming_content(data) return '' unless data.is_a?(Hash) extract_content_by_type(data) end
def extract_tool_calls(data)
def extract_tool_calls(data) data.dig('message', 'tool_calls') || data['tool_calls'] end
def json_delta?(data)
def json_delta?(data) data['type'] == 'content_block_delta' && data.dig('delta', 'type') == 'input_json_delta' end