Class: EmbeddingRegistry
- Inherits:
-
Object
- Object
- EmbeddingRegistry
- Defined in:
- lib/kotoshu/embeddings/registry.rb
Overview
Registry - Plugin system for embeddings components
Provides a centralized registry for embedding models, similarity engines, and vocabularies. Allows registering and retrieving custom implementations.
Class Attribute Summary collapse
-
.engines ⇒ Hash{Symbol => Class}
readonly
Registered engines.
-
.models ⇒ Hash{Symbol => Class}
readonly
Registered models.
-
.vocabularies ⇒ Hash{Symbol => Class}
readonly
Registered vocabularies.
Class Method Summary collapse
-
.create_engine(name, **kwargs) ⇒ SimilarityEngine
Create an engine instance.
-
.create_model(name, **kwargs) ⇒ EmbeddingModel
Create a model instance.
-
.create_vocabulary(name, **kwargs) ⇒ Vocabulary
Create a vocabulary instance.
-
.engine(name) ⇒ Class?
Get registered engine class.
-
.engine_names ⇒ Array<Symbol>
List all registered engines.
-
.init ⇒ Object
Initialize registry.
-
.model(name) ⇒ Class?
Get registered model class.
-
.model_names ⇒ Array<Symbol>
List all registered models.
-
.register_engine(name, klass) ⇒ Object
Register a similarity engine.
-
.register_model(name, klass) ⇒ Object
Register an embedding model.
-
.register_vocabulary(name, klass) ⇒ Object
Register a vocabulary.
-
.reset! ⇒ Object
Clear all registrations.
-
.vocabulary(name) ⇒ Class?
Get registered vocabulary class.
-
.vocabulary_names ⇒ Array<Symbol>
List all registered vocabularies.
Class Attribute Details
.engines ⇒ Hash{Symbol => Class} (readonly)
Returns Registered engines.
23 24 25 |
# File 'lib/kotoshu/embeddings/registry.rb', line 23 def engines @engines end |
.models ⇒ Hash{Symbol => Class} (readonly)
Returns Registered models.
20 21 22 |
# File 'lib/kotoshu/embeddings/registry.rb', line 20 def models @models end |
.vocabularies ⇒ Hash{Symbol => Class} (readonly)
Returns Registered vocabularies.
26 27 28 |
# File 'lib/kotoshu/embeddings/registry.rb', line 26 def vocabularies @vocabularies end |
Class Method Details
.create_engine(name, **kwargs) ⇒ SimilarityEngine
Create an engine instance
118 119 120 121 122 123 |
# File 'lib/kotoshu/embeddings/registry.rb', line 118 def create_engine(name, **kwargs) klass = engine(name) raise ArgumentError, "Unknown engine: #{name}" unless klass klass.new(**kwargs) end |
.create_model(name, **kwargs) ⇒ EmbeddingModel
Create a model instance
105 106 107 108 109 110 |
# File 'lib/kotoshu/embeddings/registry.rb', line 105 def create_model(name, **kwargs) klass = model(name) raise ArgumentError, "Unknown model: #{name}" unless klass klass.new(**kwargs) end |
.create_vocabulary(name, **kwargs) ⇒ Vocabulary
Create a vocabulary instance
131 132 133 134 135 136 |
# File 'lib/kotoshu/embeddings/registry.rb', line 131 def create_vocabulary(name, **kwargs) klass = vocabulary(name) raise ArgumentError, "Unknown vocabulary: #{name}" unless klass klass.new(**kwargs) end |
.engine(name) ⇒ Class?
Get registered engine class
84 85 86 87 |
# File 'lib/kotoshu/embeddings/registry.rb', line 84 def engine(name) init @engines[name] end |
.engine_names ⇒ Array<Symbol>
List all registered engines
151 152 153 154 |
# File 'lib/kotoshu/embeddings/registry.rb', line 151 def engine_names init @engines.keys end |
.init ⇒ Object
Initialize registry
30 31 32 33 34 |
# File 'lib/kotoshu/embeddings/registry.rb', line 30 def init @models ||= {} @engines ||= {} @vocabularies ||= {} end |
.model(name) ⇒ Class?
Get registered model class
74 75 76 77 |
# File 'lib/kotoshu/embeddings/registry.rb', line 74 def model(name) init @models[name] end |
.model_names ⇒ Array<Symbol>
List all registered models
142 143 144 145 |
# File 'lib/kotoshu/embeddings/registry.rb', line 142 def model_names init @models.keys end |
.register_engine(name, klass) ⇒ Object
Register a similarity engine
52 53 54 55 56 |
# File 'lib/kotoshu/embeddings/registry.rb', line 52 def register_engine(name, klass) init @engines[name] = klass klass end |
.register_model(name, klass) ⇒ Object
Register an embedding model
41 42 43 44 45 |
# File 'lib/kotoshu/embeddings/registry.rb', line 41 def register_model(name, klass) init @models[name] = klass klass end |
.register_vocabulary(name, klass) ⇒ Object
Register a vocabulary
63 64 65 66 67 |
# File 'lib/kotoshu/embeddings/registry.rb', line 63 def register_vocabulary(name, klass) init @vocabularies[name] = klass klass end |
.reset! ⇒ Object
Clear all registrations
167 168 169 170 171 |
# File 'lib/kotoshu/embeddings/registry.rb', line 167 def reset! @models = {} @engines = {} @vocabularies = {} end |
.vocabulary(name) ⇒ Class?
Get registered vocabulary class
94 95 96 97 |
# File 'lib/kotoshu/embeddings/registry.rb', line 94 def vocabulary(name) init @vocabularies[name] end |
.vocabulary_names ⇒ Array<Symbol>
List all registered vocabularies
160 161 162 163 |
# File 'lib/kotoshu/embeddings/registry.rb', line 160 def vocabulary_names init @vocabularies.keys end |