Module: BenchGecko

Defined in:
lib/benchgecko.rb

Constant Summary collapse

VERSION =
'0.2.1'
BASE_URL =
'https://benchgecko.ai/api/v1'

Class Method Summary collapse

Class Method Details

.agentsObject



32
33
34
# File 'lib/benchgecko.rb', line 32

def self.agents
  get('/agents')
end

.benchmarksObject



16
17
18
# File 'lib/benchgecko.rb', line 16

def self.benchmarks
  get('/benchmarks')
end

.compare(*slugs) ⇒ Object



20
21
22
# File 'lib/benchgecko.rb', line 20

def self.compare(*slugs)
  get('/compare', models: slugs.join(','))
end

.get(path, params = {}) ⇒ Object



38
39
40
41
42
# File 'lib/benchgecko.rb', line 38

def self.get(path, params = {})
  uri = URI("#{BASE_URL}#{path}")
  uri.query = URI.encode_www_form(params) unless params.empty?
  JSON.parse(Net::HTTP.get(uri))
end

.model(slug) ⇒ Object



12
13
14
# File 'lib/benchgecko.rb', line 12

def self.model(slug)
  get("/models/#{slug}")
end

.models(params = {}) ⇒ Object



8
9
10
# File 'lib/benchgecko.rb', line 8

def self.models(params = {})
  get('/models', params)
end

.pricing(slug = nil) ⇒ Object



24
25
26
# File 'lib/benchgecko.rb', line 24

def self.pricing(slug = nil)
  slug ? get("/pricing/#{slug}") : get('/pricing')
end

.providersObject



28
29
30
# File 'lib/benchgecko.rb', line 28

def self.providers
  get('/providers')
end