Module: RubyLLM::ModelCapabilities::Anthropic

Extended by:
Anthropic
Included in:
Anthropic
Defined in:
lib/ruby_llm/model_capabilities/anthropic.rb

Overview

Determines capabilities and pricing for Anthropic models

Instance Method Summary collapse

Instance Method Details

#determine_context_window(model_id) ⇒ Object



9
10
11
12
13
14
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 9

def determine_context_window(model_id)
  case model_id
  when /claude-3/ then 200_000
  else 100_000
  end
end

#determine_max_tokens(model_id) ⇒ Object



16
17
18
19
20
21
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 16

def determine_max_tokens(model_id)
  case model_id
  when /claude-3-5/ then 8_192
  else 4_096
  end
end

#get_input_price(model_id) ⇒ Object



23
24
25
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 23

def get_input_price(model_id)
  PRICES.dig(model_family(model_id), :input) || default_input_price
end

#get_output_price(model_id) ⇒ Object



27
28
29
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 27

def get_output_price(model_id)
  PRICES.dig(model_family(model_id), :output) || default_output_price
end

#supports_functions?(model_id) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 38

def supports_functions?(model_id)
  model_id.include?('claude-3')
end

#supports_json_mode?(model_id) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 42

def supports_json_mode?(model_id)
  model_id.include?('claude-3')
end

#supports_vision?(model_id) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
35
36
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 31

def supports_vision?(model_id)
  return false if model_id.match?(/claude-3-5-haiku/)
  return false if model_id.match?(/claude-[12]/)

  true
end