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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d560457b6321f55371b3dd14d546c8c23d11485b2b3ba5dec218cea028d50399
4
- data.tar.gz: 8ee76eba6bf57f592f9d372fec7f8c5372d97c220869f988abe9e1521e766b7b
3
+ metadata.gz: f73cca457b602ab79cd3964a15333afe338a7ed5ef18a556f0e502da7817b4ef
4
+ data.tar.gz: 706498c91924640dc31bf43e814a04f2880acb2930cf30abdf144c28cb02fd01
5
5
  SHA512:
6
- metadata.gz: 0b81ee44a4f57a8ec0e9eb8aef043bdc543217baade9ff1b2772a46056ebc7a486d4e9acfded4fb05cedf341583cb8aaaa9091bd243c4f26eac9ff494ada3d01
7
- data.tar.gz: 2ebf5a44aa5588a635c75ef6dc0b68c6554905d343b125cd944c1f5032399c4c714cad8953030e53ba3bb92efe0233371d5c2ebad12eebc5b4a1e2887a0e7c35
6
+ metadata.gz: 3b499fde4636085676157fdad1576ba60ed0149f2e9d126289b38399b4232ce64ed47e66250c7bf0dd01c87e15afff675c0d3f0ddc5d6d152ec17640af615fd2
7
+ data.tar.gz: 5b26a4426f630a3e36dedd6bdeacae7b6a2283696f4a9771d5458bdd2c8735380984ee983a10c9483ea2cb373eaa5a4e54c0cc92cac5d1a0b04f5835a7920850
data/.gitignore CHANGED
@@ -1,6 +1,7 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
3
  /Gemfile.lock
4
+ *.gem
4
5
  /_yardoc/
5
6
  /coverage/
6
7
  /doc/
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
- Legion::Settings.dig(:llm, :default_provider)&.to_sym
192
+ nil
180
193
  rescue StandardError => e
181
194
  handle_exception(e, level: :debug, operation: 'llm.embeddings.resolve_provider')
182
195
  nil
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module LLM
5
- VERSION = '0.8.30'
5
+ VERSION = '0.8.32'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.30
4
+ version: 0.8.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity