Module: LLM::Contract::Completion Abstract
- Extended by:
- LLM::Contract
- Defined in:
- lib/llm/contract/completion.rb
Overview
This module is abstract.
Defines the interface all completion responses must implement
Constant Summary
Constants included from LLM::Contract
Instance Method Summary collapse
-
#model ⇒
String
Returns the model name.
-
#input_tokens ⇒
Integer
Returns the number of input tokens.
-
#output_tokens ⇒
Integer
Returns the number of output tokens.
-
#reasoning_tokens
⇒ Integer
Returns the number of reasoning tokens.
-
#total_tokens ⇒
Integer
Returns the total number of tokens.
-
#content ⇒
String
Returns the LLM response.
-
#content! ⇒
Hash
Returns the LLM response after parsing it as JSON.
-
#usage ⇒
LLM::Usage
Returns usage information.
-
#messages ⇒
Array<LLM::Messsage> (also: #choices)
Returns one or more messages.
Methods included from LLM::Contract
Instance Method Details
#model ⇒ String
Returns the model name
75 76 77 |
# File 'lib/llm/contract/completion.rb', line 75 def model raise NotImplementedError, "#{self.class} does not implement '#{__method__}'" end |
#input_tokens ⇒ Integer
Returns the number of input tokens
21 22 23 |
# File 'lib/llm/contract/completion.rb', line 21 def input_tokens raise NotImplementedError, "#{self.class} does not implement '#{__method__}'" end |
#output_tokens ⇒ Integer
Returns the number of output tokens
28 29 30 |
# File 'lib/llm/contract/completion.rb', line 28 def output_tokens raise NotImplementedError, "#{self.class} does not implement '#{__method__}'" end |
#reasoning_tokens ⇒ Integer
Returns the number of reasoning tokens
35 36 37 |
# File 'lib/llm/contract/completion.rb', line 35 def reasoning_tokens raise NotImplementedError, "#{self.class} does not implement '#{__method__}'" end |
#total_tokens ⇒ Integer
Returns the total number of tokens
42 43 44 |
# File 'lib/llm/contract/completion.rb', line 42 def total_tokens raise NotImplementedError, "#{self.class} does not implement '#{__method__}'" end |
#content ⇒ String
Returns the LLM response
49 50 51 |
# File 'lib/llm/contract/completion.rb', line 49 def content .find(&:assistant?).content end |
#content! ⇒ Hash
Returns the LLM response after parsing it as JSON
56 57 58 |
# File 'lib/llm/contract/completion.rb', line 56 def content! LLM.json.load(content) end |
#usage ⇒ LLM::Usage
Returns usage information
63 64 65 66 67 68 69 70 |
# File 'lib/llm/contract/completion.rb', line 63 def usage LLM::Usage.new( input_tokens:, output_tokens:, reasoning_tokens:, total_tokens: ) end |
#messages ⇒ Array<LLM::Messsage> Also known as: choices
Returns one or more messages
13 14 15 |
# File 'lib/llm/contract/completion.rb', line 13 def raise NotImplementedError, "#{self.class} does not implement '#{__method__}'" end |