ruby-openai 7.4.0 → 8.3.0
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/.circleci/config.yml +1 -1
- data/.gitignore +2 -0
- data/CHANGELOG.md +54 -1
- data/Gemfile +6 -5
- data/Gemfile.lock +31 -23
- data/README.md +420 -15
- data/SECURITY.md +9 -0
- data/lib/openai/batches.rb +1 -1
- data/lib/openai/client.rb +15 -1
- data/lib/openai/conversations.rb +40 -0
- data/lib/openai/files.rb +11 -7
- data/lib/openai/http.rb +17 -39
- data/lib/openai/images.rb +17 -3
- data/lib/openai/models.rb +4 -0
- data/lib/openai/realtime.rb +19 -0
- data/lib/openai/responses.rb +23 -0
- data/lib/openai/stream.rb +50 -0
- data/lib/openai/vector_stores.rb +4 -0
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +35 -24
- data/lib/ruby/openai.rb +0 -1
- metadata +8 -8
- data/lib/openai/compatibility.rb +0 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8f5bfc460a4cb2984e54d01cf39ebd6bd20a73fb0ddb6ffd271d14e6100fe568
|
|
4
|
+
data.tar.gz: 7a01a225d40f4265762a1e14a31dae19dff5535f8626336cfba0b5780a96cc57
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 108a88a9ae16ed2aed8fee72dac815f4e045dbdca622437281c9f085b17b2f5bebc5ed85ced951a794993a8629dff5e55c15061fe13882c35fdbf0fde233b2ac
|
|
7
|
+
data.tar.gz: d5a189f8b196c691dce838a225dbfa6ba5e00e306c8b9bd29740f62ab3c281973509b5caab521c84262326f09f1f55932dd017df94cfd6b8f1741a69984cbba7
|
data/.circleci/config.yml
CHANGED
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,60 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [8.3.0] - 2025-08-29
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add Conversations API - thanks to [@parterburn](https://github.com/parterburn) for the great PR!
|
|
13
|
+
|
|
14
|
+
## [8.2.1] - 2025-08-29
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Fix bug introduce in v8.2 which broke streaming with Faraday 2.1.0 - thanks to [@daikimiura](https://github.com/daikimiura) for the excellent PR!
|
|
19
|
+
|
|
20
|
+
## [8.2.0] - 2025-08-10
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- Add Security.md and activate private vulnerability reporting
|
|
25
|
+
- Add RealTime endpoint to create WebRTC token - thank you to [@ngelx](https://github.com/ngelx) for the PR and others for input!
|
|
26
|
+
- Add multi-image upload - thank you to [@ryankon](https://github.com/ryankon) and others for requesting.
|
|
27
|
+
- Refactor streaming so that Chat, Responses, Assistant Runs and any others where events are streamed now send the event to the Proc, replacing unused _bytesize. Search the README for `_event` to see how to use this. Important change implemented by [@ingemar](https://github.com/ingemar)!
|
|
28
|
+
- Handle OpenAI::Files request parameters - thank you to [@okorepanov](https://github.com/okorepanov) for the PR.
|
|
29
|
+
- Add Gemini docs - thanks to [@francis](https://github.com/francis).
|
|
30
|
+
- Add web proxy debugging docs - thanks to [@cpb](https://github.com/cpb).
|
|
31
|
+
- Add Rails / ActiveStorage transcription docs - thanks to [@AndreyAzimov](https://github.com/AndreyAzimov).
|
|
32
|
+
|
|
33
|
+
## [8.1.0] - 2025-03-30
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- Add Vector#search endpoint - thank you [@jaebrownn](https://github.com/jaebrownn) for this PR!
|
|
38
|
+
|
|
39
|
+
## [8.0.0] - 2025-03-14
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
|
|
43
|
+
- Add Responses endpoints - thanks to my excellent colleague [@simonx1](https://github.com/simonx1) for your work on this!
|
|
44
|
+
- Add docs for the Deepseek chat API.
|
|
45
|
+
- Add Models#delete - thanks to [bennysghost](https://github.com/bennysghost).
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- [BREAKING] Try to JSON parse everything. If it fails, fall back gracefully to returning the raw response. Thank you to [@gregszero](https://github.com/gregszero) and the many others who raised this issue.
|
|
50
|
+
- [BREAKING] An unknown file type will no longer prevent file upload, but instead raise a warning.
|
|
51
|
+
- [BREAKING] ruby-openai longer requires "faraday/multipart" for Faraday 1 users (Faraday 1 already includes it and it was causing a warning). Thanks to [ajGingrich](https://github.com/ajGingrich) for raising this!
|
|
52
|
+
- Add `user_data` and `evals` as options for known File types - thank you to [jontec](https://github.com/jontec) for this fix!
|
|
53
|
+
- Fix a syntax ambiguity in Client.rb - thank you to [viralpraxis](https://github.com/viralpraxis).
|
|
54
|
+
|
|
55
|
+
### Removed
|
|
56
|
+
|
|
57
|
+
- [BREAKING] Backwards compatibility for `require "ruby/openai"` is removed - from v8 on you MUST use `require "openai"`. This fixes a deprecation warning with Ruby 3.4. Thanks to [@ndemianc](https://github.com/ndemianc) for this PR.
|
|
58
|
+
- [BREAKING] Removed support for Ruby 2.6. ruby-openai may still work with this version but it's no longer supported.
|
|
59
|
+
- Removed the 'OpenAI-Beta' header from Batches API requests.
|
|
60
|
+
|
|
61
|
+
## [7.4.0] - 2025-02-10
|
|
9
62
|
|
|
10
63
|
### Added
|
|
11
64
|
|
data/Gemfile
CHANGED
|
@@ -3,10 +3,11 @@ source "https://rubygems.org"
|
|
|
3
3
|
# Include gem dependencies from ruby-openai.gemspec
|
|
4
4
|
gemspec
|
|
5
5
|
|
|
6
|
+
# Development dependencies. Not included in the publised gem.
|
|
6
7
|
gem "byebug", "~> 11.1.3"
|
|
7
|
-
gem "dotenv", "~> 2.8.1"
|
|
8
|
-
gem "rake", "~> 13.2"
|
|
8
|
+
gem "dotenv", "~> 2.8.1" # >= v3 will require removing support for Ruby 2.7 from CI.
|
|
9
|
+
gem "rake", "~> 13.2.1"
|
|
9
10
|
gem "rspec", "~> 3.13"
|
|
10
|
-
gem "rubocop", "~> 1.
|
|
11
|
-
gem "vcr", "~> 6.1
|
|
12
|
-
gem "webmock", "~> 3.
|
|
11
|
+
gem "rubocop", "~> 1.74.0"
|
|
12
|
+
gem "vcr", "~> 6.3.1"
|
|
13
|
+
gem "webmock", "~> 3.25.1"
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
ruby-openai (
|
|
4
|
+
ruby-openai (8.3.0)
|
|
5
5
|
event_stream_parser (>= 0.3.0, < 2.0.0)
|
|
6
6
|
faraday (>= 1)
|
|
7
7
|
faraday-multipart (>= 1)
|
|
@@ -13,7 +13,7 @@ GEM
|
|
|
13
13
|
public_suffix (>= 2.0.2, < 7.0)
|
|
14
14
|
ast (2.4.2)
|
|
15
15
|
base64 (0.2.0)
|
|
16
|
-
bigdecimal (3.1.
|
|
16
|
+
bigdecimal (3.1.9)
|
|
17
17
|
byebug (11.1.3)
|
|
18
18
|
crack (1.0.0)
|
|
19
19
|
bigdecimal
|
|
@@ -28,16 +28,20 @@ GEM
|
|
|
28
28
|
faraday-multipart (1.0.4)
|
|
29
29
|
multipart-post (~> 2)
|
|
30
30
|
faraday-net_http (3.0.2)
|
|
31
|
-
hashdiff (1.1.
|
|
32
|
-
json (2.
|
|
31
|
+
hashdiff (1.1.2)
|
|
32
|
+
json (2.10.2)
|
|
33
|
+
language_server-protocol (3.17.0.4)
|
|
34
|
+
lint_roller (1.1.0)
|
|
33
35
|
multipart-post (2.3.0)
|
|
34
|
-
parallel (1.
|
|
35
|
-
parser (3.
|
|
36
|
+
parallel (1.26.3)
|
|
37
|
+
parser (3.3.7.1)
|
|
36
38
|
ast (~> 2.4.1)
|
|
37
|
-
|
|
39
|
+
racc
|
|
40
|
+
public_suffix (6.0.1)
|
|
41
|
+
racc (1.8.1)
|
|
38
42
|
rainbow (3.1.1)
|
|
39
43
|
rake (13.2.1)
|
|
40
|
-
regexp_parser (2.
|
|
44
|
+
regexp_parser (2.10.0)
|
|
41
45
|
rexml (3.3.9)
|
|
42
46
|
rspec (3.13.0)
|
|
43
47
|
rspec-core (~> 3.13.0)
|
|
@@ -52,23 +56,27 @@ GEM
|
|
|
52
56
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
53
57
|
rspec-support (~> 3.13.0)
|
|
54
58
|
rspec-support (3.13.1)
|
|
55
|
-
rubocop (1.
|
|
59
|
+
rubocop (1.74.0)
|
|
56
60
|
json (~> 2.3)
|
|
61
|
+
language_server-protocol (~> 3.17.0.2)
|
|
62
|
+
lint_roller (~> 1.1.0)
|
|
57
63
|
parallel (~> 1.10)
|
|
58
|
-
parser (>= 3.
|
|
64
|
+
parser (>= 3.3.0.2)
|
|
59
65
|
rainbow (>= 2.2.2, < 4.0)
|
|
60
|
-
regexp_parser (>=
|
|
61
|
-
|
|
62
|
-
rubocop-ast (>= 1.28.0, < 2.0)
|
|
66
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
67
|
+
rubocop-ast (>= 1.38.0, < 2.0)
|
|
63
68
|
ruby-progressbar (~> 1.7)
|
|
64
|
-
unicode-display_width (>= 2.4.0, <
|
|
65
|
-
rubocop-ast (1.
|
|
66
|
-
parser (>= 3.
|
|
69
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
70
|
+
rubocop-ast (1.38.1)
|
|
71
|
+
parser (>= 3.3.1.0)
|
|
67
72
|
ruby-progressbar (1.13.0)
|
|
68
73
|
ruby2_keywords (0.0.5)
|
|
69
|
-
unicode-display_width (
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
unicode-display_width (3.1.4)
|
|
75
|
+
unicode-emoji (~> 4.0, >= 4.0.4)
|
|
76
|
+
unicode-emoji (4.0.4)
|
|
77
|
+
vcr (6.3.1)
|
|
78
|
+
base64
|
|
79
|
+
webmock (3.25.1)
|
|
72
80
|
addressable (>= 2.8.0)
|
|
73
81
|
crack (>= 0.3.2)
|
|
74
82
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
@@ -79,12 +87,12 @@ PLATFORMS
|
|
|
79
87
|
DEPENDENCIES
|
|
80
88
|
byebug (~> 11.1.3)
|
|
81
89
|
dotenv (~> 2.8.1)
|
|
82
|
-
rake (~> 13.2)
|
|
90
|
+
rake (~> 13.2.1)
|
|
83
91
|
rspec (~> 3.13)
|
|
84
|
-
rubocop (~> 1.
|
|
92
|
+
rubocop (~> 1.74.0)
|
|
85
93
|
ruby-openai!
|
|
86
|
-
vcr (~> 6.1
|
|
87
|
-
webmock (~> 3.
|
|
94
|
+
vcr (~> 6.3.1)
|
|
95
|
+
webmock (~> 3.25.1)
|
|
88
96
|
|
|
89
97
|
BUNDLED WITH
|
|
90
98
|
2.4.5
|