Class: RubyLLM::ModelCapabilities::Anthropic

Inherits:
Base
  • Object
show all
Defined in:
lib/ruby_llm/model_capabilities/anthropic.rb

Instance Method Summary collapse

Instance Method Details

#determine_context_window(model_id) ⇒ Object



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

def determine_context_window(model_id)
  case model_id
  when /claude-3-5-sonnet/, /claude-3-5-haiku/,
       /claude-3-opus/, /claude-3-sonnet/, /claude-3-haiku/
    200_000
  else
    100_000
  end
end

#determine_max_tokens(model_id) ⇒ Object



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

def determine_max_tokens(model_id)
  case model_id
  when /claude-3-5-sonnet/, /claude-3-5-haiku/
    8_192
  when /claude-3-opus/, /claude-3-sonnet/, /claude-3-haiku/
    4_096
  else
    4_096
  end
end

#get_input_price(model_id) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 27

def get_input_price(model_id)
  case model_id
  when /claude-3-5-sonnet/
    3.0     # $3.00 per million tokens
  when /claude-3-5-haiku/
    0.80    # $0.80 per million tokens
  when /claude-3-opus/
    15.0    # $15.00 per million tokens
  when /claude-3-sonnet/
    3.0     # $3.00 per million tokens
  when /claude-3-haiku/
    0.25    # $0.25 per million tokens
  else
    3.0
  end
end

#get_output_price(model_id) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 44

def get_output_price(model_id)
  case model_id
  when /claude-3-5-sonnet/
    15.0    # $15.00 per million tokens
  when /claude-3-5-haiku/
    4.0     # $4.00 per million tokens
  when /claude-3-opus/
    75.0    # $75.00 per million tokens
  when /claude-3-sonnet/
    15.0    # $15.00 per million tokens
  when /claude-3-haiku/
    1.25    # $1.25 per million tokens
  else
    15.0
  end
end

#supports_functions?(model_id) ⇒ Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 72

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

#supports_json_mode?(model_id) ⇒ Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 76

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

#supports_vision?(model_id) ⇒ Boolean

Returns:

  • (Boolean)


61
62
63
64
65
66
67
68
69
70
# File 'lib/ruby_llm/model_capabilities/anthropic.rb', line 61

def supports_vision?(model_id)
  case model_id
  when /claude-3-5-haiku/
    false
  when /claude-2/, /claude-1/
    false
  else
    true
  end
end