lex-apollo 0.3.7 → 0.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f3802ccfc38ce2517807c30308ecf2e0c7257ff164fce30e83529e11ce9762e
4
- data.tar.gz: f07b13160329615265956271795b41cbaaf898d1e0d0084f46bb7598e6f50733
3
+ metadata.gz: eb4d83d524d50a58e6e596184e4b431400a82532d828f4807e03242612083da4
4
+ data.tar.gz: 708ba53e6d14d4b9212bacf8e76b3568d30bcad79780d846fdfb3c12652bfea4
5
5
  SHA512:
6
- metadata.gz: 7179a58756d5a9f6cfbdde00d06f809a99b5795ff2a7bf8aea599785d0fdc18d363228b844fc769f0cd459eabfdec416540f474e814a84713937eff06692d82b
7
- data.tar.gz: 1eb71fa6a968770f8327e026f42a5cf3bce50ceb18c7ab65545e9bc3ecd325f550c9eb3af239e64f456a8e5263ba4cc3faf66729f2e96aa821e9caf3e317dc51
6
+ metadata.gz: 7c3ca9334a076adffabfcba4a8502064dc6b71f243919ff475cc09d67e74e12b011f8881f24bea4ac23f3860bf65a18d7178b2505e3e7142d3cf0c2f9b508d38
7
+ data.tar.gz: ab9c66113f05af9528c8a758a52768ae26c33bbe6c7b4ff525985ae701f6e43d7e552936c132e6dcdab5d29c317e781e01495bcd6bc242fc350eeae16e50cd08
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.8] - 2026-03-23
4
+
5
+ ### Changed
6
+ - `Helpers::Embedding.generate` now accepts any non-empty embedding vector and auto-detects dimension
7
+ - Added `dimension` and `zero_vector` module methods for dynamic dimension support
8
+ - Removed hardcoded 1536-dimension requirement (supports any embedding model dimension)
9
+
3
10
  ## [0.3.7] - 2026-03-22
4
11
 
5
12
  ### Changed
@@ -5,15 +5,28 @@ module Legion
5
5
  module Apollo
6
6
  module Helpers
7
7
  module Embedding
8
- DIMENSION = 1536
8
+ DEFAULT_DIMENSION = 1536
9
9
 
10
10
  module_function
11
11
 
12
12
  def generate(text:, **)
13
- return Array.new(DIMENSION, 0.0) unless defined?(Legion::LLM) && Legion::LLM.started?
13
+ return zero_vector unless defined?(Legion::LLM) && Legion::LLM.started?
14
14
 
15
15
  result = Legion::LLM.embed(text: text)
16
- result.is_a?(Array) && result.size == DIMENSION ? result : Array.new(DIMENSION, 0.0)
16
+ if result.is_a?(Array) && result.any?
17
+ @dimension = result.size
18
+ result
19
+ else
20
+ zero_vector
21
+ end
22
+ end
23
+
24
+ def dimension
25
+ @dimension || DEFAULT_DIMENSION
26
+ end
27
+
28
+ def zero_vector
29
+ Array.new(dimension, 0.0)
17
30
  end
18
31
  end
19
32
  end
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Apollo
6
- VERSION = '0.3.7'
6
+ VERSION = '0.3.8'
7
7
  end
8
8
  end
9
9
  end
@@ -48,7 +48,7 @@ RSpec.describe Legion::Extensions::Apollo::Helpers::Embedding do
48
48
  end
49
49
  end
50
50
 
51
- context 'when Legion::LLM returns invalid embedding' do
51
+ context 'when Legion::LLM returns a short embedding' do
52
52
  before do
53
53
  llm = Module.new do
54
54
  define_method(:started?) { true }
@@ -59,9 +59,28 @@ RSpec.describe Legion::Extensions::Apollo::Helpers::Embedding do
59
59
  allow(Legion::LLM).to receive(:embed).and_return([0.1, 0.2])
60
60
  end
61
61
 
62
+ it 'accepts the embedding and updates dimension' do
63
+ result = described_class.generate(text: 'hello world')
64
+ expect(result).to eq([0.1, 0.2])
65
+ expect(described_class.dimension).to eq(2)
66
+ end
67
+ end
68
+
69
+ context 'when Legion::LLM returns nil' do
70
+ before do
71
+ llm = Module.new do
72
+ define_method(:started?) { true }
73
+ define_method(:embed) { |_text:| nil }
74
+ extend self
75
+ end
76
+ stub_const('Legion::LLM', llm)
77
+ allow(Legion::LLM).to receive(:embed).and_return(nil)
78
+ end
79
+
62
80
  it 'returns a zero vector as fallback' do
63
81
  result = described_class.generate(text: 'hello world')
64
- expect(result).to eq(Array.new(1536, 0.0))
82
+ expect(result).to be_an(Array)
83
+ expect(result.all?(&:zero?)).to be true
65
84
  end
66
85
  end
67
86
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-apollo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity