ruby-openai 3.0.3 → 3.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: 3bd89bdf882febca95eb2a6ca2d0d28afda7fa0d73a369ee61cb56038376247c
4
- data.tar.gz: 5e9ee20773b1322dc940655ed3cbd040a667f27337f0a310bb6bbd9db8df2931
3
+ metadata.gz: 7fc83568b242ec1d301ebe76a0eeb5a22485f94cb287df47b92c1a46f47c193d
4
+ data.tar.gz: 2736973c009f727093c14960cb1468e00f3af357281ea8bba237d82da7d39ff4
5
5
  SHA512:
6
- metadata.gz: 40388adbfd46c7461f56d088dbc346206b1e44d27f32cfef766544dce0d76843723d10c4d050ed2564d8f940fc1daa0631084c412d10f75c7ee185f5cffbec43
7
- data.tar.gz: a94573f8cfd2cd0a488746a1971e72a678d0761732c586c7d2d9ee4c74f7496d2a214d9c09b90371dc9cd86da6ddf64d58d91ff3bbb9c7eba70bb8f462e78e5c
6
+ metadata.gz: 8056501328713524128f12120f3d005f4d980d1d73cedb2f0994ac59cb2e5c52fc43ddc12519640ac2834eaa61c774888c5e59e31b8035ba22cc7f09ddbffc6f
7
+ data.tar.gz: be7f713a587469f977615f16f03161252c9a729f79ff9e73e1b09c365fb52266d3c4c329630f226a6f56fe2cc2fe7f5346e00d9503470095cf1b9922ba084218
data/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ 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.1.0] - 2023-02-13
9
+
10
+ ### Added
11
+
12
+ - Add Finetunes#delete endpoint - thanks [@lancecarlson](https://github.com/lancecarlson) for flagging this.
13
+ - Add VCR header and body matching - thanks [@petergoldstein](https://github.com/petergoldstein)!
14
+
15
+ ### Fixed
16
+
17
+ - Update File#upload specs to remove deprecated `answers` purpose.
18
+
8
19
  ## [3.0.3] - 2023-01-07
9
20
 
10
21
  ### Added
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.42.0"
10
+ gem "rubocop", "~> 1.45.1"
11
11
  gem "vcr", "~> 6.1.0"
12
12
  gem "webmock", "~> 3.18.1"
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-openai (3.0.3)
5
- httparty (>= 0.18.1, < 0.22.0)
4
+ ruby-openai (3.1.0)
5
+ httparty (>= 0.18.1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -23,12 +23,12 @@ GEM
23
23
  mini_mime (1.1.2)
24
24
  multi_xml (0.6.0)
25
25
  parallel (1.22.1)
26
- parser (3.1.3.0)
26
+ parser (3.2.0.0)
27
27
  ast (~> 2.4.1)
28
28
  public_suffix (5.0.1)
29
29
  rainbow (3.1.1)
30
30
  rake (13.0.6)
31
- regexp_parser (2.6.1)
31
+ regexp_parser (2.7.0)
32
32
  rexml (3.2.5)
33
33
  rspec (3.12.0)
34
34
  rspec-core (~> 3.12.0)
@@ -36,27 +36,27 @@ GEM
36
36
  rspec-mocks (~> 3.12.0)
37
37
  rspec-core (3.12.0)
38
38
  rspec-support (~> 3.12.0)
39
- rspec-expectations (3.12.1)
39
+ rspec-expectations (3.12.2)
40
40
  diff-lcs (>= 1.2.0, < 2.0)
41
41
  rspec-support (~> 3.12.0)
42
- rspec-mocks (3.12.1)
42
+ rspec-mocks (3.12.3)
43
43
  diff-lcs (>= 1.2.0, < 2.0)
44
44
  rspec-support (~> 3.12.0)
45
45
  rspec-support (3.12.0)
46
- rubocop (1.42.0)
46
+ rubocop (1.45.1)
47
47
  json (~> 2.3)
48
48
  parallel (~> 1.10)
49
- parser (>= 3.1.2.1)
49
+ parser (>= 3.2.0.0)
50
50
  rainbow (>= 2.2.2, < 4.0)
51
51
  regexp_parser (>= 1.8, < 3.0)
52
52
  rexml (>= 3.2.5, < 4.0)
53
53
  rubocop-ast (>= 1.24.1, < 2.0)
54
54
  ruby-progressbar (~> 1.7)
55
- unicode-display_width (>= 1.4.0, < 3.0)
55
+ unicode-display_width (>= 2.4.0, < 3.0)
56
56
  rubocop-ast (1.24.1)
57
57
  parser (>= 3.1.1.0)
58
58
  ruby-progressbar (1.11.0)
59
- unicode-display_width (2.3.0)
59
+ unicode-display_width (2.4.2)
60
60
  vcr (6.1.0)
61
61
  webmock (3.18.1)
62
62
  addressable (>= 2.8.0)
@@ -71,10 +71,10 @@ DEPENDENCIES
71
71
  dotenv (~> 2.8.1)
72
72
  rake (~> 13.0)
73
73
  rspec (~> 3.12)
74
- rubocop (~> 1.42.0)
74
+ rubocop (~> 1.45.1)
75
75
  ruby-openai!
76
76
  vcr (~> 6.1.0)
77
77
  webmock (~> 3.18.1)
78
78
 
79
79
  BUNDLED WITH
80
- 2.2.20
80
+ 2.4.5
data/README.md CHANGED
@@ -134,14 +134,14 @@ You can use the embeddings endpoint to get a vector of numbers representing an i
134
134
  Put your data in a `.jsonl` file like this:
135
135
 
136
136
  ```json
137
- {"text": "puppy A is happy", "metadata": "emotional state of puppy A"}
138
- {"text": "puppy B is sad", "metadata": "emotional state of puppy B"}
137
+ {"prompt":"Overjoyed with my new phone! ->", "completion":" positive"}
138
+ {"prompt":"@lakers disappoint for a third straight night ->", "completion":" negative"}
139
139
  ```
140
140
 
141
141
  and pass the path to `client.files.upload` to upload it to OpenAI, and then interact with it:
142
142
 
143
143
  ```ruby
144
- client.files.upload(parameters: { file: "path/to/puppy.jsonl", purpose: "search" })
144
+ client.files.upload(parameters: { file: "path/to/sentiment.jsonl", purpose: "fine-tune" })
145
145
  client.files.list
146
146
  client.files.retrieve(id: 123)
147
147
  client.files.delete(id: 123)
@@ -149,14 +149,7 @@ and pass the path to `client.files.upload` to upload it to OpenAI, and then inte
149
149
 
150
150
  ### Fine-tunes
151
151
 
152
- Put your fine-tuning data in a `.jsonl` file like this:
153
-
154
- ```json
155
- {"prompt":"Overjoyed with my new phone! ->", "completion":" positive"}
156
- {"prompt":"@lakers disappoint for a third straight night ->", "completion":" negative"}
157
- ```
158
-
159
- and pass the path to `client.files.upload` to upload it to OpenAI and get its ID:
152
+ Upload your fine-tuning data in a `.jsonl` file as above and get its ID:
160
153
 
161
154
  ```ruby
162
155
  response = client.files.upload(parameters: { file: "path/to/sentiment.jsonl", purpose: "fine-tune" })
@@ -200,6 +193,12 @@ This fine-tuned model name can then be used in completions:
200
193
  JSON.parse(response.body)["choices"].map { |c| c["text"] }
201
194
  ```
202
195
 
196
+ You can delete the fine-tuned model when you are done with it:
197
+
198
+ ```ruby
199
+ client.finetunes.delete(fine_tuned_model: fine_tuned_model)
200
+ ```
201
+
203
202
  ### Image Generation
204
203
 
205
204
  Generate an image using DALL·E! The size of any generated images must be one of `256x256`, `512x512` or `1024x1024` -
@@ -24,5 +24,13 @@ module OpenAI
24
24
  def events(id:)
25
25
  OpenAI::Client.get(path: "/fine-tunes/#{id}/events")
26
26
  end
27
+
28
+ def delete(fine_tuned_model:)
29
+ if fine_tuned_model.start_with?("ft-")
30
+ raise ArgumentError, "Please give a fine_tuned_model name, not a fine-tune ID"
31
+ end
32
+
33
+ OpenAI::Client.delete(path: "/models/#{fine_tuned_model}")
34
+ end
27
35
  end
28
36
  end
@@ -1,5 +1,5 @@
1
1
  module Ruby
2
2
  module OpenAI
3
- VERSION = "3.0.3".freeze
3
+ VERSION = "3.1.0".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.22.0"
28
+ spec.add_dependency "httparty", ">= 0.18.1"
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.3
4
+ version: 3.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: 2023-01-07 00:00:00.000000000 Z
11
+ date: 2023-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -17,9 +17,6 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.18.1
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: 0.22.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +24,6 @@ dependencies:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.18.1
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: 0.22.0
33
27
  description:
34
28
  email:
35
29
  - alexrudall@users.noreply.github.com
@@ -86,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
80
  - !ruby/object:Gem::Version
87
81
  version: '0'
88
82
  requirements: []
89
- rubygems_version: 3.2.33
83
+ rubygems_version: 3.4.5
90
84
  signing_key:
91
85
  specification_version: 4
92
86
  summary: A Ruby gem for the OpenAI GPT-3 API