Class: LLM::Gemini::Models

Inherits:
Object
  • Object
show all
Defined in:
lib/llm/providers/gemini/models.rb

Overview

The LLM::Gemini::Models class provides a model object for interacting with Gemini’s models API. The models API allows a client to query Gemini for a list of models that are available for use with the Gemini API.

Examples:

#!/usr/bin/env ruby
require "llm"

llm = LLM.gemini(ENV["KEY"])
res = llm.models.all
res.each do |model|
  print "id: ", model.id, "\n"
end

Instance Method Summary collapse

Constructor Details

#initialize(provider) ⇒ LLM::Gemini::Models

Returns a new Models object

Parameters:



26
27
28
# File 'lib/llm/providers/gemini/models.rb', line 26

def initialize(provider)
  @provider = provider
end

Instance Method Details

#all(**params) ⇒ LLM::Response::ModelList

List all models

Examples:

llm = LLM.gemini(ENV["KEY"])
res = llm.models.all
res.each do |model|
  print "id: ", model.id, "\n"
end

Parameters:

  • params (Hash)

    Other parameters (see Gemini docs)

Returns:

See Also:



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/llm/providers/gemini/models.rb', line 42

def all(**params)
  query = URI.encode_www_form(params.merge!(key: key))
  req = Net::HTTP::Get.new("/v1beta/models?#{query}", headers)
  res = execute(request: req)
  LLM::Response::ModelList.new(res).tap { |modellist|
    models = modellist.body["models"].map do |model|
      model = model.transform_keys { snakecase(_1) }
      LLM::Model.from_hash(model).tap { _1.provider = @provider }
    end
    modellist.models = models
  }
end