ruby-openai 2.0.1 → 2.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4fafce333da7c64cacff4af92a1aa6f9a6b852a6c84bcf139668ad6763e93be0
4
- data.tar.gz: bd5ae87214057466912c2892123e5d1ab6efc2dc570cbbe00c13679417506706
3
+ metadata.gz: 141a4b28c980797b7b04fd8434e03755341fdfbc542e7ba2425b8d467662ef34
4
+ data.tar.gz: 934ed9a6b66897c370c8d5c8787d2508a95f55e695d312bab2c4227af5f820ca
5
5
  SHA512:
6
- metadata.gz: 1eac6b65e9ed0b8f932f0f9b65670df4a96e988a56c8ea302abbcf675b670917d4f1dd9289cfc0fa0be5868811888e0e67851338258ccfa8c5954fee82b1df6a
7
- data.tar.gz: e1b856074548b44c228170c8f211737df30d1106edf5097d115df5b286447959bbbd30f6d7d3d8b33a88ebcd64303596240804192c710329b421749da8eac709
6
+ metadata.gz: f4bccb5f8b6ac3fc05ac592af972412a284dfb2aa4015657faa8358d7e00e060b508153413c8d8416e991886724e795a5c26125485ffec3181dcb2fd3d84e298
7
+ data.tar.gz: 7a2138265ae5235d870d6ddae69acf016132c71bef8b5781d5854c6ad970396d3b466b59cd14f82891b11d81b8833483ccf757f899be71cbb9f12f6608aaffd8
data/CHANGELOG.md CHANGED
@@ -5,6 +5,12 @@ 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
+ ## [2.1.0] - 2022-11-13
9
+
10
+ ### Added
11
+
12
+ - Add Images#generate endpoint to generate images with DALL·E!
13
+
8
14
  ## [2.0.1] - 2022-10-22
9
15
 
10
16
  ### Removed
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ gemspec
5
5
 
6
6
  gem "byebug", "~> 11.1.3"
7
7
  gem "rake", "~> 13.0"
8
- gem "rspec", "~> 3.11"
9
- gem "rubocop", "~> 1.37.0"
8
+ gem "rspec", "~> 3.12"
9
+ gem "rubocop", "~> 1.38.0"
10
10
  gem "vcr", "~> 6.1.0"
11
11
  gem "webmock", "~> 3.18.1"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-openai (2.0.1)
4
+ ruby-openai (2.1.0)
5
5
  dotenv (>= 2.7.6, < 2.9.0)
6
6
  httparty (>= 0.18.1, < 0.21.0)
7
7
 
@@ -33,30 +33,30 @@ GEM
33
33
  rake (13.0.6)
34
34
  regexp_parser (2.6.0)
35
35
  rexml (3.2.5)
36
- rspec (3.11.0)
37
- rspec-core (~> 3.11.0)
38
- rspec-expectations (~> 3.11.0)
39
- rspec-mocks (~> 3.11.0)
40
- rspec-core (3.11.0)
41
- rspec-support (~> 3.11.0)
42
- rspec-expectations (3.11.0)
36
+ rspec (3.12.0)
37
+ rspec-core (~> 3.12.0)
38
+ rspec-expectations (~> 3.12.0)
39
+ rspec-mocks (~> 3.12.0)
40
+ rspec-core (3.12.0)
41
+ rspec-support (~> 3.12.0)
42
+ rspec-expectations (3.12.0)
43
43
  diff-lcs (>= 1.2.0, < 2.0)
44
- rspec-support (~> 3.11.0)
45
- rspec-mocks (3.11.0)
44
+ rspec-support (~> 3.12.0)
45
+ rspec-mocks (3.12.0)
46
46
  diff-lcs (>= 1.2.0, < 2.0)
47
- rspec-support (~> 3.11.0)
48
- rspec-support (3.11.0)
49
- rubocop (1.37.0)
47
+ rspec-support (~> 3.12.0)
48
+ rspec-support (3.12.0)
49
+ rubocop (1.38.0)
50
50
  json (~> 2.3)
51
51
  parallel (~> 1.10)
52
52
  parser (>= 3.1.2.1)
53
53
  rainbow (>= 2.2.2, < 4.0)
54
54
  regexp_parser (>= 1.8, < 3.0)
55
55
  rexml (>= 3.2.5, < 4.0)
56
- rubocop-ast (>= 1.22.0, < 2.0)
56
+ rubocop-ast (>= 1.23.0, < 2.0)
57
57
  ruby-progressbar (~> 1.7)
58
58
  unicode-display_width (>= 1.4.0, < 3.0)
59
- rubocop-ast (1.22.0)
59
+ rubocop-ast (1.23.0)
60
60
  parser (>= 3.1.1.0)
61
61
  ruby-progressbar (1.11.0)
62
62
  unicode-display_width (2.3.0)
@@ -72,8 +72,8 @@ PLATFORMS
72
72
  DEPENDENCIES
73
73
  byebug (~> 11.1.3)
74
74
  rake (~> 13.0)
75
- rspec (~> 3.11)
76
- rubocop (~> 1.37.0)
75
+ rspec (~> 3.12)
76
+ rubocop (~> 1.38.0)
77
77
  ruby-openai!
78
78
  vcr (~> 6.1.0)
79
79
  webmock (~> 3.18.1)
data/README.md CHANGED
@@ -194,6 +194,18 @@ This fine-tuned model name can then be used in classifications:
194
194
  JSON.parse(response.body)["choices"].map { |c| c["text"] }
195
195
  ```
196
196
 
197
+ ### Images
198
+
199
+ Generate an image using DALL·E!
200
+
201
+ ```ruby
202
+ response = client.images.generate(parameters: { prompt: "A baby sea otter cooking pasta wearing a hat of some sort" })
203
+ puts response.dig("data", 0, "url") }
204
+ => "https://oaidalleapiprodscus.blob.core.windows.net/private/org-Rf437IxKhh..."
205
+ ```
206
+
207
+ ![Otter Chef](https://oaidalleapiprodscus.blob.core.windows.net/private/org-Rf437IxKhhQPMiIQ0Es8OwrH/user-jxM65ijkZc1qRfHC0IJ8mOIc/img-UrDvFC4tDnuhTieF7TrTJ2gq.png?st=2022-11-13T15%3A55%3A34Z&se=2022-11-13T17%3A55%3A34Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2022-11-13T01%3A32%3A30Z&ske=2022-11-14T01%3A32%3A30Z&sks=b&skv=2021-08-06&sig=tLdggckHl20CnnpCleoeiAEQjy4zMjuZJiUdovmkoF0%3D)
208
+
197
209
  ### Moderations
198
210
 
199
211
  Pass a string to check if it violates OpenAI's Content Policy:
@@ -260,7 +272,7 @@ Or use the ID of a file you've uploaded:
260
272
 
261
273
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
262
274
 
263
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, update `CHANGELOG.md`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
275
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, update `CHANGELOG.md`, run `bundle install` to update Gemfile.lock, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
264
276
 
265
277
  ## Contributing
266
278
 
@@ -54,6 +54,10 @@ module OpenAI
54
54
  @finetunes ||= OpenAI::Finetunes.new(access_token: @access_token)
55
55
  end
56
56
 
57
+ def images
58
+ @images ||= OpenAI::Images.new(access_token: @access_token)
59
+ end
60
+
57
61
  def models
58
62
  @models ||= OpenAI::Models.new(access_token: @access_token)
59
63
  end
@@ -0,0 +1,27 @@
1
+ module OpenAI
2
+ class Images
3
+ include HTTParty
4
+ base_uri "https://api.openai.com"
5
+
6
+ def initialize(access_token: nil)
7
+ @access_token = access_token || ENV.fetch("OPENAI_ACCESS_TOKEN")
8
+ end
9
+
10
+ def generate(version: default_version, parameters: {})
11
+ self.class.post(
12
+ "/#{version}/images/generations",
13
+ headers: {
14
+ "Content-Type" => "application/json",
15
+ "Authorization" => "Bearer #{@access_token}"
16
+ },
17
+ body: parameters.to_json
18
+ )
19
+ end
20
+
21
+ private
22
+
23
+ def default_version
24
+ "v1".freeze
25
+ end
26
+ end
27
+ end
@@ -1,5 +1,5 @@
1
1
  module Ruby
2
2
  module OpenAI
3
- VERSION = "2.0.1".freeze
3
+ VERSION = "2.1.0".freeze
4
4
  end
5
5
  end
data/lib/ruby/openai.rb CHANGED
@@ -2,6 +2,7 @@ require "httparty"
2
2
  require "ruby/openai/engines"
3
3
  require "ruby/openai/files"
4
4
  require "ruby/openai/finetunes"
5
+ require "ruby/openai/images"
5
6
  require "ruby/openai/models"
6
7
  require "ruby/openai/client"
7
8
  require "ruby/openai/version"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-22 00:00:00.000000000 Z
11
+ date: 2022-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -80,6 +80,7 @@ files:
80
80
  - lib/ruby/openai/engines.rb
81
81
  - lib/ruby/openai/files.rb
82
82
  - lib/ruby/openai/finetunes.rb
83
+ - lib/ruby/openai/images.rb
83
84
  - lib/ruby/openai/models.rb
84
85
  - lib/ruby/openai/version.rb
85
86
  - pull_request_template.md