summaryrefslogtreecommitdiffhomepage
path: root/lib/dispatch/adapter/interface/model_info.rb
blob: 29228a85e9b87218622defe3eed8bda85732251a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

module Dispatch
  module Adapter
    ModelPricing = Struct.new(
      :input_per_mtok, :output_per_mtok,
      :cache_read_per_mtok, :cache_write_per_mtok,
      keyword_init: true
    ) do
      def initialize(input_per_mtok:, output_per_mtok:,
                     cache_read_per_mtok: 0.0, cache_write_per_mtok: 0.0)
        super
      end
    end

    ModelInfo = Struct.new(
      :id, :name, :max_context_tokens,
      :supports_vision, :supports_tool_use, :supports_streaming,
      :premium_request_multiplier,
      :pricing,
      keyword_init: true
    ) do
      def initialize(id:, name:, max_context_tokens:, supports_vision:, supports_tool_use:, supports_streaming:,
                     premium_request_multiplier: nil, pricing: nil)
        super
      end
    end
  end
end