ruby-openai 3.0.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73d5bf4fb81e5c4901998a20fcebc52a0f2c81edc12e7e8abac06a2171dd5c6e
4
- data.tar.gz: 4775fd5959d4c5949cec0a02212a73ddc2b3af8cde3f1f9d996bcd3c71031c62
3
+ metadata.gz: 3bd89bdf882febca95eb2a6ca2d0d28afda7fa0d73a369ee61cb56038376247c
4
+ data.tar.gz: 5e9ee20773b1322dc940655ed3cbd040a667f27337f0a310bb6bbd9db8df2931
5
5
  SHA512:
6
- metadata.gz: 1a8d81ddbb8e2542f968549ef4014600c7cd6fff78404501a7d72d322d823651842e0b0f1aaf96238d5a2ea870eda7e626c53652e21aba105703b062c746487c
7
- data.tar.gz: 3ff7ba70a3fc55b2e9e56144a221ac485e3d3c2854980a3b340aeffc4c0a544bed8a2506d7c71f387403482eb4c8565f4a6705dad582f47ea726593d4c82a135
6
+ metadata.gz: 40388adbfd46c7461f56d088dbc346206b1e44d27f32cfef766544dce0d76843723d10c4d050ed2564d8f940fc1daa0631084c412d10f75c7ee185f5cffbec43
7
+ data.tar.gz: a94573f8cfd2cd0a488746a1971e72a678d0761732c586c7d2d9ee4c74f7496d2a214d9c09b90371dc9cd86da6ddf64d58d91ff3bbb9c7eba70bb8f462e78e5c
data/.circleci/config.yml CHANGED
@@ -42,3 +42,4 @@ workflows:
42
42
  - cimg/ruby:2.7-node
43
43
  - cimg/ruby:3.0-node
44
44
  - cimg/ruby:3.1-node
45
+ - cimg/ruby:3.2-node
data/CHANGELOG.md CHANGED
@@ -5,6 +5,18 @@ 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
+ ## [3.0.3] - 2023-01-07
9
+
10
+ ### Added
11
+
12
+ - Add ability to run the specs without VCR cassettes using `NO_VCR=true bundle exec rspec`.
13
+ - Add Ruby 3.2 to CircleCI config - thanks [@petergoldstein](https://github.com/petergoldstein)!
14
+ - A bit of detail added to the README on DALLE image sizes - thanks [@ndemianc](https://github.com/ndemianc)!
15
+
16
+ ### Fixed
17
+
18
+ - Fix finetunes and files uploads endpoints - thanks [@chaadow](https://github.com/chaadow) for your PR on this and [@petergoldstein](https://github.com/petergoldstein) for the PR we ultimately went with.
19
+
8
20
  ## [3.0.2] - 2022-12-27
9
21
 
10
22
  ### Fixed
data/Gemfile CHANGED
@@ -7,6 +7,6 @@ gem "byebug", "~> 11.1.3"
7
7
  gem "dotenv", "~> 2.8.1"
8
8
  gem "rake", "~> 13.0"
9
9
  gem "rspec", "~> 3.12"
10
- gem "rubocop", "~> 1.41.1"
10
+ gem "rubocop", "~> 1.42.0"
11
11
  gem "vcr", "~> 6.1.0"
12
12
  gem "webmock", "~> 3.18.1"
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-openai (3.0.2)
5
- httparty (>= 0.18.1, < 0.21.0)
4
+ ruby-openai (3.0.3)
5
+ httparty (>= 0.18.1, < 0.22.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- addressable (2.8.0)
11
- public_suffix (>= 2.0.2, < 5.0)
10
+ addressable (2.8.1)
11
+ public_suffix (>= 2.0.2, < 6.0)
12
12
  ast (2.4.2)
13
13
  byebug (11.1.3)
14
14
  crack (0.4.5)
@@ -16,18 +16,16 @@ GEM
16
16
  diff-lcs (1.5.0)
17
17
  dotenv (2.8.1)
18
18
  hashdiff (1.0.1)
19
- httparty (0.20.0)
20
- mime-types (~> 3.0)
19
+ httparty (0.21.0)
20
+ mini_mime (>= 1.0.0)
21
21
  multi_xml (>= 0.5.2)
22
22
  json (2.6.3)
23
- mime-types (3.4.1)
24
- mime-types-data (~> 3.2015)
25
- mime-types-data (3.2022.0105)
23
+ mini_mime (1.1.2)
26
24
  multi_xml (0.6.0)
27
25
  parallel (1.22.1)
28
26
  parser (3.1.3.0)
29
27
  ast (~> 2.4.1)
30
- public_suffix (4.0.7)
28
+ public_suffix (5.0.1)
31
29
  rainbow (3.1.1)
32
30
  rake (13.0.6)
33
31
  regexp_parser (2.6.1)
@@ -38,24 +36,24 @@ GEM
38
36
  rspec-mocks (~> 3.12.0)
39
37
  rspec-core (3.12.0)
40
38
  rspec-support (~> 3.12.0)
41
- rspec-expectations (3.12.0)
39
+ rspec-expectations (3.12.1)
42
40
  diff-lcs (>= 1.2.0, < 2.0)
43
41
  rspec-support (~> 3.12.0)
44
- rspec-mocks (3.12.0)
42
+ rspec-mocks (3.12.1)
45
43
  diff-lcs (>= 1.2.0, < 2.0)
46
44
  rspec-support (~> 3.12.0)
47
45
  rspec-support (3.12.0)
48
- rubocop (1.41.1)
46
+ rubocop (1.42.0)
49
47
  json (~> 2.3)
50
48
  parallel (~> 1.10)
51
49
  parser (>= 3.1.2.1)
52
50
  rainbow (>= 2.2.2, < 4.0)
53
51
  regexp_parser (>= 1.8, < 3.0)
54
52
  rexml (>= 3.2.5, < 4.0)
55
- rubocop-ast (>= 1.23.0, < 2.0)
53
+ rubocop-ast (>= 1.24.1, < 2.0)
56
54
  ruby-progressbar (~> 1.7)
57
55
  unicode-display_width (>= 1.4.0, < 3.0)
58
- rubocop-ast (1.24.0)
56
+ rubocop-ast (1.24.1)
59
57
  parser (>= 3.1.1.0)
60
58
  ruby-progressbar (1.11.0)
61
59
  unicode-display_width (2.3.0)
@@ -73,7 +71,7 @@ DEPENDENCIES
73
71
  dotenv (~> 2.8.1)
74
72
  rake (~> 13.0)
75
73
  rspec (~> 3.12)
76
- rubocop (~> 1.41.1)
74
+ rubocop (~> 1.42.0)
77
75
  ruby-openai!
78
76
  vcr (~> 6.1.0)
79
77
  webmock (~> 3.18.1)
data/README.md CHANGED
@@ -202,10 +202,11 @@ This fine-tuned model name can then be used in completions:
202
202
 
203
203
  ### Image Generation
204
204
 
205
- Generate an image using DALL·E!
205
+ Generate an image using DALL·E! The size of any generated images must be one of `256x256`, `512x512` or `1024x1024` -
206
+ if not specified the image will default to `1024x1024`.
206
207
 
207
208
  ```ruby
208
- response = client.images.generate(parameters: { prompt: "A baby sea otter cooking pasta wearing a hat of some sort" })
209
+ response = client.images.generate(parameters: { prompt: "A baby sea otter cooking pasta wearing a hat of some sort", size: "256x256" })
209
210
  puts response.dig("data", 0, "url")
210
211
  => "https://oaidalleapiprodscus.blob.core.windows.net/private/org-Rf437IxKhh..."
211
212
  ```
@@ -249,9 +250,19 @@ Pass a string to check if it violates OpenAI's Content Policy:
249
250
 
250
251
  ## Development
251
252
 
252
- 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.
253
+ After checking out the repo, run `bin/setup` to install dependencies. You can run `bin/console` for an interactive prompt that will allow you to experiment.
253
254
 
254
- 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).
255
+ To install this gem onto your local machine, run `bundle exec rake install`.
256
+
257
+ ## Release
258
+
259
+ First run the specs without VCR so they actually hit the API. This will cost about 2 cents. You'll need to add your `OPENAI_ACCESS_TOKEN=` in `.env`.
260
+
261
+ ```
262
+ NO_VCR=true bundle exec rspec
263
+ ```
264
+
265
+ Then 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).
255
266
 
256
267
  ## Contributing
257
268
 
@@ -8,15 +8,15 @@ module OpenAI
8
8
  end
9
9
 
10
10
  def completions(parameters: {})
11
- OpenAI::Client.post(path: "/completions", parameters: parameters)
11
+ OpenAI::Client.json_post(path: "/completions", parameters: parameters)
12
12
  end
13
13
 
14
14
  def edits(parameters: {})
15
- OpenAI::Client.post(path: "/edits", parameters: parameters)
15
+ OpenAI::Client.json_post(path: "/edits", parameters: parameters)
16
16
  end
17
17
 
18
18
  def embeddings(parameters: {})
19
- OpenAI::Client.post(path: "/embeddings", parameters: parameters)
19
+ OpenAI::Client.json_post(path: "/embeddings", parameters: parameters)
20
20
  end
21
21
 
22
22
  def files
@@ -36,7 +36,7 @@ module OpenAI
36
36
  end
37
37
 
38
38
  def moderations(parameters: {})
39
- OpenAI::Client.post(path: "/moderations", parameters: parameters)
39
+ OpenAI::Client.json_post(path: "/moderations", parameters: parameters)
40
40
  end
41
41
 
42
42
  def self.get(path:)
@@ -46,11 +46,19 @@ module OpenAI
46
46
  )
47
47
  end
48
48
 
49
- def self.post(path:, parameters: nil)
49
+ def self.json_post(path:, parameters:)
50
50
  HTTParty.post(
51
51
  uri(path: path),
52
52
  headers: headers,
53
- body: parameters.to_json
53
+ body: parameters&.to_json
54
+ )
55
+ end
56
+
57
+ def self.multipart_post(path:, parameters: nil)
58
+ HTTParty.post(
59
+ uri(path: path),
60
+ headers: headers.merge({ "Content-Type" => "multipart/form-data" }),
61
+ body: parameters
54
62
  )
55
63
  end
56
64
 
@@ -12,7 +12,7 @@ module OpenAI
12
12
  def upload(parameters: {})
13
13
  validate(file: parameters[:file])
14
14
 
15
- OpenAI::Client.post(
15
+ OpenAI::Client.multipart_post(
16
16
  path: "/files",
17
17
  parameters: parameters.merge(file: File.open(parameters[:file]))
18
18
  )
@@ -10,7 +10,7 @@ module OpenAI
10
10
  end
11
11
 
12
12
  def create(parameters: {})
13
- OpenAI::Client.post(path: "/fine-tunes", parameters: parameters)
13
+ OpenAI::Client.json_post(path: "/fine-tunes", parameters: parameters)
14
14
  end
15
15
 
16
16
  def retrieve(id:)
@@ -18,7 +18,7 @@ module OpenAI
18
18
  end
19
19
 
20
20
  def cancel(id:)
21
- OpenAI::Client.post(path: "/fine-tunes/#{id}/cancel")
21
+ OpenAI::Client.multipart_post(path: "/fine-tunes/#{id}/cancel")
22
22
  end
23
23
 
24
24
  def events(id:)
@@ -6,15 +6,15 @@ module OpenAI
6
6
  end
7
7
 
8
8
  def generate(parameters: {})
9
- OpenAI::Client.post(path: "/images/generations", parameters: parameters)
9
+ OpenAI::Client.json_post(path: "/images/generations", parameters: parameters)
10
10
  end
11
11
 
12
12
  def edit(parameters: {})
13
- OpenAI::Client.post(path: "/images/edits", parameters: open_files(parameters))
13
+ OpenAI::Client.multipart_post(path: "/images/edits", parameters: open_files(parameters))
14
14
  end
15
15
 
16
16
  def variations(parameters: {})
17
- OpenAI::Client.post(path: "/images/variations", parameters: open_files(parameters))
17
+ OpenAI::Client.multipart_post(path: "/images/variations", parameters: open_files(parameters))
18
18
  end
19
19
 
20
20
  private
@@ -1,5 +1,5 @@
1
1
  module Ruby
2
2
  module OpenAI
3
- VERSION = "3.0.2".freeze
3
+ VERSION = "3.0.3".freeze
4
4
  end
5
5
  end
data/ruby-openai.gemspec CHANGED
@@ -25,5 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ["lib"]
27
27
 
28
- spec.add_dependency "httparty", ">= 0.18.1", "< 0.21.0"
28
+ spec.add_dependency "httparty", ">= 0.18.1", "< 0.22.0"
29
29
  end
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: 3.0.2
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-27 00:00:00.000000000 Z
11
+ date: 2023-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 0.18.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 0.21.0
22
+ version: 0.22.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: 0.18.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.21.0
32
+ version: 0.22.0
33
33
  description:
34
34
  email:
35
35
  - alexrudall@users.noreply.github.com
@@ -44,7 +44,6 @@ files:
44
44
  - ".gitignore"
45
45
  - ".rspec"
46
46
  - ".rubocop.yml"
47
- - ".travis.yml"
48
47
  - CHANGELOG.md
49
48
  - CODE_OF_CONDUCT.md
50
49
  - CONTRIBUTING.md
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.7.1
6
- before_install: gem install bundler -v 2.1.4