omniai-openai 2.0.2 → 2.2.1

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: 7a72db6a7c7cf0bf217587a4bbc6fe898b0135bca9d17741da1efe4e986b0779
4
- data.tar.gz: 457e59ec6fae1987ee136382ce336f67030b833dbb387f4e042e01d4a1391b92
3
+ metadata.gz: 4e2f8abd4ab84e6ac9dca180b3b3cd438dec14151eab244efe8b887fc0dcd72f
4
+ data.tar.gz: 1253cb89b69b83cfff4953ff83c9ef2d98208de6489aa4c5b58a4a889dbfe3e4
5
5
  SHA512:
6
- metadata.gz: 021313314cbe8160a738a86e5d85ad81b4068b344a6090bc82812e4c823b2ac626c34c72ec22c3885f5e045046fb5ce0104bbe02f183bd2874bf2d1531e770d1
7
- data.tar.gz: b1aa2fe850b46cda6f4032dea35fd28c9e9c78ed86785cfb6cdc3befd373df82119a5d40b9c301a1ca7255a202e6cad1a4a761818ff6d4cd66d7864bf6ae8789
6
+ metadata.gz: 9859656009bc5d111a936ca9cccdc12ae02276d497968f82d4055b4e8008f2061be843a554bdeab1fb18c60f4e697b0c37e7a09e6813c4181052ff3746f5e4fd
7
+ data.tar.gz: 21390a1b140bf80565770fc40b5c7f5036da042c3932e4e84819adf49f00c4b7141db610b067f4a8ced3809c2a6641a5731e994622bdff3463f3592eb2f0a2d0
@@ -13,6 +13,7 @@ module OmniAI
13
13
  # completion.choice.message.content # '...'
14
14
  class Chat < OmniAI::Chat
15
15
  JSON_RESPONSE_FORMAT = { type: "json_object" }.freeze
16
+ DEFAULT_STREAM_OPTIONS = { include_usage: ENV.fetch("OMNIAI_STREAM_USAGE", "on").eql?("on") }.freeze
16
17
 
17
18
  module Model
18
19
  GPT_4O = "gpt-4o"
@@ -22,7 +23,6 @@ module OmniAI
22
23
  GPT_3_5_TURBO = "gpt-3.5-turbo"
23
24
  O1_MINI = "o1-mini"
24
25
  O3_MINI = "o3-mini"
25
- O1_PREVIEW = "o1-preview"
26
26
  O1 = "o1"
27
27
  end
28
28
 
@@ -30,14 +30,27 @@ module OmniAI
30
30
 
31
31
  protected
32
32
 
33
+ # @return [Float, nil]
34
+ def temperature
35
+ return if @temperature.nil?
36
+
37
+ if [Model::O1_MINI, Model::O3_MINI, Model::O1].any? { |model| model.eql?(@model) }
38
+ logger&.warn("unsupported temperature=#{@temperature} for model=#{@model}")
39
+ return
40
+ end
41
+
42
+ @temperature
43
+ end
44
+
33
45
  # @return [Hash]
34
46
  def payload
35
47
  OmniAI::OpenAI.config.chat_options.merge({
36
48
  messages: @prompt.serialize,
37
49
  model: @model,
38
- stream: @stream.nil? ? nil : !@stream.nil?,
39
- temperature: @temperature,
40
50
  response_format: (JSON_RESPONSE_FORMAT if @format.eql?(:json)),
51
+ stream: stream? || nil,
52
+ stream_options: (DEFAULT_STREAM_OPTIONS if stream?),
53
+ temperature:,
41
54
  tools: (@tools.map(&:serialize) if @tools&.any?),
42
55
  }).compact
43
56
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniAI
4
4
  module OpenAI
5
- VERSION = "2.0.2"
5
+ VERSION = "2.2.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniai-openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Sylvestre
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-03-21 00:00:00.000000000 Z
10
+ date: 2025-04-14 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: event_stream_parser
@@ -29,14 +29,14 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '2.0'
32
+ version: '2.2'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '2.0'
39
+ version: '2.2'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: zeitwerk
42
42
  requirement: !ruby/object:Gem::Requirement