Module: Spectre

Defined in:
lib/spectre/version.rb,
lib/spectre.rb,
lib/spectre/openai.rb,
lib/spectre/prompt.rb,
lib/spectre/logging.rb,
lib/spectre/embeddable.rb,
lib/spectre/searchable.rb,
lib/spectre/openai/embeddings.rb,
lib/spectre/openai/completions.rb,
lib/generators/spectre/install_generator.rb

Overview

:nodoc:all

Defined Under Namespace

Modules: ClassMethods, Embeddable, Generators, Logging, Openai, Searchable Classes: APIKeyNotConfiguredError, Prompt

Constant Summary collapse

VALID_LLM_PROVIDERS =
{
  openai: Spectre::Openai,
  # cohere: Spectre::Cohere,
  # ollama: Spectre::Ollama
}.freeze
VERSION =
"1.0.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.api_keyObject

Returns the value of attribute api_key.



39
40
41
# File 'lib/spectre.rb', line 39

def api_key
  @api_key
end

.llm_providerObject

Returns the value of attribute llm_provider.



39
40
41
# File 'lib/spectre.rb', line 39

def llm_provider
  @llm_provider
end

Class Method Details

.included(base) ⇒ Object



19
20
21
# File 'lib/spectre.rb', line 19

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

.provider_moduleObject



46
47
48
# File 'lib/spectre.rb', line 46

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

.setup {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Spectre)

    the object that the method was called on



41
42
43
44
# File 'lib/spectre.rb', line 41

def setup
  yield self
  validate_llm_provider!
end