lex-openai 0.1.1 → 0.1.2
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/CLAUDE.md +4 -4
- data/README.md +12 -2
- data/lex-openai.gemspec +9 -3
- data/lib/legion/extensions/openai/version.rb +1 -1
- metadata +88 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 195df5f44b9dc39bb0988e9484e206a0315627be33775084dee7bce623f329a4
|
|
4
|
+
data.tar.gz: a986648e9153211a8cf51dd5d461cd80a82dab101e0537153798504a52c920c4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5a16ef2c98404dff128fc195a3b26601364e10ef441a58b90ec9e2c9b036c6f909e05d6d201b65202e3bed60709215e87c3f8b1ca372fc5395f6df3d98bc6b11
|
|
7
|
+
data.tar.gz: c6fbac8ecaf16186a36d6e4af5f7dfa05b5c27e314f28010855101b7c3848ddce28b8051357a2769325333f0639bb4b4803e6810a4f2a64e98945a4db07f8742
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.2] - 2026-03-22
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- add legion sub-gem runtime dependencies to gemspec (cache, crypt, data, json, logging, settings, transport)
|
|
7
|
+
- update spec_helper with real sub-gem helper requires and Helpers::Lex stub with all 7 includes
|
|
8
|
+
|
|
3
9
|
## [0.1.1] - 2026-03-18
|
|
4
10
|
|
|
5
11
|
### Changed
|
data/CLAUDE.md
CHANGED
|
@@ -10,7 +10,7 @@ Legion Extension that connects LegionIO to OpenAI. Provides runners for chat com
|
|
|
10
10
|
|
|
11
11
|
**GitHub**: https://github.com/LegionIO/lex-openai
|
|
12
12
|
**License**: MIT
|
|
13
|
-
**Version**: 0.1.
|
|
13
|
+
**Version**: 0.1.1
|
|
14
14
|
**Specs**: 17 examples
|
|
15
15
|
|
|
16
16
|
## Architecture
|
|
@@ -19,10 +19,10 @@ Legion Extension that connects LegionIO to OpenAI. Provides runners for chat com
|
|
|
19
19
|
Legion::Extensions::Openai
|
|
20
20
|
├── Runners/
|
|
21
21
|
│ ├── Chat # create(model:, messages:, api_key:, ...)
|
|
22
|
-
│ ├── Models # list(api_key:, ...), retrieve(
|
|
22
|
+
│ ├── Models # list(api_key:, ...), retrieve(model:, api_key:, ...), delete(model:, api_key:, ...)
|
|
23
23
|
│ ├── Images # generate(prompt:, api_key:, model: 'dall-e-3', ...), edit(...), variation(...)
|
|
24
24
|
│ ├── Audio # speech(input:, api_key:, model: 'tts-1', voice: 'alloy', ...), transcribe(...), translate(...)
|
|
25
|
-
│ ├── Embeddings # create(input:, model
|
|
25
|
+
│ ├── Embeddings # create(input:, model: 'text-embedding-3-small', api_key:, ...)
|
|
26
26
|
│ ├── Files # list, upload, retrieve, delete, content (download)
|
|
27
27
|
│ └── Moderations # create(input:, api_key:, ...)
|
|
28
28
|
└── Helpers/
|
|
@@ -37,7 +37,7 @@ Legion::Extensions::Openai
|
|
|
37
37
|
- Images (edit, variation) and Audio (transcribe, translate) runners use `Faraday::Multipart::FilePart` directly.
|
|
38
38
|
- `Images#generate` uses DALL-E 3 by default; `Images#edit` and `Images#variation` use DALL-E 2 by default.
|
|
39
39
|
- Audio defaults: `model: 'tts-1'`, `voice: 'alloy'`, `response_format: 'mp3'` for speech; `model: 'whisper-1'` for transcription/translation.
|
|
40
|
-
-
|
|
40
|
+
- All runners return `{ result: response.body }` (no `:status` key). This is consistent with lex-gemini runners. lex-claude runners add `:status` to the return hash.
|
|
41
41
|
- `include Legion::Extensions::Helpers::Lex` is guarded with `Legion::Extensions.const_defined?(:Helpers)` pattern.
|
|
42
42
|
|
|
43
43
|
## Dependencies
|
data/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# lex-openai
|
|
2
2
|
|
|
3
|
-
OpenAI integration for
|
|
3
|
+
OpenAI integration for LegionIO. Provides runners for chat completions, image generation, audio processing, embeddings, file management, and content moderation via the OpenAI API.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Wraps the OpenAI REST API as named runners consumable by any LegionIO task chain. Includes resource-specific operations (image generation/editing, audio transcription/synthesis, file management, moderation) not available through the `legion-llm` unified interface. Use this extension when you need direct access to the full OpenAI API surface within the LEX runner/actor lifecycle.
|
|
4
8
|
|
|
5
9
|
## Installation
|
|
6
10
|
|
|
@@ -35,7 +39,7 @@ gem 'lex-openai'
|
|
|
35
39
|
- `translate` - Translate audio to English text (Whisper)
|
|
36
40
|
|
|
37
41
|
### Embeddings
|
|
38
|
-
- `create` - Generate vector embeddings
|
|
42
|
+
- `create` - Generate vector embeddings (default model: text-embedding-3-small)
|
|
39
43
|
|
|
40
44
|
### Files
|
|
41
45
|
- `list` - List uploaded files
|
|
@@ -104,6 +108,12 @@ puts image[:result]['data'].first['url']
|
|
|
104
108
|
- [LegionIO](https://github.com/LegionIO/LegionIO) framework (optional for standalone runner usage)
|
|
105
109
|
- OpenAI API key
|
|
106
110
|
|
|
111
|
+
## Related
|
|
112
|
+
|
|
113
|
+
- `lex-xai` — xAI Grok API (same structural pattern as lex-openai)
|
|
114
|
+
- `legion-llm` — High-level LLM interface including OpenAI via ruby_llm
|
|
115
|
+
- `extensions-ai/CLAUDE.md` — Architecture patterns shared across all AI extensions
|
|
116
|
+
|
|
107
117
|
## License
|
|
108
118
|
|
|
109
119
|
MIT
|
data/lex-openai.gemspec
CHANGED
|
@@ -26,7 +26,13 @@ Gem::Specification.new do |spec|
|
|
|
26
26
|
end
|
|
27
27
|
spec.require_paths = ['lib']
|
|
28
28
|
|
|
29
|
-
spec.add_dependency 'faraday',
|
|
30
|
-
spec.add_dependency 'faraday-multipart',
|
|
31
|
-
spec.add_dependency '
|
|
29
|
+
spec.add_dependency 'faraday', '>= 2.0'
|
|
30
|
+
spec.add_dependency 'faraday-multipart', '>= 1.0'
|
|
31
|
+
spec.add_dependency 'legion-cache', '>= 1.3.11'
|
|
32
|
+
spec.add_dependency 'legion-crypt', '>= 1.4.9'
|
|
33
|
+
spec.add_dependency 'legion-data', '>= 1.4.17'
|
|
34
|
+
spec.add_dependency 'legion-json', '>= 1.2.1'
|
|
35
|
+
spec.add_dependency 'legion-logging', '>= 1.3.2'
|
|
36
|
+
spec.add_dependency 'legion-settings', '>= 1.3.14'
|
|
37
|
+
spec.add_dependency 'legion-transport', '>= 1.3.9'
|
|
32
38
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lex-openai
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -38,19 +38,103 @@ dependencies:
|
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
39
|
version: '1.0'
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
|
-
name:
|
|
41
|
+
name: legion-cache
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
44
|
- - ">="
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version:
|
|
46
|
+
version: 1.3.11
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - ">="
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version:
|
|
53
|
+
version: 1.3.11
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: legion-crypt
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 1.4.9
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 1.4.9
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: legion-data
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.4.17
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 1.4.17
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: legion-json
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 1.2.1
|
|
89
|
+
type: :runtime
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: 1.2.1
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: legion-logging
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: 1.3.2
|
|
103
|
+
type: :runtime
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: 1.3.2
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: legion-settings
|
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - ">="
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: 1.3.14
|
|
117
|
+
type: :runtime
|
|
118
|
+
prerelease: false
|
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: 1.3.14
|
|
124
|
+
- !ruby/object:Gem::Dependency
|
|
125
|
+
name: legion-transport
|
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - ">="
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: 1.3.9
|
|
131
|
+
type: :runtime
|
|
132
|
+
prerelease: false
|
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - ">="
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: 1.3.9
|
|
54
138
|
description: Connects LegionIO to OpenAI
|
|
55
139
|
email:
|
|
56
140
|
- matthewdiverson@gmail.com
|