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

ContractError

Instance Method Summary collapse

Methods included from LLM::Contract

included

Instance Method Details

#input_tokensInteger

Returns the number of input tokens

Raises:

  • (NotImplementedError)


21
22
23
# File 'lib/llm/contract/completion.rb', line 21

def input_tokens
  raise NotImplementedError, "#{self.class} does not implement '#{__method__}'"
end

#messagesArray<LLM::Messsage> Also known as: choices

Returns one or more messages

Raises:

  • (NotImplementedError)


13
14
15
# File 'lib/llm/contract/completion.rb', line 13

def messages
  raise NotImplementedError, "#{self.class} does not implement '#{__method__}'"
end

#modelString

Returns the model name

Raises:

  • (NotImplementedError)


61
62
63
# File 'lib/llm/contract/completion.rb', line 61

def model
  raise NotImplementedError, "#{self.class} does not implement '#{__method__}'"
end

#output_tokensInteger

Returns the number of output tokens

Raises:

  • (NotImplementedError)


28
29
30
# File 'lib/llm/contract/completion.rb', line 28

def output_tokens
  raise NotImplementedError, "#{self.class} does not implement '#{__method__}'"
end

#reasoning_tokensInteger

Returns the number of reasoning tokens

Raises:

  • (NotImplementedError)


35
36
37
# File 'lib/llm/contract/completion.rb', line 35

def reasoning_tokens
  raise NotImplementedError, "#{self.class} does not implement '#{__method__}'"
end

#total_tokensInteger

Returns the total number of tokens

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/llm/contract/completion.rb', line 42

def total_tokens
  raise NotImplementedError, "#{self.class} does not implement '#{__method__}'"
end

#usageLLM::Usage



49
50
51
52
53
54
55
56
# File 'lib/llm/contract/completion.rb', line 49

def usage
  LLM::Usage.new(
    input_tokens:,
    output_tokens:,
    reasoning_tokens:,
    total_tokens:
  )
end