omniai-openai 2.2.3 → 2.6.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: 98cf808de463ad6825ed41da23b22acc3ad7ce576e6055e462bcace5c512e03f
4
- data.tar.gz: 6f8cef7e79b6cdaaa56074e1872f00ad78acb042ff68b504b37d36d1c3aa5bb6
3
+ metadata.gz: 6b2b17419e2fcf67615b1337c48ad0d54ce3ed4dbe50f1efe4714a1b1dd191f7
4
+ data.tar.gz: 27389fbf4d2f6d165dc3d3303d10d22634c51ad5f3f19e3f2ea81937df465952
5
5
  SHA512:
6
- metadata.gz: 80f36f1da0702bcf2713ba4657fba65fdcb05c012c3913dd41f4f088e676dee285f5107950edf659997faf38fe0acf08f09fac314c72fa4f870f132152cddb07
7
- data.tar.gz: 2ad8a187622756ff37e09a72289fc2be43f6fe52d2f647dbaf99f9a84b89191b26c4b82c8d66a40000cf5472851a9feab6ee30b51c0b571f0634f142e4675a61
6
+ metadata.gz: 7c2402ed2001fb3681ce6cd07c1216699fb7247c21ec987d00812d474a31f28a8e953f0122b5c33a88939ad8dccf0d851e6fd130aa64c70b7dff8a2ef6dee139
7
+ data.tar.gz: 5f07f0d0e329480f49290709b0c824b22322185023dc1653722c80bf7e4ef7b905c12be5a489a4fbfb557876539f5cfa402f802438c606485117ceb3fbe9702e
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ source "https://rubygems.org"
5
5
  gemspec
6
6
 
7
7
  gem "rake"
8
+ gem "redcarpet"
8
9
  gem "rspec"
9
10
  gem "rspec_junit_formatter"
10
11
  gem "rubocop"
@@ -12,9 +12,14 @@ 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
19
24
  GPT_4_1 = "gpt-4.1"
20
25
  GPT_4_1_NANO = "gpt-4.1-nano"
@@ -52,7 +57,7 @@ module OmniAI
52
57
  OmniAI::OpenAI.config.chat_options.merge({
53
58
  messages: @prompt.serialize,
54
59
  model: @model,
55
- response_format: (JSON_RESPONSE_FORMAT if @format.eql?(:json)),
60
+ response_format:,
56
61
  stream: stream? || nil,
57
62
  stream_options: (DEFAULT_STREAM_OPTIONS if stream?),
58
63
  temperature:,
@@ -64,6 +69,20 @@ module OmniAI
64
69
  def path
65
70
  "#{@client.api_prefix}/#{OmniAI::OpenAI::Client::VERSION}/chat/completions"
66
71
  end
72
+
73
+ # @raise [ArgumentError]
74
+ #
75
+ # @return [Hash, nil]
76
+ def response_format
77
+ return if @format.nil?
78
+
79
+ case @format
80
+ when :text then { type: ResponseFormat::TEXT_TYPE }
81
+ when :json then { type: ResponseFormat::JSON_TYPE }
82
+ when OmniAI::Schema::Format then { type: ResponseFormat::SCHEMA_TYPE, json_schema: @format.serialize }
83
+ else raise ArgumentError, "unknown format=#{@format}"
84
+ end
85
+ end
67
86
  end
68
87
  end
69
88
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OmniAI
4
4
  module OpenAI
5
- VERSION = "2.2.3"
5
+ VERSION = "2.6.0"
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.3
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Sylvestre
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-04-16 00:00:00.000000000 Z
10
+ date: 2025-05-08 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