Module: Gemini

Defined in:
lib/gemini.rb,
lib/gemini/tts.rb,
lib/gemini/http.rb,
lib/gemini/live.rb,
lib/gemini/runs.rb,
lib/gemini/audio.rb,
lib/gemini/files.rb,
lib/gemini/video.rb,
lib/gemini/client.rb,
lib/gemini/images.rb,
lib/gemini/models.rb,
lib/gemini/tokens.rb,
lib/gemini/threads.rb,
lib/gemini/version.rb,
lib/gemini/messages.rb,
lib/gemini/response.rb,
lib/gemini/documents.rb,
lib/gemini/embeddings.rb,
lib/gemini/http_headers.rb,
lib/gemini/live/session.rb,
lib/gemini/cached_content.rb,
lib/gemini/live/connection.rb,
lib/gemini/tool_definition.rb,
lib/gemini/live/configuration.rb,
lib/gemini/live/message_builder.rb,
lib/gemini/function_calling_helper.rb

Defined Under Namespace

Modules: FunctionCallingHelper, HTTP, HTTPHeaders Classes: APIError, Audio, AuthenticationError, CachedContent, Client, Configuration, ConfigurationError, Documents, Embeddings, Error, Files, Images, InvalidRequestError, Live, Messages, MiddlewareErrors, Models, RateLimitError, Response, Runs, TTS, Threads, Tokens, ToolDefinition, Video

Constant Summary collapse

VERSION =
"1.2.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



69
70
71
# File 'lib/gemini.rb', line 69

def configuration
  @configuration ||= Gemini::Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



73
74
75
# File 'lib/gemini.rb', line 73

def configure
  yield(configuration)
end

.log_message(prefix, message, level = :warn) ⇒ Object



77
78
79
80
81
82
83
84
85
86
# File 'lib/gemini.rb', line 77

def log_message(prefix, message, level = :warn)
  return unless configuration.log_errors

  color = level == :error ? "\033[31m" : "\033[33m"
  logger = Logger.new($stdout)
  logger.formatter = proc do |_severity, _datetime, _progname, msg|
    "#{color}#{prefix} (spotted in ruby-gemini-api #{VERSION}): #{msg}\n\033[0m"
  end
  logger.send(level, message)
end