quick_openai 0.1.0 → 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/.rubocop.yml +1 -1
- data/Gemfile.lock +8 -11
- data/lib/quick_openai/version.rb +1 -1
- data/lib/quick_openai.rb +27 -11
- data/quick_openai.gemspec +37 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29998848a279d5254494c77b0381b039d2e9dc0171f4740953cbeab517a9e9f6
|
4
|
+
data.tar.gz: 9d44c2630df9557fc3c26cfb9058ec4d4082c74d12df674187a7e4701fd9740a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f05ad7ba4632fafb68cf8e2e156e18d5bd5af12e7e2fb4c96cc7e5430cce5ee46d7f34939e3503653fd9d25bfe8e125bbbfd6e93bea9d9d53e3eab16503f6186
|
7
|
+
data.tar.gz: 7b40b2825d4e0b5e4563f8dbeb91aa44e44e6f1952197899a190625789fda06e5079e6cb49d0c09925619e987bc25833ecccf32b4091d7f5727458f30fe8b197
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
quick_openai (0.1.
|
4
|
+
quick_openai (0.1.2)
|
5
5
|
down (~> 5)
|
6
|
-
ruby-openai (~>
|
6
|
+
ruby-openai (~> 3)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
@@ -13,15 +13,13 @@ GEM
|
|
13
13
|
ast (2.4.2)
|
14
14
|
diff-lcs (1.5.0)
|
15
15
|
dotenv (2.8.1)
|
16
|
-
down (5.
|
16
|
+
down (5.4.0)
|
17
17
|
addressable (~> 2.8)
|
18
|
-
httparty (0.
|
19
|
-
|
18
|
+
httparty (0.21.0)
|
19
|
+
mini_mime (>= 1.0.0)
|
20
20
|
multi_xml (>= 0.5.2)
|
21
21
|
json (2.6.3)
|
22
|
-
|
23
|
-
mime-types-data (~> 3.2015)
|
24
|
-
mime-types-data (3.2022.0105)
|
22
|
+
mini_mime (1.1.2)
|
25
23
|
multi_xml (0.6.0)
|
26
24
|
parallel (1.22.1)
|
27
25
|
parser (3.1.3.0)
|
@@ -56,9 +54,8 @@ GEM
|
|
56
54
|
unicode-display_width (>= 1.4.0, < 3.0)
|
57
55
|
rubocop-ast (1.24.0)
|
58
56
|
parser (>= 3.1.1.0)
|
59
|
-
ruby-openai (
|
60
|
-
|
61
|
-
httparty (>= 0.18.1, < 0.21.0)
|
57
|
+
ruby-openai (3.0.3)
|
58
|
+
httparty (>= 0.18.1, < 0.22.0)
|
62
59
|
ruby-progressbar (1.11.0)
|
63
60
|
unicode-display_width (2.3.0)
|
64
61
|
vcr (6.1.0)
|
data/lib/quick_openai/version.rb
CHANGED
data/lib/quick_openai.rb
CHANGED
@@ -8,22 +8,38 @@ require_relative "quick_openai/extensions/string"
|
|
8
8
|
module QuickOpenAI
|
9
9
|
class Error < StandardError; end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
class << self
|
12
|
+
def client
|
13
|
+
OpenAI::Client.new(access_token: ENV["OPENAI_ACCESS_TOKEN"])
|
14
|
+
end
|
15
|
+
|
16
|
+
def fetch_response_from_client
|
17
|
+
ensure_access_token!
|
14
18
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
19
|
+
begin
|
20
|
+
response = yield client
|
21
|
+
rescue StandardError
|
22
|
+
raise QuickOpenAI::Error, "Unable to fetch response."
|
23
|
+
end
|
24
|
+
|
25
|
+
ensure_no_error!(response)
|
26
|
+
|
27
|
+
response
|
20
28
|
end
|
21
29
|
|
22
|
-
|
23
|
-
|
30
|
+
private
|
31
|
+
|
32
|
+
def ensure_access_token!
|
33
|
+
return if ENV.key?("OPENAI_ACCESS_TOKEN")
|
34
|
+
|
35
|
+
raise QuickOpenAI::Error, "Make sure OPENAI_ACCESS_TOKEN is present in ENV."
|
24
36
|
end
|
25
37
|
|
26
|
-
response
|
38
|
+
def ensure_no_error!(response)
|
39
|
+
return unless (error = response.dig("error", "message"))
|
40
|
+
|
41
|
+
raise QuickOpenAI::Error, "Unable to fetch response: #{error}"
|
42
|
+
end
|
27
43
|
end
|
28
44
|
end
|
29
45
|
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/quick_openai/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "quick_openai"
|
7
|
+
spec.version = QuickOpenAI::VERSION
|
8
|
+
spec.authors = ["John DeSilva"]
|
9
|
+
spec.email = ["desilvjo@umich.edu"]
|
10
|
+
|
11
|
+
spec.summary = "Convenience extensions for using OpenAI with Ruby"
|
12
|
+
spec.description = "Provides monkey patches for quick usage of GPT3 and DALLE2"
|
13
|
+
spec.homepage = "https://github.com/Aesthetikx/quick_openai"
|
14
|
+
spec.license = "MIT"
|
15
|
+
spec.required_ruby_version = ">= 2.7.0"
|
16
|
+
|
17
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
18
|
+
spec.metadata["source_code_uri"] = "https://github.com/Aesthetikx/quick_openai"
|
19
|
+
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
20
|
+
|
21
|
+
# Specify which files should be added to the gem when it is released.
|
22
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
23
|
+
spec.files = Dir.chdir(__dir__) do
|
24
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
25
|
+
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci|github)|appveyor)})
|
26
|
+
end
|
27
|
+
end
|
28
|
+
spec.bindir = "exe"
|
29
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ["lib"]
|
31
|
+
|
32
|
+
spec.add_dependency "down", "~> 5"
|
33
|
+
spec.add_dependency "ruby-openai", "~> 3"
|
34
|
+
|
35
|
+
# For more information and examples about making a new gem, check out our
|
36
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
37
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick_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
|
- John DeSilva
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: down
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '3'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '3'
|
41
41
|
description: Provides monkey patches for quick usage of GPT3 and DALLE2
|
42
42
|
email:
|
43
43
|
- desilvjo@umich.edu
|
@@ -59,6 +59,7 @@ files:
|
|
59
59
|
- lib/quick_openai/extensions/string.rb
|
60
60
|
- lib/quick_openai/gpt3.rb
|
61
61
|
- lib/quick_openai/version.rb
|
62
|
+
- quick_openai.gemspec
|
62
63
|
- sig/quick_openai.rbs
|
63
64
|
homepage: https://github.com/Aesthetikx/quick_openai
|
64
65
|
licenses:
|