Class: Mxrb::Semantic::OnnxEmbedder
- Inherits:
-
Object
- Object
- Mxrb::Semantic::OnnxEmbedder
- Defined in:
- lib/mxrb/semantic/onnx_embedder.rb
Overview
Optional sentence-transformer backend powered by the informers gem.
Constant Summary collapse
- MODEL =
'sentence-transformers/all-MiniLM-L6-v2'- MODEL_REVISION =
'1110a243fdf4706b3f48f1d95db1a4f5529b4d41'
Class Method Summary collapse
Instance Method Summary collapse
- #backend ⇒ Object
- #dimension ⇒ Object
- #embed(text) ⇒ Object
-
#initialize(pipeline: nil) ⇒ OnnxEmbedder
constructor
A new instance of OnnxEmbedder.
Constructor Details
#initialize(pipeline: nil) ⇒ OnnxEmbedder
Returns a new instance of OnnxEmbedder.
17 18 19 20 21 22 23 |
# File 'lib/mxrb/semantic/onnx_embedder.rb', line 17 def initialize(pipeline: nil) require 'informers' unless pipeline @pipeline = pipeline || Informers.pipeline( 'embedding', MODEL, revision: MODEL_REVISION ) @dimension = nil end |
Class Method Details
.available? ⇒ Boolean
10 11 12 13 14 15 |
# File 'lib/mxrb/semantic/onnx_embedder.rb', line 10 def self.available? require 'informers' true rescue LoadError false end |
Instance Method Details
#backend ⇒ Object
25 |
# File 'lib/mxrb/semantic/onnx_embedder.rb', line 25 def backend = :onnx |
#dimension ⇒ Object
26 |
# File 'lib/mxrb/semantic/onnx_embedder.rb', line 26 def dimension = (@dimension ||= ('warmup').size) |
#embed(text) ⇒ Object
28 29 30 31 |
# File 'lib/mxrb/semantic/onnx_embedder.rb', line 28 def (text) vector = @pipeline.call(text) vector.first.is_a?(Array) ? vector.first : vector end |