Module: LLM::OpenAI::ResponseAdapter

Defined in:
lib/llm/providers/openai/response_adapter.rb,
lib/llm/providers/openai/response_adapter/file.rb,
lib/llm/providers/openai/response_adapter/audio.rb,
lib/llm/providers/openai/response_adapter/image.rb,
lib/llm/providers/openai/response_adapter/models.rb,
lib/llm/providers/openai/response_adapter/responds.rb,
lib/llm/providers/openai/response_adapter/embedding.rb,
lib/llm/providers/openai/response_adapter/completion.rb,
lib/llm/providers/openai/response_adapter/enumerable.rb,
lib/llm/providers/openai/response_adapter/web_search.rb,
lib/llm/providers/openai/response_adapter/moderations.rb

Defined Under Namespace

Modules: Audio, Completion, Embedding, Enumerable, File, Image, Models, Moderation, Moderations, Responds, WebSearch

Class Method Summary collapse

Class Method Details

.adapt(res, type:) ⇒ LLM::Response

Parameters:

Returns:



24
25
26
27
28
# File 'lib/llm/providers/openai/response_adapter.rb', line 24

def adapt(res, type:)
  response = (LLM::Response === res) ? res : LLM::Response.new(res)
  adapter = select(type)
  response.extend(adapter)
end

.select(type) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/llm/providers/openai/response_adapter.rb', line 32

def select(type)
  case type
  when :audio then LLM::OpenAI::ResponseAdapter::Audio
  when :completion then LLM::OpenAI::ResponseAdapter::Completion
  when :embedding then LLM::OpenAI::ResponseAdapter::Embedding
  when :enumerable then LLM::OpenAI::ResponseAdapter::Enumerable
  when :file then LLM::OpenAI::ResponseAdapter::File
  when :image then LLM::OpenAI::ResponseAdapter::Image
  when :moderations then LLM::OpenAI::ResponseAdapter::Moderations
  when :models then LLM::OpenAI::ResponseAdapter::Models
  when :responds then LLM::OpenAI::ResponseAdapter::Responds
  when :web_search then LLM::OpenAI::ResponseAdapter::WebSearch
  else
    raise ArgumentError, "Unknown response adapter type: #{type.inspect}"
  end
end