legion-llm 0.9.9 → 0.9.10
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/CHANGELOG.md +6 -0
- data/lib/legion/llm/discovery/rule_generator.rb +6 -3
- data/lib/legion/llm/discovery.rb +1 -0
- 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: a3155d38fd745698ea1445e6d1d8b1824c4ce57c001f107ab2fc0036ee88c48a
|
|
4
|
+
data.tar.gz: 0baebdd6be604ae292502adda2168e5eb599cf4fa00e30e5f82b414ad271d016
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7e3112d5a47dddcfe969867afe3e2cccc2d45029628a6b64c3098b7d8be2ba35908823bd9decd062eface61b2b9fded8e29710f8fcca094b00c19311a82eb211
|
|
7
|
+
data.tar.gz: 59f1a067e96bb527f46ed5b68f5e03c50aceeb8141ff91c06e89fdedfb17496359a6d50898a6fb2a8c9fd268b596ea23db858f4ee64f7e86ce22e04aefa0c56d
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Legion LLM Changelog
|
|
2
2
|
|
|
3
|
+
## [0.9.10] - 2026-05-07
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- `normalize_model_for_rules` now passes the `tier` field from each discovered model entry through to `RuleGenerator`, so per-instance tier configuration is no longer silently dropped.
|
|
7
|
+
- `RuleGenerator#generate` now prefers a per-model `tier` value from discovery data over the hardcoded `TIER_MAP` provider default, allowing directly-reachable vLLM (and other HTTP-based) instances to route via `:direct` instead of always being assigned `:fleet`.
|
|
8
|
+
|
|
3
9
|
## [0.9.9] - 2026-05-07
|
|
4
10
|
|
|
5
11
|
### Fixed
|
|
@@ -46,10 +46,13 @@ module Legion
|
|
|
46
46
|
model_name = (model_data[:name] || model_data['name']).to_s
|
|
47
47
|
next if model_name.empty?
|
|
48
48
|
|
|
49
|
+
model_tier = extract_field(model_data, :tier)&.to_sym ||
|
|
50
|
+
extract_field(model_data, 'tier')&.to_sym ||
|
|
51
|
+
tier
|
|
49
52
|
capability = embedding_model?(model_data) ? :embed : :chat
|
|
50
|
-
priority = (TIER_WEIGHT[
|
|
51
|
-
rules << build_rule(provider, instance_id, model_data, capability,
|
|
52
|
-
rules << build_rule(provider, instance_id, model_data, :stream,
|
|
53
|
+
priority = (TIER_WEIGHT[model_tier] || 80) - order
|
|
54
|
+
rules << build_rule(provider, instance_id, model_data, capability, model_tier, priority)
|
|
55
|
+
rules << build_rule(provider, instance_id, model_data, :stream, model_tier, priority) if capability == :chat
|
|
53
56
|
order += 1
|
|
54
57
|
end
|
|
55
58
|
end
|
data/lib/legion/llm/discovery.rb
CHANGED
|
@@ -212,6 +212,7 @@ module Legion
|
|
|
212
212
|
# Normalize a discovered model entry into a hash compatible with RuleGenerator
|
|
213
213
|
def normalize_model_for_rules(model_entry)
|
|
214
214
|
h = { 'name' => model_entry[:model] }
|
|
215
|
+
h['tier'] = model_entry[:tier] if model_entry[:tier]
|
|
215
216
|
h['capabilities'] = model_entry[:capabilities] if model_entry[:capabilities]&.any?
|
|
216
217
|
h['context_length'] = model_entry[:context_length] if model_entry[:context_length]
|
|
217
218
|
h['parameter_count'] = model_entry[:parameter_count] if model_entry[:parameter_count]
|
data/lib/legion/llm/version.rb
CHANGED