legion-llm 0.8.30 → 0.8.32
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 +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +10 -0
- data/lib/legion/llm/call/embeddings.rb +14 -1
- data/lib/legion/llm/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f73cca457b602ab79cd3964a15333afe338a7ed5ef18a556f0e502da7817b4ef
|
|
4
|
+
data.tar.gz: 706498c91924640dc31bf43e814a04f2880acb2930cf30abdf144c28cb02fd01
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b499fde4636085676157fdad1576ba60ed0149f2e9d126289b38399b4232ce64ed47e66250c7bf0dd01c87e15afff675c0d3f0ddc5d6d152ec17640af615fd2
|
|
7
|
+
data.tar.gz: 5b26a4426f630a3e36dedd6bdeacae7b6a2283696f4a9771d5458bdd2c8735380984ee983a10c9483ea2cb373eaa5a4e54c0cc92cac5d1a0b04f5835a7920850
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Legion LLM Changelog
|
|
2
2
|
|
|
3
|
+
## [0.8.32] - 2026-04-27
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- Embedding calls now return a clear unavailable-provider error when no embedding provider is configured or detected, preventing RubyLLM from implicitly selecting a chat/default provider.
|
|
7
|
+
|
|
8
|
+
## [0.8.31] - 2026-04-27
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- Embedding calls no longer inherit the chat `llm.default_provider`, preventing vLLM or other chat defaults from receiving embedding traffic unless explicitly configured for embeddings. Fixes #104
|
|
12
|
+
|
|
3
13
|
## [0.8.30] - 2026-04-27
|
|
4
14
|
|
|
5
15
|
### Fixed
|
|
@@ -14,6 +14,7 @@ module Legion
|
|
|
14
14
|
return { vector: nil, model: model, provider: provider, error: 'LLM not started' } unless LLM.started?
|
|
15
15
|
|
|
16
16
|
provider ||= resolve_provider
|
|
17
|
+
return embedding_unavailable_result(model, provider) unless provider
|
|
17
18
|
return { vector: nil, model: model, provider: provider, error: "provider #{provider} is disabled" } if provider_disabled?(provider)
|
|
18
19
|
|
|
19
20
|
model ||= resolve_model(provider)
|
|
@@ -41,6 +42,8 @@ module Legion
|
|
|
41
42
|
return texts.map { |_| { vector: nil, error: 'LLM not started' } } unless LLM.started?
|
|
42
43
|
|
|
43
44
|
provider ||= resolve_provider
|
|
45
|
+
return unavailable_batch_result(texts, provider, model) unless provider
|
|
46
|
+
|
|
44
47
|
disabled_result = disabled_batch_result(texts, provider, model)
|
|
45
48
|
return disabled_result if disabled_result
|
|
46
49
|
|
|
@@ -74,6 +77,16 @@ module Legion
|
|
|
74
77
|
end
|
|
75
78
|
end
|
|
76
79
|
|
|
80
|
+
def embedding_unavailable_result(model, provider)
|
|
81
|
+
{ vector: nil, model: model, provider: provider, error: 'No embedding provider configured' }
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def unavailable_batch_result(texts, provider, model)
|
|
85
|
+
texts.each_with_index.map do |_, i|
|
|
86
|
+
embedding_unavailable_result(model, provider).merge(dimensions: 0, index: i)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
77
90
|
def provider_disabled?(provider)
|
|
78
91
|
return false unless provider
|
|
79
92
|
|
|
@@ -176,7 +189,7 @@ module Legion
|
|
|
176
189
|
configured = embedding_settings[:provider]
|
|
177
190
|
return configured&.to_sym if configured
|
|
178
191
|
|
|
179
|
-
|
|
192
|
+
nil
|
|
180
193
|
rescue StandardError => e
|
|
181
194
|
handle_exception(e, level: :debug, operation: 'llm.embeddings.resolve_provider')
|
|
182
195
|
nil
|
data/lib/legion/llm/version.rb
CHANGED