lex-llm-openai 0.4.4 → 0.4.5
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 +5 -0
- data/lex-llm-openai.gemspec +1 -1
- data/lib/legion/extensions/llm/openai/version.rb +1 -1
- data/lib/legion/extensions/llm/openai.rb +16 -3
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4091bfdcfbcd60f52453e29e42e30a4564edd48dabcd9b0f8edadfa68440f52b
|
|
4
|
+
data.tar.gz: 0de0b799f80f47f937a9ecdc797996c4c0d3e64784fc518bf0b5de8628df135b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0abdd81c00439b7ccba758adbd7f8576e83ce5e367673ce2092708dc3f61290c406db462e0736e56402957c32f47b0fd781bdcf6486508a5b8486ab48f6d2edf
|
|
7
|
+
data.tar.gz: 29b4b768e0bd91aee7cd05283b62caf93d4ffbd6215063c7fa480d3ed1a2b164341e669d6badcb4e7f804db55e9500e81c016eef5f4a7223c20039730942ec37
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.5 - 2026-06-17
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- **Policy-aware default model** — `default_model` is no longer a hardcoded literal forced via `||=`. The `gpt-5.5` fallback is now a named `DEFAULT_MODEL` constant applied through `Provider.policy_safe_default_model`, so a configured `model_whitelist`/`model_blacklist` is never overridden: if neither the configured default nor the fallback is permitted, `default_model` is left unset and routing resolves an allowed discovered model instead. Requires lex-llm >= 0.5.4.
|
|
7
|
+
|
|
3
8
|
## 0.4.4 - 2026-06-16
|
|
4
9
|
|
|
5
10
|
- dependency updates, code quality improvements
|
data/lex-llm-openai.gemspec
CHANGED
|
@@ -27,5 +27,5 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
spec.add_dependency 'legion-logging', '>= 1.3.2'
|
|
28
28
|
spec.add_dependency 'legion-settings', '>= 1.3.14'
|
|
29
29
|
spec.add_dependency 'legion-transport', '>= 1.4.14'
|
|
30
|
-
spec.add_dependency 'lex-llm', '>= 0.5.
|
|
30
|
+
spec.add_dependency 'lex-llm', '>= 0.5.4'
|
|
31
31
|
end
|
|
@@ -16,13 +16,17 @@ module Legion
|
|
|
16
16
|
extend Legion::Extensions::Llm::AutoRegistration
|
|
17
17
|
|
|
18
18
|
PROVIDER_FAMILY = :openai
|
|
19
|
+
# Provider's preferred default when the operator configures none. Used only
|
|
20
|
+
# as a fallback and only when the configured model policy permits it
|
|
21
|
+
# (see resolve_default_model) — a whitelist/blacklist is never overridden.
|
|
22
|
+
DEFAULT_MODEL = 'gpt-5.5'
|
|
19
23
|
|
|
20
24
|
def self.default_settings
|
|
21
25
|
::Legion::Extensions::Llm.provider_settings(
|
|
22
26
|
family: PROVIDER_FAMILY,
|
|
23
27
|
instance: {
|
|
24
28
|
endpoint: 'https://api.openai.com',
|
|
25
|
-
default_model:
|
|
29
|
+
default_model: DEFAULT_MODEL,
|
|
26
30
|
tier: :frontier,
|
|
27
31
|
transport: :http,
|
|
28
32
|
credentials: {
|
|
@@ -100,10 +104,10 @@ module Legion
|
|
|
100
104
|
candidates[name.to_sym] = normalized.merge(tier: :frontier)
|
|
101
105
|
end
|
|
102
106
|
|
|
103
|
-
# 8. Dedup + inject default_model
|
|
107
|
+
# 8. Dedup + inject a policy-aware default_model
|
|
104
108
|
discovered = CredentialSources.dedup_credentials(candidates).transform_values do |config|
|
|
105
109
|
sanitized = sanitize_instance_config(config)
|
|
106
|
-
sanitized[:default_model]
|
|
110
|
+
sanitized[:default_model] = resolve_default_model(sanitized)
|
|
107
111
|
sanitized
|
|
108
112
|
end
|
|
109
113
|
instance_names = discovered.keys.sort_by(&:to_s).join(', ')
|
|
@@ -111,6 +115,15 @@ module Legion
|
|
|
111
115
|
discovered
|
|
112
116
|
end
|
|
113
117
|
|
|
118
|
+
# Resolve a default_model that never violates the configured model policy
|
|
119
|
+
# (whitelist/blacklist stays authoritative over the DEFAULT_MODEL fallback).
|
|
120
|
+
def self.resolve_default_model(config)
|
|
121
|
+
provider_class.policy_safe_default_model(
|
|
122
|
+
configured: config[:default_model], fallback: DEFAULT_MODEL,
|
|
123
|
+
**provider_class.model_policy(config, PROVIDER_FAMILY)
|
|
124
|
+
)
|
|
125
|
+
end
|
|
126
|
+
|
|
114
127
|
def self.settings_instances(config)
|
|
115
128
|
return {} unless config.is_a?(Hash)
|
|
116
129
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lex-llm-openai
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- LegionIO
|
|
@@ -71,14 +71,14 @@ dependencies:
|
|
|
71
71
|
requirements:
|
|
72
72
|
- - ">="
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 0.5.
|
|
74
|
+
version: 0.5.4
|
|
75
75
|
type: :runtime
|
|
76
76
|
prerelease: false
|
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
79
|
- - ">="
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 0.5.
|
|
81
|
+
version: 0.5.4
|
|
82
82
|
description: OpenAI provider integration for the LegionIO LLM routing framework.
|
|
83
83
|
email:
|
|
84
84
|
- matthewdiverson@gmail.com
|