openai_ruby 0.4.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44aa28c19d62f59334f0a7de177963fb8dd7cc25a92b402d8b37a2e89e9cfe00
4
- data.tar.gz: 1793600ba3bd77d66efbae21f9af9a9b08a7072c652eaf9dbbd1f1903059f594
3
+ metadata.gz: 993cd595abab23a3adf953bc58dfc31915033462470b52ee73d91682c3413bdb
4
+ data.tar.gz: 34c1663c6d5ccfd01df64c8138ff8afeb832abdf4696de8c656e1406dbb0d4a0
5
5
  SHA512:
6
- metadata.gz: f4740f041c58594e3a09a8aaefaa598906123314068253694c96e2d4f092a4fc5d05f9627c5b6093c1aaf656dc98780526b5f2d84c83d356af5d906e5c5bf348
7
- data.tar.gz: 72ec3ffe01751c395d689e56cac0947231e2f5022371e7d79dbf113a1abd5df7b9f17072cfbb88171fd79fe499860e3e0e067ba09c7a40e09e6575b80565c886
6
+ metadata.gz: 55226355ab57831863809c0ee3412786625dc0237ec56719b50c7e2355ec1bdea4d305e79a50db382b78d36b75e6a94ffbc1297132ee727027f6454111e6d8a5
7
+ data.tar.gz: fd707c5a8cec4369ed673932bfe5e7ababca59f85d4a06aee7f180a9e0e28e3cfbb98fe2366335e091f40857fa1a568b789b2ad7cc29d81ebdf7cf500aeffa77
data/.rubocop.yml CHANGED
@@ -19,4 +19,7 @@ Style/FrozenStringLiteralComment:
19
19
  Enabled: false
20
20
 
21
21
  Metrics/MethodLength:
22
- Max: 15
22
+ Max: 20
23
+
24
+ Metrics/AbcSize:
25
+ Max: 25
data/Gemfile CHANGED
@@ -9,5 +9,5 @@ gem "rake", "~> 13.0"
9
9
 
10
10
  gem "rspec", "~> 3.12"
11
11
 
12
- gem "rubocop", "~> 1.45"
13
12
  gem "event_stream_parser"
13
+ gem "rubocop", "~> 1.45"
data/README.md CHANGED
@@ -32,7 +32,7 @@ client = OpenAI::Client.new("your OpenAI key here")
32
32
  Or you can pass a hash of options to customize the connection:
33
33
 
34
34
  ```ruby
35
- client = OpenAI::Client.new("your OpenAI key here", { request: { timeout: 20 } })
35
+ client = OpenAI::Client.new("your OpenAI key here", { base_uri: "https://example.com", request: { timeout: 20 } })
36
36
  ```
37
37
 
38
38
  For more options check [here](https://lostisland.github.io/faraday/#/customization/connection-options)
@@ -2,18 +2,19 @@
2
2
 
3
3
  module OpenAI
4
4
  class Client
5
- BASE_URL = "https://api.openai.com"
5
+ DEFAULT_BASE_URI = "https://api.openai.com"
6
6
 
7
- attr_reader :api_key, :options
7
+ attr_reader :api_key, :options, :base_uri
8
8
 
9
9
  def initialize(api_key, options = {})
10
10
  @api_key = api_key
11
11
  @options = options
12
+ @base_uri = options[:base_uri] || DEFAULT_BASE_URI
12
13
  end
13
14
 
14
15
  def create_completion(params = {})
15
16
  Faraday.post(
16
- "#{BASE_URL}/v1/completions",
17
+ "#{base_uri}/v1/completions",
17
18
  params.to_json,
18
19
  headers
19
20
  )
@@ -26,7 +27,7 @@ module OpenAI
26
27
  if params["stream"]
27
28
  connection.post("/v1/chat/completions") do |req|
28
29
  req.body = params.to_json
29
- req.options.on_data = proc do |chunk, overall_received_bytes, env|
30
+ req.options.on_data = proc do |chunk, _overall_received_bytes, env|
30
31
  if env && env.status != 200
31
32
  raise_error = Faraday::Response::RaiseError.new
32
33
  raise_error.on_complete(env.merge(body: try_parse_json(chunk)))
@@ -44,7 +45,7 @@ module OpenAI
44
45
 
45
46
  def create_edit(params = {})
46
47
  Faraday.post(
47
- "#{BASE_URL}/v1/edits",
48
+ "#{base_uri}/v1/edits",
48
49
  params.to_json,
49
50
  headers
50
51
  )
@@ -57,13 +58,13 @@ module OpenAI
57
58
  private
58
59
 
59
60
  def connection
60
- Faraday.new({ url: BASE_URL, headers: headers }.merge(options))
61
+ Faraday.new({ url: base_uri, headers: headers }.merge(options))
61
62
  end
62
63
 
63
64
  def headers
64
65
  {
65
66
  "Content-Type" => "application/json",
66
- "Authorization" => "Bearer #{api_key}"
67
+ "Authorization" => "Bearer #{api_key}",
67
68
  }
68
69
  end
69
70
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.4.0"
4
+ VERSION = "0.4.2"
5
5
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openai_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Renny Ren
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-23 00:00:00.000000000 Z
11
+ date: 2025-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: faraday
14
+ name: event_stream_parser
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.7'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.7'
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: event_stream_parser
28
+ name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: '2.7'
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: '1.0'
40
+ version: '2.7'
41
41
  description:
42
42
  email:
43
43
  - rennyrjh@gmail.com
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  requirements: []
84
- rubygems_version: 3.4.1
84
+ rubygems_version: 3.4.19
85
85
  signing_key:
86
86
  specification_version: 4
87
87
  summary: A Ruby wrapper for OpenAI API