Module: Spectre

Defined in:
lib/spectre/version.rb,
lib/spectre.rb,
lib/spectre/claude.rb,
lib/spectre/errors.rb,
lib/spectre/gemini.rb,
lib/spectre/ollama.rb,
lib/spectre/openai.rb,
lib/spectre/prompt.rb,
lib/spectre/logging.rb,
lib/spectre/embeddable.rb,
lib/spectre/openrouter.rb,
lib/spectre/searchable.rb,
lib/spectre/gemini/embeddings.rb,
lib/spectre/ollama/embeddings.rb,
lib/spectre/openai/embeddings.rb,
lib/spectre/claude/completions.rb,
lib/spectre/gemini/completions.rb,
lib/spectre/ollama/completions.rb,
lib/spectre/openai/completions.rb,
lib/spectre/openrouter/embeddings.rb,
lib/spectre/openrouter/completions.rb,
lib/generators/spectre/install_generator.rb

Overview

:nodoc:all

Defined Under Namespace

Modules: ClassMethods, Claude, Embeddable, Gemini, Generators, Logging, Ollama, Openai, Openrouter, Searchable Classes: APIKeyNotConfiguredError, ClaudeConfiguration, Configuration, GeminiConfiguration, HostNotConfiguredError, OllamaConfiguration, OpenaiConfiguration, OpenrouterConfiguration, Prompt

Constant Summary collapse

VALID_LLM_PROVIDERS =
{
  openai: Spectre::Openai,
  ollama: Spectre::Ollama,
  claude: Spectre::Claude,
  gemini: Spectre::Gemini,
  openrouter: Spectre::Openrouter
}.freeze
VERSION =
"2.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



102
103
104
# File 'lib/spectre.rb', line 102

def config
  @config
end

Class Method Details

.claude_configurationObject



126
127
128
# File 'lib/spectre.rb', line 126

def claude_configuration
  config.providers[:claude]
end

.gemini_configurationObject



130
131
132
# File 'lib/spectre.rb', line 130

def gemini_configuration
  config.providers[:gemini]
end

.included(base) ⇒ Object



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

def self.included(base)
  base.extend ClassMethods
end

.ollama_configurationObject



122
123
124
# File 'lib/spectre.rb', line 122

def ollama_configuration
  config.providers[:ollama]
end

.openai_configurationObject



118
119
120
# File 'lib/spectre.rb', line 118

def openai_configuration
  config.providers[:openai]
end

.openrouter_configurationObject



134
135
136
# File 'lib/spectre.rb', line 134

def openrouter_configuration
  config.providers[:openrouter]
end

.provider_configurationObject



114
115
116
# File 'lib/spectre.rb', line 114

def provider_configuration
  config.provider_configuration
end

.provider_moduleObject



110
111
112
# File 'lib/spectre.rb', line 110

def provider_module
  VALID_LLM_PROVIDERS[config.default_llm_provider] || raise("LLM provider #{config.default_llm_provider} not supported")
end

.setup {|config| ... } ⇒ Object

Yields:



104
105
106
107
108
# File 'lib/spectre.rb', line 104

def setup
  self.config ||= Configuration.new
  yield config
  validate_llm_provider!
end