Module: LLM

Defined in:
lib/llm.rb,
lib/llm/chat.rb,
lib/llm/error.rb,
lib/llm/buffer.rb,
lib/llm/message.rb,
lib/llm/version.rb,
lib/llm/response.rb,
lib/llm/response/file.rb,
lib/llm/response/audio.rb,
lib/llm/response/image.rb,
lib/llm/providers/gemini.rb,
lib/llm/providers/ollama.rb,
lib/llm/providers/openai.rb,
lib/llm/response/respond.rb,
lib/llm/response/filelist.rb,
lib/llm/providers/voyageai.rb,
lib/llm/response/embedding.rb,
lib/llm/response/modellist.rb,
lib/llm/providers/anthropic.rb,
lib/llm/response/completion.rb,
lib/llm/response/download_file.rb,
lib/llm/response/audio_translation.rb,
lib/llm/response/audio_transcription.rb

Defined Under Namespace

Modules: Utils Classes: Anthropic, Buffer, Chat, Error, File, Function, Gemini, Message, Mime, Model, Multipart, Ollama, OpenAI, Provider, Response, VoyageAI

Constant Summary collapse

VERSION =
"0.6.1"

Class Method Summary collapse

Class Method Details

.anthropicAnthropic

Returns a new instance of Anthropic.

Returns:

  • (Anthropic)

    a new instance of Anthropic



26
27
28
29
30
# File 'lib/llm.rb', line 26

def anthropic(**)
  require_relative "llm/providers/anthropic" unless defined?(LLM::Anthropic)
  require_relative "llm/providers/voyageai" unless defined?(LLM::VoyageAI)
  LLM::Anthropic.new(**)
end

.File(path) ⇒ LLM::File

Parameters:

  • path (String)

    The path to a file

Returns:



74
75
76
77
78
79
80
81
# File 'lib/llm/file.rb', line 74

def LLM.File(path)
  case path
  when LLM::File, LLM::Response::File
    path
  else
    LLM::File.new(path)
  end
end

.function(name, &b) ⇒ LLM::Function

Define a function LLM.function(:system) do |fn|

fn.description "Run system command"
fn.params do |schema|
  schema.object(command: schema.string.required)
end
fn.define do |params|
  system(params.command)
end

end

Parameters:

  • name (Symbol)

    The name of the function

  • b (Proc)

    The block to define the function

Returns:



79
80
81
# File 'lib/llm.rb', line 79

def function(name, &b)
  functions[name.to_s] = LLM::Function.new(name, &b)
end

.functionsHash<String,LLM::Function>

Returns all known functions

Returns:



86
87
88
# File 'lib/llm.rb', line 86

def functions
  @functions ||= {}
end

.geminiGemini

Returns a new instance of Gemini.

Returns:

  • (Gemini)

    a new instance of Gemini



43
44
45
46
# File 'lib/llm.rb', line 43

def gemini(**)
  require_relative "llm/providers/gemini" unless defined?(LLM::Gemini)
  LLM::Gemini.new(**)
end

.ollama(key: nil) ⇒ Ollama

Returns a new instance of Ollama.

Returns:

  • (Ollama)

    a new instance of Ollama



51
52
53
54
# File 'lib/llm.rb', line 51

def ollama(key: nil, **)
  require_relative "llm/providers/ollama" unless defined?(LLM::Ollama)
  LLM::Ollama.new(key:, **)
end

.openaiOpenAI

Returns a new instance of OpenAI.

Returns:

  • (OpenAI)

    a new instance of OpenAI



59
60
61
62
# File 'lib/llm.rb', line 59

def openai(**)
  require_relative "llm/providers/openai" unless defined?(LLM::OpenAI)
  LLM::OpenAI.new(**)
end

.voyageaiVoyageAI

Returns a new instance of VoyageAI.

Returns:

  • (VoyageAI)

    a new instance of VoyageAI



35
36
37
38
# File 'lib/llm.rb', line 35

def voyageai(**)
  require_relative "llm/providers/voyageai" unless defined?(LLM::VoyageAI)
  LLM::VoyageAI.new(**)
end