Module: RubyLLM::ModelCapabilities::Anthropic

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

Instance Method Summary collapse

Instance Method Details

#determine_context_window(model_id) ⇒ Object



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

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



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

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



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

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

#get_output_price(model_id) ⇒ Object



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

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

#supports_functions?(model_id) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#supports_json_mode?(model_id) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#supports_vision?(model_id) ⇒ Boolean

Returns:

  • (Boolean)


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

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