omniai-openai 2.2.4 → 2.6.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: 94a9036528d14b80accd3c2ce21a96938349c643ee624e1f61b1cfbb8fb1572d
4
- data.tar.gz: cef3938da4a6f1f5b0381436a405d3ff89e60b8a43d4635bac9b35f65e591ee1
3
+ metadata.gz: e2a82f5aa43b981c17fb2464d2df62118de751be2bc3ac29b12c07a67f500f84
4
+ data.tar.gz: a2260b1de24f96c58ed2611ecbe6b477c7da4ab8f3a378b1535c8140eb4156d4
5
5
  SHA512:
6
- metadata.gz: bd3e47dcf726eb6ffed15017cfb4cf76da779ca9bb7b18d91b0d47aff92e495b9c0d3f239b6ff9cb4a933fb65bc8f9f801a30724e474df3b2a7df6e00770c876
7
- data.tar.gz: 1b9bc9610108d7a2bdc89f61a100a26882d1fbb52ae69db136199bbe9242acf1fad40333d8c66be355c2450fb92fc05cbd64a29cefa413c264b8d8c040aa4549
6
+ metadata.gz: f70f8eecfb376ccf582628139e992cf5f52de35e1cc3886da01400fb4cf2d086df4c97637df20c9e6b2d92d09159719b970e8c623876621b690c8226c74d74e3
7
+ data.tar.gz: 7cb2a40052bd07117d660755e6827639ba11ed9cac4fffae8b473b07fd5f5677d9c8b72f969c826b91ff5ee07ae3daadb6b7431af37c2d0e0007dff850086dcd
@@ -12,10 +12,18 @@ module OmniAI
12
12
  # end
13
13
  # completion.choice.message.content # '...'
14
14
  class Chat < OmniAI::Chat
15
- JSON_RESPONSE_FORMAT = { type: "json_object" }.freeze
16
15
  DEFAULT_STREAM_OPTIONS = { include_usage: ENV.fetch("OMNIAI_STREAM_USAGE", "on").eql?("on") }.freeze
17
16
 
17
+ module ResponseFormat
18
+ TEXT_TYPE = "text"
19
+ JSON_TYPE = "json_object"
20
+ SCHEMA_TYPE = "json_schema"
21
+ end
22
+
18
23
  module Model
24
+ GPT_5 = "gpt-5"
25
+ GPT_5_MINI = "gpt-5-mini"
26
+ GPT_5_NANO = "gpt-5-nano"
19
27
  GPT_4_1 = "gpt-4.1"
20
28
  GPT_4_1_NANO = "gpt-4.1-nano"
21
29
  GPT_4_1_MINI = "gpt-4.1-mini"
@@ -52,7 +60,7 @@ module OmniAI
52
60
  OmniAI::OpenAI.config.chat_options.merge({
53
61
  messages: @prompt.serialize,
54
62
  model: @model,
55
- response_format: (JSON_RESPONSE_FORMAT if @format.eql?(:json)),
63
+ response_format:,
56
64
  stream: stream? || nil,
57
65
  stream_options: (DEFAULT_STREAM_OPTIONS if stream?),
58
66
  temperature:,
@@ -64,6 +72,20 @@ module OmniAI
64
72
  def path
65
73
  "#{@client.api_prefix}/#{OmniAI::OpenAI::Client::VERSION}/chat/completions"
66
74
  end
75
+
76
+ # @raise [ArgumentError]
77
+ #
78
+ # @return [Hash, nil]
79
+ def response_format
80
+ return if @format.nil?
81
+
82
+ case @format
83
+ when :text then { type: ResponseFormat::TEXT_TYPE }
84
+ when :json then { type: ResponseFormat::JSON_TYPE }
85
+ when OmniAI::Schema::Format then { type: ResponseFormat::SCHEMA_TYPE, json_schema: @format.serialize }
86
+ else raise ArgumentError, "unknown format=#{@format}"
87
+ end
88
+ end
67
89
  end
68
90
  end
69
91
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniAI
4
4
  module OpenAI
5
- VERSION = "2.2.4"
5
+ VERSION = "2.6.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.2.4
4
+ version: 2.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Sylvestre
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-04-23 00:00:00.000000000 Z
10
+ date: 1980-01-02 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.2'
32
+ version: '2.6'
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.2'
39
+ version: '2.6'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: zeitwerk
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0'
106
106
  requirements: []
107
- rubygems_version: 3.6.3
107
+ rubygems_version: 3.6.9
108
108
  specification_version: 4
109
109
  summary: A generalized framework for interacting with OpenAI
110
110
  test_files: []