Module: LiterLlm::AssistantPart

Extended by:
T::Helpers, T::Sig
Included in:
AssistantPartOutputAudio, AssistantPartOutputImage, AssistantPartRefusal, AssistantPartText
Defined in:
lib/liter_llm/native.rb

Overview

One part of a structured assistant response.

‘#[serde(tag = “type”, rename_all = “snake_case”)]` matches OpenAI’s parts-spec discriminator (‘“type”: “text”`, `“type”: “output_image”`, …).

Class Method Summary collapse

Class Method Details

.from_hash(hash) ⇒ Object



331
332
333
334
335
336
337
338
339
340
# File 'lib/liter_llm/native.rb', line 331

def self.from_hash(hash)
  discriminator = hash[:type] || hash["type"]
  case discriminator
  when "text" then AssistantPartText.from_hash(hash)
  when "refusal" then AssistantPartRefusal.from_hash(hash)
  when "output_image" then AssistantPartOutputImage.from_hash(hash)
  when "output_audio" then AssistantPartOutputAudio.from_hash(hash)
  else raise "Unknown discriminator: #{discriminator}"
  end
end