lex-llm-openai 0.1.1 → 0.1.3
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 +14 -2
- data/Gemfile +2 -6
- data/README.md +6 -4
- data/lex-llm-openai.gemspec +3 -7
- data/lib/legion/extensions/llm/openai/provider.rb +4 -5
- data/lib/legion/extensions/llm/openai/version.rb +1 -1
- data/lib/legion/extensions/llm/openai.rb +2 -2
- metadata +5 -62
- data/lib/lex_llm_openai.rb +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7d290fddaf838579b445dedeefb35628d83ca2826e10df699f3c8bd41f4ab9de
|
|
4
|
+
data.tar.gz: 7da1c5be7431cb7e4991cf5ae8a04b470932851caf06f5a1368a2024323466a9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1783aa4651f954f932af3be3f48f080b0537101882fbc0fc60acebe1c956c5029ed30842686140f480aa93a745311fde887c8ebd5040e88979ae6f7f7614b278
|
|
7
|
+
data.tar.gz: 2311adb58da6d9465f1a48560fa40d74c5e0c532c41268f5f92bf0c7f3015721a5ccc5ff767a813d832a8bdeb17ac79c2ca82321df4d6a5e0865e19cf9bc130c
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.3 - 2026-04-28
|
|
4
|
+
|
|
5
|
+
- Remove the leftover compatibility entrypoint outside the Legion namespace.
|
|
6
|
+
- Load specs through the canonical `legion/extensions/llm/openai` namespace path.
|
|
7
|
+
- Keep provider gemspec dependencies scoped to the shared `lex-llm` base gem.
|
|
8
|
+
|
|
9
|
+
## 0.1.2 - 2026-04-28
|
|
10
|
+
|
|
11
|
+
- Replace fork-era namespace references with the standard Legion::Extensions::Llm provider contract.
|
|
12
|
+
- Remove GitHub-based lex-llm Gemfile fallback so test installs use only a guarded local path or released gem dependency.
|
|
13
|
+
- Require lex-llm >= 0.1.3 for the cleaned Legion-native base extension.
|
|
14
|
+
|
|
3
15
|
## 0.1.1 - 2026-04-27
|
|
4
16
|
|
|
5
|
-
- Add the OpenAI
|
|
6
|
-
- Use `
|
|
17
|
+
- Add the OpenAI Legion::Extensions::Llm provider class with chat, streaming, model listing, model retrieval, embeddings, moderation, image, and audio transcription helpers.
|
|
18
|
+
- Use `Legion::Extensions::Llm::Provider::OpenAICompatible` for OpenAI-compatible request payload and response parsing.
|
|
7
19
|
- Use shared `Legion::Extensions::Llm.provider_settings` defaults from `lex-llm`.
|
|
8
20
|
- Update dependencies for shared Legion JSON, settings, logging, and `lex-llm >= 0.1.2`.
|
|
9
21
|
- Remove the committed `Gemfile.lock`.
|
data/Gemfile
CHANGED
|
@@ -3,12 +3,8 @@
|
|
|
3
3
|
source 'https://rubygems.org'
|
|
4
4
|
|
|
5
5
|
group :test do
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
else
|
|
9
|
-
gem 'lex-llm', git: 'https://github.com/LegionIO/lex-llm',
|
|
10
|
-
branch: ENV.fetch('LEX_LLM_BRANCH', 'main')
|
|
11
|
-
end
|
|
6
|
+
llm_base_path = ENV.fetch('LEX_LLM_PATH', File.expand_path('../lex-llm', __dir__))
|
|
7
|
+
gem 'lex-llm', path: llm_base_path if File.directory?(llm_base_path)
|
|
12
8
|
end
|
|
13
9
|
|
|
14
10
|
gemspec
|
data/README.md
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# lex-llm-openai
|
|
2
2
|
|
|
3
|
-
LegionIO LLM provider extension for
|
|
3
|
+
LegionIO LLM provider extension for OpenAI.
|
|
4
4
|
|
|
5
5
|
This gem lives under `Legion::Extensions::Llm::Openai` and depends on `lex-llm` for shared provider-neutral routing, fleet, and schema primitives.
|
|
6
6
|
|
|
7
|
+
Load it with `require 'legion/extensions/llm/openai'`.
|
|
8
|
+
|
|
7
9
|
## What It Provides
|
|
8
10
|
|
|
9
|
-
- `
|
|
11
|
+
- `Legion::Extensions::Llm::Provider` registration as `:openai`
|
|
10
12
|
- chat completions through `POST /v1/chat/completions`
|
|
11
13
|
- streaming chat completions through the same chat completions endpoint
|
|
12
14
|
- model discovery through `GET /v1/models`
|
|
@@ -17,7 +19,7 @@ This gem lives under `Legion::Extensions::Llm::Openai` and depends on `lex-llm`
|
|
|
17
19
|
- image editing through `POST /v1/images/edits`
|
|
18
20
|
- image variation endpoint helper for `POST /v1/images/variations`
|
|
19
21
|
- audio transcription through `POST /v1/audio/transcriptions`
|
|
20
|
-
- shared OpenAI-compatible request/response mapping via `
|
|
22
|
+
- shared OpenAI-compatible request/response mapping via `Legion::Extensions::Llm::Provider::OpenAICompatible`
|
|
21
23
|
- shared fleet/default settings via `Legion::Extensions::Llm.provider_settings`
|
|
22
24
|
|
|
23
25
|
## Defaults
|
|
@@ -42,7 +44,7 @@ Legion::Extensions::Llm::Openai.default_settings
|
|
|
42
44
|
## Configuration
|
|
43
45
|
|
|
44
46
|
```ruby
|
|
45
|
-
|
|
47
|
+
Legion::Extensions::Llm.configure do |config|
|
|
46
48
|
config.openai_api_key = ENV.fetch("OPENAI_API_KEY")
|
|
47
49
|
config.default_model = "gpt-5.2"
|
|
48
50
|
config.default_embedding_model = "text-embedding-3-small"
|
data/lex-llm-openai.gemspec
CHANGED
|
@@ -7,8 +7,8 @@ Gem::Specification.new do |spec|
|
|
|
7
7
|
spec.version = Legion::Extensions::Llm::Openai::VERSION
|
|
8
8
|
spec.authors = ['LegionIO']
|
|
9
9
|
spec.email = ['matthewdiverson@gmail.com']
|
|
10
|
-
spec.summary = 'LegionIO LLM
|
|
11
|
-
spec.description = '
|
|
10
|
+
spec.summary = 'LegionIO LLM OpenAI provider extension'
|
|
11
|
+
spec.description = 'OpenAI provider integration for the LegionIO LLM routing framework.'
|
|
12
12
|
spec.homepage = 'https://github.com/LegionIO/lex-llm-openai'
|
|
13
13
|
spec.license = 'MIT'
|
|
14
14
|
spec.required_ruby_version = '>= 3.4'
|
|
@@ -23,9 +23,5 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
spec.files = `git ls-files -z`.split("\x0").reject { |file| file.match(%r{^(spec|test|features|tmp|coverage)/}) }
|
|
24
24
|
spec.require_paths = ['lib']
|
|
25
25
|
|
|
26
|
-
spec.add_dependency '
|
|
27
|
-
spec.add_dependency 'legion-json', '>= 1.0'
|
|
28
|
-
spec.add_dependency 'legion-logging', '>= 1.0'
|
|
29
|
-
spec.add_dependency 'legion-settings', '>= 1.3.14'
|
|
30
|
-
spec.add_dependency 'lex-llm', '>= 0.1.2'
|
|
26
|
+
spec.add_dependency 'lex-llm', '>= 0.1.3'
|
|
31
27
|
end
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require '
|
|
4
|
-
require 'legion/json'
|
|
3
|
+
require 'legion/extensions/llm'
|
|
5
4
|
|
|
6
5
|
module Legion
|
|
7
6
|
module Extensions
|
|
8
7
|
module Llm
|
|
9
8
|
module Openai
|
|
10
|
-
# OpenAI provider implementation for the
|
|
11
|
-
class Provider <
|
|
12
|
-
include
|
|
9
|
+
# OpenAI provider implementation for the Legion::Extensions::Llm base provider contract.
|
|
10
|
+
class Provider < Legion::Extensions::Llm::Provider
|
|
11
|
+
include Legion::Extensions::Llm::Provider::OpenAICompatible
|
|
13
12
|
|
|
14
13
|
class << self
|
|
15
14
|
def slug = 'openai'
|
|
@@ -35,5 +35,5 @@ module Legion
|
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
Legion::Extensions::Llm::Provider.register(Legion::Extensions::Llm::Openai::PROVIDER_FAMILY,
|
|
39
|
+
Legion::Extensions::Llm::Openai::Provider)
|
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.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- LegionIO
|
|
@@ -9,77 +9,21 @@ bindir: bin
|
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
|
-
- !ruby/object:Gem::Dependency
|
|
13
|
-
name: faraday
|
|
14
|
-
requirement: !ruby/object:Gem::Requirement
|
|
15
|
-
requirements:
|
|
16
|
-
- - ">="
|
|
17
|
-
- !ruby/object:Gem::Version
|
|
18
|
-
version: '2.0'
|
|
19
|
-
type: :runtime
|
|
20
|
-
prerelease: false
|
|
21
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
-
requirements:
|
|
23
|
-
- - ">="
|
|
24
|
-
- !ruby/object:Gem::Version
|
|
25
|
-
version: '2.0'
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: legion-json
|
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
|
29
|
-
requirements:
|
|
30
|
-
- - ">="
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '1.0'
|
|
33
|
-
type: :runtime
|
|
34
|
-
prerelease: false
|
|
35
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
-
requirements:
|
|
37
|
-
- - ">="
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '1.0'
|
|
40
|
-
- !ruby/object:Gem::Dependency
|
|
41
|
-
name: legion-logging
|
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
|
43
|
-
requirements:
|
|
44
|
-
- - ">="
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '1.0'
|
|
47
|
-
type: :runtime
|
|
48
|
-
prerelease: false
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - ">="
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: '1.0'
|
|
54
|
-
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: legion-settings
|
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
|
57
|
-
requirements:
|
|
58
|
-
- - ">="
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: 1.3.14
|
|
61
|
-
type: :runtime
|
|
62
|
-
prerelease: false
|
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - ">="
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: 1.3.14
|
|
68
12
|
- !ruby/object:Gem::Dependency
|
|
69
13
|
name: lex-llm
|
|
70
14
|
requirement: !ruby/object:Gem::Requirement
|
|
71
15
|
requirements:
|
|
72
16
|
- - ">="
|
|
73
17
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 0.1.
|
|
18
|
+
version: 0.1.3
|
|
75
19
|
type: :runtime
|
|
76
20
|
prerelease: false
|
|
77
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
22
|
requirements:
|
|
79
23
|
- - ">="
|
|
80
24
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 0.1.
|
|
82
|
-
description:
|
|
25
|
+
version: 0.1.3
|
|
26
|
+
description: OpenAI provider integration for the LegionIO LLM routing framework.
|
|
83
27
|
email:
|
|
84
28
|
- matthewdiverson@gmail.com
|
|
85
29
|
executables: []
|
|
@@ -99,7 +43,6 @@ files:
|
|
|
99
43
|
- lib/legion/extensions/llm/openai.rb
|
|
100
44
|
- lib/legion/extensions/llm/openai/provider.rb
|
|
101
45
|
- lib/legion/extensions/llm/openai/version.rb
|
|
102
|
-
- lib/lex_llm_openai.rb
|
|
103
46
|
homepage: https://github.com/LegionIO/lex-llm-openai
|
|
104
47
|
licenses:
|
|
105
48
|
- MIT
|
|
@@ -126,5 +69,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
126
69
|
requirements: []
|
|
127
70
|
rubygems_version: 3.6.9
|
|
128
71
|
specification_version: 4
|
|
129
|
-
summary: LegionIO LLM
|
|
72
|
+
summary: LegionIO LLM OpenAI provider extension
|
|
130
73
|
test_files: []
|
data/lib/lex_llm_openai.rb
DELETED