Class: SavvyOpenrouter::Resources::Models

Inherits:
Base
  • Object
show all
Defined in:
lib/savvy_openrouter/resources/models.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from SavvyOpenrouter::Resources::Base

Instance Method Details

#countObject



23
24
25
# File 'lib/savvy_openrouter/resources/models.rb', line 23

def count
  conn.get("/models/count")
end

#endpoints(author:, slug:) ⇒ Object



31
32
33
# File 'lib/savvy_openrouter/resources/models.rb', line 31

def endpoints(author:, slug:)
  conn.get("/models/#{author}/#{slug}/endpoints")
end

#first_ranked_free_text_model(category:, output_modalities: "text") ⇒ Object

Uses GET /models with filters, then returns the first model whose prompt + completion pricing are zero. OpenRouter returns models in curated rank order within a category; first matching free model aligns with site “top free” picks when combined with output_modalities=text.



17
18
19
20
21
# File 'lib/savvy_openrouter/resources/models.rb', line 17

def first_ranked_free_text_model(category:, output_modalities: "text")
  res = list(category: category, output_modalities: output_modalities)
  data = res[:data] || []
  data.find { |m| free_pricing?(m) }
end

#list(**params) ⇒ Object

Query params match OpenRouter GET /models (e.g. category, output_modalities, supported_parameters).



9
10
11
12
# File 'lib/savvy_openrouter/resources/models.rb', line 9

def list(**params)
  query = stringify_query(params)
  conn.get("/models", params: query.empty? ? nil : query)
end

#userObject



27
28
29
# File 'lib/savvy_openrouter/resources/models.rb', line 27

def user
  conn.get("/models/user")
end