openai 0.10.0 → 0.12.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.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/README.md +83 -7
  4. data/lib/openai/client.rb +11 -0
  5. data/lib/openai/errors.rb +3 -0
  6. data/lib/openai/helpers/streaming/events.rb +23 -0
  7. data/lib/openai/helpers/streaming/response_stream.rb +232 -0
  8. data/lib/openai/helpers/structured_output/parsed_json.rb +39 -0
  9. data/lib/openai/internal/stream.rb +2 -1
  10. data/lib/openai/internal/transport/base_client.rb +10 -2
  11. data/lib/openai/internal/type/base_stream.rb +3 -1
  12. data/lib/openai/models/all_models.rb +4 -0
  13. data/lib/openai/models/chat/chat_completion.rb +32 -31
  14. data/lib/openai/models/chat/chat_completion_chunk.rb +30 -29
  15. data/lib/openai/models/chat/chat_completion_message.rb +1 -1
  16. data/lib/openai/models/chat/chat_completion_message_tool_call.rb +1 -1
  17. data/lib/openai/models/chat/completion_create_params.rb +34 -31
  18. data/lib/openai/models/images_response.rb +92 -1
  19. data/lib/openai/models/responses/response.rb +59 -35
  20. data/lib/openai/models/responses/response_create_params.rb +64 -39
  21. data/lib/openai/models/responses/response_function_tool_call.rb +1 -1
  22. data/lib/openai/models/responses/response_function_web_search.rb +115 -1
  23. data/lib/openai/models/responses/response_includable.rb +8 -6
  24. data/lib/openai/models/responses/response_output_text.rb +1 -1
  25. data/lib/openai/models/responses/tool_choice_mcp.rb +40 -0
  26. data/lib/openai/models/responses/tool_choice_types.rb +0 -3
  27. data/lib/openai/models/responses_model.rb +4 -0
  28. data/lib/openai/models/webhooks/batch_cancelled_webhook_event.rb +84 -0
  29. data/lib/openai/models/webhooks/batch_completed_webhook_event.rb +84 -0
  30. data/lib/openai/models/webhooks/batch_expired_webhook_event.rb +84 -0
  31. data/lib/openai/models/webhooks/batch_failed_webhook_event.rb +84 -0
  32. data/lib/openai/models/webhooks/eval_run_canceled_webhook_event.rb +84 -0
  33. data/lib/openai/models/webhooks/eval_run_failed_webhook_event.rb +84 -0
  34. data/lib/openai/models/webhooks/eval_run_succeeded_webhook_event.rb +84 -0
  35. data/lib/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rb +85 -0
  36. data/lib/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rb +85 -0
  37. data/lib/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rb +85 -0
  38. data/lib/openai/models/webhooks/response_cancelled_webhook_event.rb +85 -0
  39. data/lib/openai/models/webhooks/response_completed_webhook_event.rb +85 -0
  40. data/lib/openai/models/webhooks/response_failed_webhook_event.rb +84 -0
  41. data/lib/openai/models/webhooks/response_incomplete_webhook_event.rb +85 -0
  42. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +59 -0
  43. data/lib/openai/models/webhooks/webhook_unwrap_params.rb +16 -0
  44. data/lib/openai/models.rb +2 -0
  45. data/lib/openai/resources/chat/completions.rb +14 -6
  46. data/lib/openai/resources/responses.rb +262 -81
  47. data/lib/openai/resources/webhooks.rb +124 -0
  48. data/lib/openai/streaming.rb +5 -0
  49. data/lib/openai/version.rb +1 -1
  50. data/lib/openai.rb +22 -0
  51. data/rbi/openai/client.rbi +3 -0
  52. data/rbi/openai/helpers/streaming/events.rbi +31 -0
  53. data/rbi/openai/helpers/streaming/response_stream.rbi +104 -0
  54. data/rbi/openai/internal/type/base_stream.rbi +8 -1
  55. data/rbi/openai/models/all_models.rbi +20 -0
  56. data/rbi/openai/models/chat/chat_completion.rbi +47 -42
  57. data/rbi/openai/models/chat/chat_completion_chunk.rbi +47 -42
  58. data/rbi/openai/models/chat/completion_create_params.rbi +51 -42
  59. data/rbi/openai/models/images_response.rbi +146 -0
  60. data/rbi/openai/models/responses/response.rbi +75 -44
  61. data/rbi/openai/models/responses/response_create_params.rbi +91 -55
  62. data/rbi/openai/models/responses/response_function_web_search.rbi +163 -0
  63. data/rbi/openai/models/responses/response_includable.rbi +17 -11
  64. data/rbi/openai/models/responses/tool_choice_mcp.rbi +53 -0
  65. data/rbi/openai/models/responses/tool_choice_types.rbi +0 -5
  66. data/rbi/openai/models/responses_model.rbi +20 -0
  67. data/rbi/openai/models/webhooks/batch_cancelled_webhook_event.rbi +154 -0
  68. data/rbi/openai/models/webhooks/batch_completed_webhook_event.rbi +154 -0
  69. data/rbi/openai/models/webhooks/batch_expired_webhook_event.rbi +150 -0
  70. data/rbi/openai/models/webhooks/batch_failed_webhook_event.rbi +149 -0
  71. data/rbi/openai/models/webhooks/eval_run_canceled_webhook_event.rbi +154 -0
  72. data/rbi/openai/models/webhooks/eval_run_failed_webhook_event.rbi +151 -0
  73. data/rbi/openai/models/webhooks/eval_run_succeeded_webhook_event.rbi +154 -0
  74. data/rbi/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rbi +158 -0
  75. data/rbi/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rbi +156 -0
  76. data/rbi/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rbi +158 -0
  77. data/rbi/openai/models/webhooks/response_cancelled_webhook_event.rbi +154 -0
  78. data/rbi/openai/models/webhooks/response_completed_webhook_event.rbi +154 -0
  79. data/rbi/openai/models/webhooks/response_failed_webhook_event.rbi +154 -0
  80. data/rbi/openai/models/webhooks/response_incomplete_webhook_event.rbi +155 -0
  81. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +40 -0
  82. data/rbi/openai/models/webhooks/webhook_unwrap_params.rbi +32 -0
  83. data/rbi/openai/models.rbi +2 -0
  84. data/rbi/openai/resources/chat/completions.rbi +34 -30
  85. data/rbi/openai/resources/responses.rbi +188 -39
  86. data/rbi/openai/resources/webhooks.rbi +68 -0
  87. data/rbi/openai/streaming.rbi +5 -0
  88. data/sig/openai/client.rbs +2 -0
  89. data/sig/openai/internal/type/base_stream.rbs +4 -0
  90. data/sig/openai/models/all_models.rbs +8 -0
  91. data/sig/openai/models/chat/chat_completion.rbs +2 -1
  92. data/sig/openai/models/chat/chat_completion_chunk.rbs +2 -1
  93. data/sig/openai/models/chat/completion_create_params.rbs +2 -1
  94. data/sig/openai/models/images_response.rbs +83 -0
  95. data/sig/openai/models/responses/response.rbs +13 -1
  96. data/sig/openai/models/responses/response_create_params.rbs +13 -1
  97. data/sig/openai/models/responses/response_function_web_search.rbs +54 -0
  98. data/sig/openai/models/responses/response_includable.rbs +7 -5
  99. data/sig/openai/models/responses/tool_choice_mcp.rbs +23 -0
  100. data/sig/openai/models/responses/tool_choice_types.rbs +0 -2
  101. data/sig/openai/models/responses_model.rbs +8 -0
  102. data/sig/openai/models/webhooks/batch_cancelled_webhook_event.rbs +66 -0
  103. data/sig/openai/models/webhooks/batch_completed_webhook_event.rbs +66 -0
  104. data/sig/openai/models/webhooks/batch_expired_webhook_event.rbs +66 -0
  105. data/sig/openai/models/webhooks/batch_failed_webhook_event.rbs +66 -0
  106. data/sig/openai/models/webhooks/eval_run_canceled_webhook_event.rbs +66 -0
  107. data/sig/openai/models/webhooks/eval_run_failed_webhook_event.rbs +66 -0
  108. data/sig/openai/models/webhooks/eval_run_succeeded_webhook_event.rbs +66 -0
  109. data/sig/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rbs +66 -0
  110. data/sig/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rbs +66 -0
  111. data/sig/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rbs +66 -0
  112. data/sig/openai/models/webhooks/response_cancelled_webhook_event.rbs +66 -0
  113. data/sig/openai/models/webhooks/response_completed_webhook_event.rbs +66 -0
  114. data/sig/openai/models/webhooks/response_failed_webhook_event.rbs +66 -0
  115. data/sig/openai/models/webhooks/response_incomplete_webhook_event.rbs +66 -0
  116. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +27 -0
  117. data/sig/openai/models/webhooks/webhook_unwrap_params.rbs +17 -0
  118. data/sig/openai/models.rbs +2 -0
  119. data/sig/openai/resources/responses.rbs +4 -0
  120. data/sig/openai/resources/webhooks.rbs +33 -0
  121. metadata +63 -2
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class ResponseCancelledWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp (in seconds) of when the model response was cancelled.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ # Event data payload.
21
+ #
22
+ # @return [OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent::Data]
23
+ required :data, -> { OpenAI::Webhooks::ResponseCancelledWebhookEvent::Data }
24
+
25
+ # @!attribute type
26
+ # The type of the event. Always `response.cancelled`.
27
+ #
28
+ # @return [Symbol, :"response.cancelled"]
29
+ required :type, const: :"response.cancelled"
30
+
31
+ # @!attribute object
32
+ # The object of the event. Always `event`.
33
+ #
34
+ # @return [Symbol, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent::Object, nil]
35
+ optional :object, enum: -> { OpenAI::Webhooks::ResponseCancelledWebhookEvent::Object }
36
+
37
+ # @!method initialize(id:, created_at:, data:, object: nil, type: :"response.cancelled")
38
+ # Some parameter documentations has been truncated, see
39
+ # {OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent} for more details.
40
+ #
41
+ # Sent when a background response has been cancelled.
42
+ #
43
+ # @param id [String] The unique ID of the event.
44
+ #
45
+ # @param created_at [Integer] The Unix timestamp (in seconds) of when the model response was cancelled.
46
+ #
47
+ # @param data [OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent::Data] Event data payload.
48
+ #
49
+ # @param object [Symbol, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent::Object] The object of the event. Always `event`.
50
+ #
51
+ # @param type [Symbol, :"response.cancelled"] The type of the event. Always `response.cancelled`.
52
+
53
+ # @see OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent#data
54
+ class Data < OpenAI::Internal::Type::BaseModel
55
+ # @!attribute id
56
+ # The unique ID of the model response.
57
+ #
58
+ # @return [String]
59
+ required :id, String
60
+
61
+ # @!method initialize(id:)
62
+ # Some parameter documentations has been truncated, see
63
+ # {OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent::Data} for more
64
+ # details.
65
+ #
66
+ # Event data payload.
67
+ #
68
+ # @param id [String] The unique ID of the model response.
69
+ end
70
+
71
+ # The object of the event. Always `event`.
72
+ #
73
+ # @see OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent#object
74
+ module Object
75
+ extend OpenAI::Internal::Type::Enum
76
+
77
+ EVENT = :event
78
+
79
+ # @!method self.values
80
+ # @return [Array<Symbol>]
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class ResponseCompletedWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp (in seconds) of when the model response was completed.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ # Event data payload.
21
+ #
22
+ # @return [OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent::Data]
23
+ required :data, -> { OpenAI::Webhooks::ResponseCompletedWebhookEvent::Data }
24
+
25
+ # @!attribute type
26
+ # The type of the event. Always `response.completed`.
27
+ #
28
+ # @return [Symbol, :"response.completed"]
29
+ required :type, const: :"response.completed"
30
+
31
+ # @!attribute object
32
+ # The object of the event. Always `event`.
33
+ #
34
+ # @return [Symbol, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent::Object, nil]
35
+ optional :object, enum: -> { OpenAI::Webhooks::ResponseCompletedWebhookEvent::Object }
36
+
37
+ # @!method initialize(id:, created_at:, data:, object: nil, type: :"response.completed")
38
+ # Some parameter documentations has been truncated, see
39
+ # {OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent} for more details.
40
+ #
41
+ # Sent when a background response has been completed.
42
+ #
43
+ # @param id [String] The unique ID of the event.
44
+ #
45
+ # @param created_at [Integer] The Unix timestamp (in seconds) of when the model response was completed.
46
+ #
47
+ # @param data [OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent::Data] Event data payload.
48
+ #
49
+ # @param object [Symbol, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent::Object] The object of the event. Always `event`.
50
+ #
51
+ # @param type [Symbol, :"response.completed"] The type of the event. Always `response.completed`.
52
+
53
+ # @see OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent#data
54
+ class Data < OpenAI::Internal::Type::BaseModel
55
+ # @!attribute id
56
+ # The unique ID of the model response.
57
+ #
58
+ # @return [String]
59
+ required :id, String
60
+
61
+ # @!method initialize(id:)
62
+ # Some parameter documentations has been truncated, see
63
+ # {OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent::Data} for more
64
+ # details.
65
+ #
66
+ # Event data payload.
67
+ #
68
+ # @param id [String] The unique ID of the model response.
69
+ end
70
+
71
+ # The object of the event. Always `event`.
72
+ #
73
+ # @see OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent#object
74
+ module Object
75
+ extend OpenAI::Internal::Type::Enum
76
+
77
+ EVENT = :event
78
+
79
+ # @!method self.values
80
+ # @return [Array<Symbol>]
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class ResponseFailedWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp (in seconds) of when the model response failed.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ # Event data payload.
21
+ #
22
+ # @return [OpenAI::Models::Webhooks::ResponseFailedWebhookEvent::Data]
23
+ required :data, -> { OpenAI::Webhooks::ResponseFailedWebhookEvent::Data }
24
+
25
+ # @!attribute type
26
+ # The type of the event. Always `response.failed`.
27
+ #
28
+ # @return [Symbol, :"response.failed"]
29
+ required :type, const: :"response.failed"
30
+
31
+ # @!attribute object
32
+ # The object of the event. Always `event`.
33
+ #
34
+ # @return [Symbol, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent::Object, nil]
35
+ optional :object, enum: -> { OpenAI::Webhooks::ResponseFailedWebhookEvent::Object }
36
+
37
+ # @!method initialize(id:, created_at:, data:, object: nil, type: :"response.failed")
38
+ # Some parameter documentations has been truncated, see
39
+ # {OpenAI::Models::Webhooks::ResponseFailedWebhookEvent} for more details.
40
+ #
41
+ # Sent when a background response has failed.
42
+ #
43
+ # @param id [String] The unique ID of the event.
44
+ #
45
+ # @param created_at [Integer] The Unix timestamp (in seconds) of when the model response failed.
46
+ #
47
+ # @param data [OpenAI::Models::Webhooks::ResponseFailedWebhookEvent::Data] Event data payload.
48
+ #
49
+ # @param object [Symbol, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent::Object] The object of the event. Always `event`.
50
+ #
51
+ # @param type [Symbol, :"response.failed"] The type of the event. Always `response.failed`.
52
+
53
+ # @see OpenAI::Models::Webhooks::ResponseFailedWebhookEvent#data
54
+ class Data < OpenAI::Internal::Type::BaseModel
55
+ # @!attribute id
56
+ # The unique ID of the model response.
57
+ #
58
+ # @return [String]
59
+ required :id, String
60
+
61
+ # @!method initialize(id:)
62
+ # Some parameter documentations has been truncated, see
63
+ # {OpenAI::Models::Webhooks::ResponseFailedWebhookEvent::Data} for more details.
64
+ #
65
+ # Event data payload.
66
+ #
67
+ # @param id [String] The unique ID of the model response.
68
+ end
69
+
70
+ # The object of the event. Always `event`.
71
+ #
72
+ # @see OpenAI::Models::Webhooks::ResponseFailedWebhookEvent#object
73
+ module Object
74
+ extend OpenAI::Internal::Type::Enum
75
+
76
+ EVENT = :event
77
+
78
+ # @!method self.values
79
+ # @return [Array<Symbol>]
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class ResponseIncompleteWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp (in seconds) of when the model response was interrupted.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ # Event data payload.
21
+ #
22
+ # @return [OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent::Data]
23
+ required :data, -> { OpenAI::Webhooks::ResponseIncompleteWebhookEvent::Data }
24
+
25
+ # @!attribute type
26
+ # The type of the event. Always `response.incomplete`.
27
+ #
28
+ # @return [Symbol, :"response.incomplete"]
29
+ required :type, const: :"response.incomplete"
30
+
31
+ # @!attribute object
32
+ # The object of the event. Always `event`.
33
+ #
34
+ # @return [Symbol, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent::Object, nil]
35
+ optional :object, enum: -> { OpenAI::Webhooks::ResponseIncompleteWebhookEvent::Object }
36
+
37
+ # @!method initialize(id:, created_at:, data:, object: nil, type: :"response.incomplete")
38
+ # Some parameter documentations has been truncated, see
39
+ # {OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent} for more details.
40
+ #
41
+ # Sent when a background response has been interrupted.
42
+ #
43
+ # @param id [String] The unique ID of the event.
44
+ #
45
+ # @param created_at [Integer] The Unix timestamp (in seconds) of when the model response was interrupted.
46
+ #
47
+ # @param data [OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent::Data] Event data payload.
48
+ #
49
+ # @param object [Symbol, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent::Object] The object of the event. Always `event`.
50
+ #
51
+ # @param type [Symbol, :"response.incomplete"] The type of the event. Always `response.incomplete`.
52
+
53
+ # @see OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent#data
54
+ class Data < OpenAI::Internal::Type::BaseModel
55
+ # @!attribute id
56
+ # The unique ID of the model response.
57
+ #
58
+ # @return [String]
59
+ required :id, String
60
+
61
+ # @!method initialize(id:)
62
+ # Some parameter documentations has been truncated, see
63
+ # {OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent::Data} for more
64
+ # details.
65
+ #
66
+ # Event data payload.
67
+ #
68
+ # @param id [String] The unique ID of the model response.
69
+ end
70
+
71
+ # The object of the event. Always `event`.
72
+ #
73
+ # @see OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent#object
74
+ module Object
75
+ extend OpenAI::Internal::Type::Enum
76
+
77
+ EVENT = :event
78
+
79
+ # @!method self.values
80
+ # @return [Array<Symbol>]
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ # Sent when a batch API request has been cancelled.
7
+ module UnwrapWebhookEvent
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ discriminator :type
11
+
12
+ # Sent when a batch API request has been cancelled.
13
+ variant :"batch.cancelled", -> { OpenAI::Webhooks::BatchCancelledWebhookEvent }
14
+
15
+ # Sent when a batch API request has been completed.
16
+ variant :"batch.completed", -> { OpenAI::Webhooks::BatchCompletedWebhookEvent }
17
+
18
+ # Sent when a batch API request has expired.
19
+ variant :"batch.expired", -> { OpenAI::Webhooks::BatchExpiredWebhookEvent }
20
+
21
+ # Sent when a batch API request has failed.
22
+ variant :"batch.failed", -> { OpenAI::Webhooks::BatchFailedWebhookEvent }
23
+
24
+ # Sent when an eval run has been canceled.
25
+ variant :"eval.run.canceled", -> { OpenAI::Webhooks::EvalRunCanceledWebhookEvent }
26
+
27
+ # Sent when an eval run has failed.
28
+ variant :"eval.run.failed", -> { OpenAI::Webhooks::EvalRunFailedWebhookEvent }
29
+
30
+ # Sent when an eval run has succeeded.
31
+ variant :"eval.run.succeeded", -> { OpenAI::Webhooks::EvalRunSucceededWebhookEvent }
32
+
33
+ # Sent when a fine-tuning job has been cancelled.
34
+ variant :"fine_tuning.job.cancelled", -> { OpenAI::Webhooks::FineTuningJobCancelledWebhookEvent }
35
+
36
+ # Sent when a fine-tuning job has failed.
37
+ variant :"fine_tuning.job.failed", -> { OpenAI::Webhooks::FineTuningJobFailedWebhookEvent }
38
+
39
+ # Sent when a fine-tuning job has succeeded.
40
+ variant :"fine_tuning.job.succeeded", -> { OpenAI::Webhooks::FineTuningJobSucceededWebhookEvent }
41
+
42
+ # Sent when a background response has been cancelled.
43
+ variant :"response.cancelled", -> { OpenAI::Webhooks::ResponseCancelledWebhookEvent }
44
+
45
+ # Sent when a background response has been completed.
46
+ variant :"response.completed", -> { OpenAI::Webhooks::ResponseCompletedWebhookEvent }
47
+
48
+ # Sent when a background response has failed.
49
+ variant :"response.failed", -> { OpenAI::Webhooks::ResponseFailedWebhookEvent }
50
+
51
+ # Sent when a background response has been interrupted.
52
+ variant :"response.incomplete", -> { OpenAI::Webhooks::ResponseIncompleteWebhookEvent }
53
+
54
+ # @!method self.variants
55
+ # @return [Array(OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent)]
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ # @see OpenAI::Resources::Webhooks#unwrap
7
+ class WebhookUnwrapParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ # @!method initialize(request_options: {})
12
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
13
+ end
14
+ end
15
+ end
16
+ end
data/lib/openai/models.rb CHANGED
@@ -234,4 +234,6 @@ module OpenAI
234
234
  VectorStoreSearchParams = OpenAI::Models::VectorStoreSearchParams
235
235
 
236
236
  VectorStoreUpdateParams = OpenAI::Models::VectorStoreUpdateParams
237
+
238
+ Webhooks = OpenAI::Models::Webhooks
237
239
  end
@@ -70,7 +70,7 @@ module OpenAI
70
70
  #
71
71
  # @param seed [Integer, nil] This feature is in Beta.
72
72
  #
73
- # @param service_tier [Symbol, OpenAI::Models::Chat::CompletionCreateParams::ServiceTier, nil] Specifies the latency tier to use for processing the request. This parameter is
73
+ # @param service_tier [Symbol, OpenAI::Models::Chat::CompletionCreateParams::ServiceTier, nil] Specifies the processing type used for serving the request.
74
74
  #
75
75
  # @param stop [String, Array<String>, nil] Not supported with latest reasoning models `o3` and `o4-mini`.
76
76
  #
@@ -104,7 +104,6 @@ module OpenAI
104
104
  raise ArgumentError.new(message)
105
105
  end
106
106
 
107
- # rubocop:disable Layout/LineLength
108
107
  model = nil
109
108
  tool_models = {}
110
109
  case parsed
@@ -157,11 +156,16 @@ module OpenAI
157
156
  else
158
157
  end
159
158
 
159
+ # rubocop:disable Metrics/BlockLength
160
160
  unwrap = ->(raw) do
161
161
  if model.is_a?(OpenAI::StructuredOutput::JsonSchemaConverter)
162
162
  raw[:choices]&.each do |choice|
163
163
  message = choice.fetch(:message)
164
- parsed = JSON.parse(message.fetch(:content), symbolize_names: true)
164
+ begin
165
+ parsed = JSON.parse(message.fetch(:content), symbolize_names: true)
166
+ rescue JSON::ParserError => e
167
+ parsed = e
168
+ end
165
169
  coerced = OpenAI::Internal::Type::Converter.coerce(model, parsed)
166
170
  message.store(:parsed, coerced)
167
171
  end
@@ -171,7 +175,11 @@ module OpenAI
171
175
  func = tool_call.fetch(:function)
172
176
  next if (model = tool_models[func.fetch(:name)]).nil?
173
177
 
174
- parsed = JSON.parse(func.fetch(:arguments), symbolize_names: true)
178
+ begin
179
+ parsed = JSON.parse(func.fetch(:arguments), symbolize_names: true)
180
+ rescue JSON::ParserError => e
181
+ parsed = e
182
+ end
175
183
  coerced = OpenAI::Internal::Type::Converter.coerce(model, parsed)
176
184
  func.store(:parsed, coerced)
177
185
  end
@@ -179,7 +187,7 @@ module OpenAI
179
187
 
180
188
  raw
181
189
  end
182
- # rubocop:enable Layout/LineLength
190
+ # rubocop:enable Metrics/BlockLength
183
191
 
184
192
  @client.request(
185
193
  method: :post,
@@ -258,7 +266,7 @@ module OpenAI
258
266
  #
259
267
  # @param seed [Integer, nil] This feature is in Beta.
260
268
  #
261
- # @param service_tier [Symbol, OpenAI::Models::Chat::CompletionCreateParams::ServiceTier, nil] Specifies the latency tier to use for processing the request. This parameter is
269
+ # @param service_tier [Symbol, OpenAI::Models::Chat::CompletionCreateParams::ServiceTier, nil] Specifies the processing type used for serving the request.
262
270
  #
263
271
  # @param stop [String, Array<String>, nil] Not supported with latest reasoning models `o3` and `o4-mini`.
264
272
  #