Module: LLM::OpenAI::ResponseAdapter::Completion
- Includes:
- Contract::Completion
- Defined in:
- lib/llm/providers/openai/response_adapter/completion.rb
Constant Summary
Constants included from Contract
Instance Method Summary collapse
-
#content ⇒ String
Returns the LLM response.
-
#content! ⇒ Hash
Returns the LLM response after parsing it as JSON.
-
#input_tokens ⇒ Integer
Returns the number of input tokens.
-
#messages ⇒ Array<LLM::Messsage>
(also: #choices)
Returns one or more messages.
-
#model ⇒ String
Returns the model name.
-
#output_tokens ⇒ Integer
Returns the number of output tokens.
-
#reasoning_content ⇒ String?
Returns the reasoning content when the provider exposes it.
-
#reasoning_tokens ⇒ Integer
Returns the number of reasoning tokens.
-
#total_tokens ⇒ Integer
Returns the total number of tokens.
-
#usage ⇒ LLM::Usage
Returns usage information.
Methods included from Contract
Instance Method Details
#content ⇒ String
Returns the LLM response
63 64 65 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 63 def content super end |
#content! ⇒ Hash
Returns the LLM response after parsing it as JSON
75 76 77 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 75 def content! super end |
#input_tokens ⇒ Integer
Returns the number of input tokens
24 25 26 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 24 def input_tokens body.usage&.prompt_tokens || 0 end |
#messages ⇒ Array<LLM::Messsage> Also known as: choices
Returns one or more messages
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 7 def body.choices.map.with_index do |choice, index| = choice. extra = { index:, response: self, logprobs: choice.logprobs, reasoning_content: .reasoning_content, tool_calls: adapt_tool_calls(.tool_calls), original_tool_calls: .tool_calls } LLM::Message.new(.role, .content, extra) end end |
#model ⇒ String
Returns the model name
57 58 59 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 57 def model body.model end |
#output_tokens ⇒ Integer
Returns the number of output tokens
30 31 32 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 30 def output_tokens body.usage&.completion_tokens || 0 end |
#reasoning_content ⇒ String?
Returns the reasoning content when the provider exposes it
69 70 71 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 69 def reasoning_content super end |
#reasoning_tokens ⇒ Integer
Returns the number of reasoning tokens
36 37 38 39 40 41 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 36 def reasoning_tokens body .usage &.completion_tokens_details &.reasoning_tokens || 0 end |
#total_tokens ⇒ Integer
Returns the total number of tokens
45 46 47 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 45 def total_tokens body.usage&.total_tokens || 0 end |
#usage ⇒ LLM::Usage
Returns usage information
51 52 53 |
# File 'lib/llm/providers/openai/response_adapter/completion.rb', line 51 def usage super end |