openai 0.81.0 → 0.83.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +53 -1
  4. data/lib/openai/helpers/realtime/client_extension.rb +107 -0
  5. data/lib/openai/helpers/sorbet.rb +324 -0
  6. data/lib/openai/helpers/streaming/response_event_decoder.rb +44 -0
  7. data/lib/openai/helpers/streaming/response_stream.rb +10 -3
  8. data/lib/openai/helpers/streaming/unknown_stream_event.rb +51 -0
  9. data/lib/openai/http_client.rb +40 -1
  10. data/lib/openai/internal/logging.rb +7 -1
  11. data/lib/openai/internal/stream.rb +4 -1
  12. data/lib/openai/internal/transport/base_client.rb +35 -4
  13. data/lib/openai/internal/util.rb +6 -2
  14. data/lib/openai/models/admin/organization/audit_log_list_params.rb +2 -0
  15. data/lib/openai/models/admin/organization/audit_log_list_response.rb +2 -0
  16. data/lib/openai/models/beta/beta_response_function_tool_call_output_item.rb +9 -9
  17. data/lib/openai/models/beta/beta_response_input_item.rb +9 -9
  18. data/lib/openai/models/beta/beta_response_usage.rb +12 -1
  19. data/lib/openai/models/completion_usage.rb +12 -1
  20. data/lib/openai/models/responses/response_function_tool_call_output_item.rb +9 -9
  21. data/lib/openai/models/responses/response_input_item.rb +9 -9
  22. data/lib/openai/models/responses/response_usage.rb +12 -1
  23. data/lib/openai/request_options.rb +8 -0
  24. data/lib/openai/resources/beta/responses.rb +2 -2
  25. data/lib/openai/resources/responses.rb +3 -3
  26. data/lib/openai/version.rb +1 -1
  27. data/rbi/openai/helpers/sorbet.rbi +55 -0
  28. data/rbi/openai/helpers/streaming/response_event_decoder.rbi +28 -0
  29. data/rbi/openai/helpers/streaming/response_stream.rbi +5 -0
  30. data/rbi/openai/helpers/streaming/unknown_stream_event.rbi +29 -0
  31. data/rbi/openai/http_client.rbi +25 -2
  32. data/rbi/openai/internal/logging.rbi +12 -2
  33. data/rbi/openai/internal/transport/base_client.rbi +12 -2
  34. data/rbi/openai/internal/util.rbi +3 -2
  35. data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +8 -0
  36. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +8 -0
  37. data/rbi/openai/models/beta/beta_response_function_tool_call_output_item.rbi +13 -10
  38. data/rbi/openai/models/beta/beta_response_input_item.rbi +10 -10
  39. data/rbi/openai/models/beta/beta_response_usage.rbi +13 -3
  40. data/rbi/openai/models/completion_usage.rbi +10 -0
  41. data/rbi/openai/models/responses/response_function_tool_call_output_item.rbi +13 -10
  42. data/rbi/openai/models/responses/response_input_item.rbi +10 -10
  43. data/rbi/openai/models/responses/response_usage.rbi +13 -3
  44. data/rbi/openai/request_options.rbi +4 -0
  45. data/rbi/openai/resources/beta/responses.rbi +10 -2
  46. data/rbi/openai/resources/responses.rbi +2 -2
  47. data/rbi/openai/streaming.rbi +1 -0
  48. data/sig/openai/helpers/sorbet.rbs +54 -0
  49. data/sig/openai/helpers/streaming/response_event_decoder.rbs +16 -0
  50. data/sig/openai/helpers/streaming/unknown_stream_event.rbs +15 -0
  51. data/sig/openai/http_client.rbs +14 -1
  52. data/sig/openai/internal/logging.rbs +6 -1
  53. data/sig/openai/internal/transport/base_client.rbs +7 -1
  54. data/sig/openai/internal/util.rbs +3 -1
  55. data/sig/openai/models/admin/organization/audit_log_list_params.rbs +4 -0
  56. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +4 -0
  57. data/sig/openai/models/beta/beta_response_function_tool_call_output_item.rbs +7 -5
  58. data/sig/openai/models/beta/beta_response_input_item.rbs +5 -5
  59. data/sig/openai/models/beta/beta_response_usage.rbs +8 -3
  60. data/sig/openai/models/completion_usage.rbs +5 -0
  61. data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +7 -5
  62. data/sig/openai/models/responses/response_input_item.rbs +5 -5
  63. data/sig/openai/models/responses/response_usage.rbs +8 -3
  64. data/sig/openai/request_options.rbs +4 -1
  65. data/sig/openai/resources/beta/responses.rbs +4 -2
  66. data/sig/openai/resources/responses.rbs +6 -3
  67. data/sig/openai/streaming.rbs +5 -0
  68. metadata +11 -1
@@ -20,11 +20,18 @@ module OpenAI
20
20
  # @return [String, nil]
21
21
  attr_reader :request_id
22
22
 
23
+ # The exact response body when `include_raw_body: true` was requested.
24
+ # Bodies are never retained by default or for streaming responses.
25
+ #
26
+ # @return [String, nil]
27
+ attr_reader :body
28
+
23
29
  # @api private
24
30
  #
25
31
  # @param status [Integer]
26
32
  # @param headers [Hash{String=>String}]
27
- def initialize(status:, headers:)
33
+ # @param body [String, nil]
34
+ def initialize(status:, headers:, body: nil)
28
35
  @status = Integer(status)
29
36
  @headers = headers
30
37
  .to_h do |name, value|
@@ -32,6 +39,7 @@ module OpenAI
32
39
  end
33
40
  .freeze
34
41
  @request_id = @headers["x-request-id"]
42
+ @body = body.nil? || body.frozen? ? body : body.dup.freeze
35
43
  freeze
36
44
  end
37
45
 
@@ -39,6 +47,37 @@ module OpenAI
39
47
  #
40
48
  # @return [String]
41
49
  def inspect = "#<#{self.class} status=#{@status} request_id=#{@request_id.inspect}>"
50
+
51
+ # Keep retained response bodies out of Psych object serialization.
52
+ #
53
+ # @api private
54
+ # @param coder [Psych::Coder]
55
+ # @return [void]
56
+ def encode_with(coder)
57
+ coder["status"] = @status
58
+ coder["headers"] = @headers
59
+ end
60
+
61
+ # @api private
62
+ # @param coder [Psych::Coder]
63
+ # @return [void]
64
+ def init_with(coder)
65
+ initialize(status: coder["status"], headers: coder["headers"])
66
+ end
67
+
68
+ # Keep retained response bodies out of Marshal object serialization.
69
+ #
70
+ # @api private
71
+ # @return [Array(Integer, Hash{String=>String})]
72
+ def marshal_dump = [@status, @headers]
73
+
74
+ # @api private
75
+ # @param values [Array(Integer, Hash{String=>String})]
76
+ # @return [void]
77
+ def marshal_load(values)
78
+ status, headers = values
79
+ initialize(status: status, headers: headers)
80
+ end
42
81
  end
43
82
 
44
83
  # Details about an API request retry that is about to run.
@@ -26,19 +26,24 @@ module OpenAI
26
26
  URL_HEADER_KEY = /(?:\A|[-_])(?:location|url|uri)\z|\A(?:link|refresh)\z/i
27
27
 
28
28
  class Context
29
- def initialize(logger:, log_level:, on_retry:, method:, url:)
29
+ def initialize(logger:, log_level:, on_retry:, method:, url:, on_response: nil)
30
30
  @logger = logger
31
31
  @log_level = log_level
32
32
  @on_retry = on_retry
33
+ @on_response = on_response
33
34
  @id = nil
34
35
  @method = method.to_s.upcase
35
36
  @url = url
37
+ @request_url = url
38
+ @first_request_url = nil
36
39
  @started_at = OpenAI::Internal::Util.monotonic_secs
37
40
  @attempt_started_at = @started_at
38
41
  @attempts = 0
39
42
  end
40
43
 
41
44
  def request_started(request, redirect_count:)
45
+ @request_url = request.url
46
+ @first_request_url ||= request.url
42
47
  @attempts += 1
43
48
  log(:debug) do
44
49
  "[openai] request started log_id=#{id} attempt=#{@attempts} " \
@@ -52,6 +57,7 @@ module OpenAI
52
57
  end
53
58
 
54
59
  def response_received(response)
60
+ @on_response&.call(response, @first_request_url || @url, @request_url)
55
61
  log(:debug) do
56
62
  "[openai] response received log_id=#{id} attempt=#{@attempts} " \
57
63
  "status=#{response.status} request_id=#{safe_field(response.headers["x-request-id"])} " \
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../helpers/streaming/response_event_decoder"
4
+
3
5
  module OpenAI
4
6
  module Internal
5
7
  # @generic Elem
@@ -18,6 +20,7 @@ module OpenAI
18
20
  # rubocop:disable Metrics/BlockLength
19
21
  @iterator ||= OpenAI::Internal::Util.chain_fused(@stream) do |y|
20
22
  consume = false
23
+ decoder = OpenAI::Helpers::Streaming::ResponseEventDecoder.new(model: @model)
21
24
 
22
25
  @stream.each do |msg|
23
26
  next if consume
@@ -53,7 +56,7 @@ module OpenAI
53
56
  # Some providers emit transport heartbeats as JSON events. They are not
54
57
  # part of the API's typed streaming event surface.
55
58
  next if unwrapped in {type: "keepalive"}
56
- y << OpenAI::Internal::Type::Converter.coerce(@model, unwrapped)
59
+ y << decoder.decode(unwrapped)
57
60
  end
58
61
  else
59
62
  end
@@ -658,9 +658,9 @@ module OpenAI
658
658
  raise TypeError, "`http_client#execute` must return an OpenAI::HTTPClient::Response"
659
659
  end
660
660
 
661
+ http_response = log_context.response_received(http_response)
661
662
  status = http_response.status
662
663
  headers = http_response.headers
663
- http_response = log_context.response_received(http_response)
664
664
  stream = http_response.body
665
665
  rescue OpenAI::Errors::APIConnectionError => e
666
666
  status = e
@@ -785,6 +785,8 @@ module OpenAI
785
785
  #
786
786
  # @option options [Float, nil] :timeout
787
787
  #
788
+ # @option options [Boolean, nil] :include_raw_body
789
+ #
788
790
  # @raise [OpenAI::Errors::APIError]
789
791
  # @return [Object]
790
792
  def request(req)
@@ -798,10 +800,14 @@ module OpenAI
798
800
  #
799
801
  # @param req [Hash{Symbol=>Object}]
800
802
  # @return [Array(URI::Generic, OpenAI::HTTPClient::Response, OpenAI::Internal::Logging::Context)]
801
- private def perform_request(req)
803
+ private def perform_request(req, &response_observer)
802
804
  self.class.validate!(req)
803
805
  opts = req[:options].to_h
804
806
  OpenAI::RequestOptions.validate!(opts)
807
+ if req[:stream] && opts[:include_raw_body] == true
808
+ raise ArgumentError, "`include_raw_body` is not supported for streaming responses"
809
+ end
810
+
805
811
  request = build_request(req.except(:options), opts)
806
812
  url = request.fetch(:url)
807
813
  log_context = OpenAI::Internal::Logging::Context.new(
@@ -809,7 +815,12 @@ module OpenAI
809
815
  log_level: @log_level,
810
816
  on_retry: @on_retry,
811
817
  method: request.fetch(:method),
812
- url: url
818
+ url: url,
819
+ on_response: if response_observer
820
+ lambda do |received_response, trusted_url, received_url|
821
+ response_observer.call(received_response, trusted_url, received_url)
822
+ end
823
+ end
813
824
  )
814
825
 
815
826
  # Don't send the current retry count in the headers if the caller modified the header defaults.
@@ -820,6 +831,7 @@ module OpenAI
820
831
  retry_count: 0,
821
832
  send_retry_header: send_retry_header
822
833
  ) { log_context }
834
+
823
835
  [url, response, log_context]
824
836
  rescue StandardError => e
825
837
  log_context&.request_failed(e)
@@ -862,8 +874,27 @@ module OpenAI
862
874
 
863
875
  unwrap = req[:unwrap]
864
876
  response_metadata = response.metadata
877
+ include_raw_body = req[:options].to_h[:include_raw_body] == true &&
878
+ (req[:page] ||
879
+ (model.is_a?(Class) && model <= OpenAI::Internal::Type::BaseModel) ||
880
+ model.is_a?(OpenAI::Internal::Type::Union))
881
+ raw_body = nil
882
+ decoded = if include_raw_body
883
+ OpenAI::Internal::Util.decode_content(response.headers, stream: response.body) do |body|
884
+ raw_body = body
885
+ end
886
+ else
887
+ OpenAI::Internal::Util.decode_content(response.headers, stream: response.body)
888
+ end
889
+
890
+ if include_raw_body && !decoded.is_a?(StringIO)
891
+ response_metadata = OpenAI::ResponseMetadata.new(
892
+ status: response.status,
893
+ headers: response.headers,
894
+ body: raw_body&.freeze
895
+ )
896
+ end
865
897
 
866
- decoded = OpenAI::Internal::Util.decode_content(response.headers, stream: response.body)
867
898
  case req
868
899
  in {stream: Class => st}
869
900
  st.new(
@@ -673,13 +673,16 @@ module OpenAI
673
673
  # @param headers [Hash{String=>String}]
674
674
  # @param stream [Enumerable<String>]
675
675
  # @param suppress_error [Boolean]
676
+ # @yieldparam [String] The buffered response body before decoding.
676
677
  #
677
678
  # @raise [JSON::ParserError]
678
679
  # @return [Object]
679
- def decode_content(headers, stream:, suppress_error: false)
680
+ def decode_content(headers, stream:, suppress_error: false, &body_observer)
680
681
  case (content_type = headers["content-type"])
681
682
  in OpenAI::Internal::Util::JSON_CONTENT
682
- return nil if (json = stream.to_a.join).empty?
683
+ json = stream.to_a.join
684
+ body_observer&.call(json)
685
+ return nil if json.empty?
683
686
 
684
687
  begin
685
688
  JSON.parse(json, symbolize_names: true)
@@ -703,6 +706,7 @@ module OpenAI
703
706
  decode_sse(lines)
704
707
  else
705
708
  text = stream.to_a.join
709
+ body_observer&.call(text)
706
710
  force_charset!(content_type, text: text)
707
711
  StringIO.new(text)
708
712
  end
@@ -236,6 +236,8 @@ module OpenAI
236
236
  TENANT_ADMIN_API_KEY_UPDATED = :"tenant.admin_api_key.updated"
237
237
  TENANT_ADMIN_API_KEY_DELETED = :"tenant.admin_api_key.deleted"
238
238
  TENANT_PROJECT_API_KEY_CREATED = :"tenant.project_api_key.created"
239
+ TENANT_TRUSTED_ACCESS_BUSINESS_VERIFICATION_STARTED = :"tenant.trusted_access.business_verification.started"
240
+ TENANT_TRUSTED_ACCESS_APPLICATION_SUBMITTED = :"tenant.trusted_access.application.submitted"
239
241
  TENANT_CHATGPT_ACCESS_TOKEN_REVOKED = :"tenant.chatgpt_access_token.revoked"
240
242
  TENANT_MIGRATION_COMPLETED = :"tenant.migration.completed"
241
243
  TENANT_SSO_MIGRATED = :"tenant.sso.migrated"
@@ -788,6 +788,8 @@ module OpenAI
788
788
  TENANT_ADMIN_API_KEY_UPDATED = :"tenant.admin_api_key.updated"
789
789
  TENANT_ADMIN_API_KEY_DELETED = :"tenant.admin_api_key.deleted"
790
790
  TENANT_PROJECT_API_KEY_CREATED = :"tenant.project_api_key.created"
791
+ TENANT_TRUSTED_ACCESS_BUSINESS_VERIFICATION_STARTED = :"tenant.trusted_access.business_verification.started"
792
+ TENANT_TRUSTED_ACCESS_APPLICATION_SUBMITTED = :"tenant.trusted_access.application.submitted"
791
793
  TENANT_CHATGPT_ACCESS_TOKEN_REVOKED = :"tenant.chatgpt_access_token.revoked"
792
794
  TENANT_MIGRATION_COMPLETED = :"tenant.migration.completed"
793
795
  TENANT_SSO_MIGRATED = :"tenant.sso.migrated"
@@ -10,12 +10,6 @@ module OpenAI
10
10
  # @return [String]
11
11
  required :id, String
12
12
 
13
- # @!attribute call_id
14
- # The unique ID of the function tool call generated by the model.
15
- #
16
- # @return [String]
17
- required :call_id, String
18
-
19
13
  # @!attribute output
20
14
  # The output from the function call generated by your code. Can be a string or an
21
15
  # list of output content.
@@ -42,6 +36,12 @@ module OpenAI
42
36
  # @return [OpenAI::Models::Beta::BetaResponseFunctionToolCallOutputItem::Agent, nil]
43
37
  optional :agent, -> { OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Agent }, nil?: true
44
38
 
39
+ # @!attribute call_id
40
+ # The unique ID of the function tool call generated by the model.
41
+ #
42
+ # @return [String, nil]
43
+ optional :call_id, String
44
+
45
45
  # @!attribute caller_
46
46
  # The execution context that produced this tool call.
47
47
  #
@@ -71,20 +71,20 @@ module OpenAI
71
71
  # @return [String, nil]
72
72
  optional :namespace, String
73
73
 
74
- # @!method initialize(id:, call_id:, output:, status:, agent: nil, caller_: nil, created_by: nil, name: nil, namespace: nil, type: :function_call_output)
74
+ # @!method initialize(id:, output:, status:, agent: nil, call_id: nil, caller_: nil, created_by: nil, name: nil, namespace: nil, type: :function_call_output)
75
75
  # Some parameter documentations has been truncated, see
76
76
  # {OpenAI::Models::Beta::BetaResponseFunctionToolCallOutputItem} for more details.
77
77
  #
78
78
  # @param id [String] The unique ID of the function call tool output.
79
79
  #
80
- # @param call_id [String] The unique ID of the function tool call generated by the model.
81
- #
82
80
  # @param output [String, Array<OpenAI::Models::Beta::BetaResponseInputText, OpenAI::Models::Beta::BetaResponseInputImage, OpenAI::Models::Beta::BetaResponseInputFile>] The output from the function call generated by your code.
83
81
  #
84
82
  # @param status [Symbol, OpenAI::Models::Beta::BetaResponseFunctionToolCallOutputItem::Status] The status of the item. One of `in_progress`, `completed`, or
85
83
  #
86
84
  # @param agent [OpenAI::Models::Beta::BetaResponseFunctionToolCallOutputItem::Agent, nil] The agent that produced this item.
87
85
  #
86
+ # @param call_id [String] The unique ID of the function tool call generated by the model.
87
+ #
88
88
  # @param caller_ [OpenAI::Models::Beta::BetaResponseFunctionToolCallOutputItem::Caller::Direct, OpenAI::Models::Beta::BetaResponseFunctionToolCallOutputItem::Caller::Program, nil] The execution context that produced this tool call.
89
89
  #
90
90
  # @param created_by [String] The identifier of the actor that created the item.
@@ -371,12 +371,6 @@ module OpenAI
371
371
  end
372
372
 
373
373
  class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
374
- # @!attribute call_id
375
- # The unique ID of the function tool call generated by the model.
376
- #
377
- # @return [String]
378
- required :call_id, String
379
-
380
374
  # @!attribute output
381
375
  # Text, image, or file output of the function tool call.
382
376
  #
@@ -402,6 +396,12 @@ module OpenAI
402
396
  # @return [OpenAI::Models::Beta::BetaResponseInputItem::FunctionCallOutput::Agent, nil]
403
397
  optional :agent, -> { OpenAI::Beta::BetaResponseInputItem::FunctionCallOutput::Agent }, nil?: true
404
398
 
399
+ # @!attribute call_id
400
+ # The unique ID of the function tool call generated by the model.
401
+ #
402
+ # @return [String, nil]
403
+ optional :call_id, String, nil?: true
404
+
405
405
  # @!attribute caller_
406
406
  # The execution context that produced this tool call.
407
407
  #
@@ -438,21 +438,21 @@ module OpenAI
438
438
  nil?: true
439
439
  )
440
440
 
441
- # @!method initialize(call_id:, output:, id: nil, agent: nil, caller_: nil, name: nil, namespace: nil, status: nil, type: :function_call_output)
441
+ # @!method initialize(output:, id: nil, agent: nil, call_id: nil, caller_: nil, name: nil, namespace: nil, status: nil, type: :function_call_output)
442
442
  # Some parameter documentations has been truncated, see
443
443
  # {OpenAI::Models::Beta::BetaResponseInputItem::FunctionCallOutput} for more
444
444
  # details.
445
445
  #
446
446
  # The output of a function tool call.
447
447
  #
448
- # @param call_id [String] The unique ID of the function tool call generated by the model.
449
- #
450
448
  # @param output [String, Array<OpenAI::Models::Beta::BetaResponseInputTextContent, OpenAI::Models::Beta::BetaResponseInputImageContent, OpenAI::Models::Beta::BetaResponseInputFileContent>] Text, image, or file output of the function tool call.
451
449
  #
452
450
  # @param id [String, nil] The unique ID of the function tool call output. Populated when this item is retu
453
451
  #
454
452
  # @param agent [OpenAI::Models::Beta::BetaResponseInputItem::FunctionCallOutput::Agent, nil] The agent that produced this item.
455
453
  #
454
+ # @param call_id [String, nil] The unique ID of the function tool call generated by the model.
455
+ #
456
456
  # @param caller_ [OpenAI::Models::Beta::BetaResponseInputItem::FunctionCallOutput::Caller::Direct, OpenAI::Models::Beta::BetaResponseInputItem::FunctionCallOutput::Caller::Program, nil] The execution context that produced this tool call.
457
457
  #
458
458
  # @param name [String, nil] The name of the tool that produced the output.
@@ -34,7 +34,16 @@ module OpenAI
34
34
  # @return [Integer]
35
35
  required :total_tokens, Integer
36
36
 
37
- # @!method initialize(input_tokens:, input_tokens_details:, output_tokens:, output_tokens_details:, total_tokens:)
37
+ # @!attribute compute_units
38
+ # Compute units for the request. Currently null when available.
39
+ #
40
+ # @return [Integer, nil]
41
+ optional :compute_units, Integer, nil?: true
42
+
43
+ # @!method initialize(input_tokens:, input_tokens_details:, output_tokens:, output_tokens_details:, total_tokens:, compute_units: nil)
44
+ # Some parameter documentations has been truncated, see
45
+ # {OpenAI::Models::Beta::BetaResponseUsage} for more details.
46
+ #
38
47
  # Represents token usage details including input tokens, output tokens, a
39
48
  # breakdown of output tokens, and the total tokens used.
40
49
  #
@@ -47,6 +56,8 @@ module OpenAI
47
56
  # @param output_tokens_details [OpenAI::Models::Beta::BetaResponseUsage::OutputTokensDetails] A detailed breakdown of the output tokens.
48
57
  #
49
58
  # @param total_tokens [Integer] The total number of tokens used.
59
+ #
60
+ # @param compute_units [Integer, nil] Compute units for the request. Currently null when available.
50
61
 
51
62
  # @see OpenAI::Models::Beta::BetaResponseUsage#input_tokens_details
52
63
  class InputTokensDetails < OpenAI::Internal::Type::BaseModel
@@ -27,13 +27,22 @@ module OpenAI
27
27
  # @return [OpenAI::Models::CompletionUsage::CompletionTokensDetails, nil]
28
28
  optional :completion_tokens_details, -> { OpenAI::CompletionUsage::CompletionTokensDetails }
29
29
 
30
+ # @!attribute compute_units
31
+ # Compute units for the request. Currently null when available.
32
+ #
33
+ # @return [Integer, nil]
34
+ optional :compute_units, Integer, nil?: true
35
+
30
36
  # @!attribute prompt_tokens_details
31
37
  # Breakdown of tokens used in the prompt.
32
38
  #
33
39
  # @return [OpenAI::Models::CompletionUsage::PromptTokensDetails, nil]
34
40
  optional :prompt_tokens_details, -> { OpenAI::CompletionUsage::PromptTokensDetails }
35
41
 
36
- # @!method initialize(completion_tokens:, prompt_tokens:, total_tokens:, completion_tokens_details: nil, prompt_tokens_details: nil)
42
+ # @!method initialize(completion_tokens:, prompt_tokens:, total_tokens:, completion_tokens_details: nil, compute_units: nil, prompt_tokens_details: nil)
43
+ # Some parameter documentations has been truncated, see
44
+ # {OpenAI::Models::CompletionUsage} for more details.
45
+ #
37
46
  # Usage statistics for the completion request.
38
47
  #
39
48
  # @param completion_tokens [Integer] Number of tokens in the generated completion.
@@ -44,6 +53,8 @@ module OpenAI
44
53
  #
45
54
  # @param completion_tokens_details [OpenAI::Models::CompletionUsage::CompletionTokensDetails] Breakdown of tokens used in a completion.
46
55
  #
56
+ # @param compute_units [Integer, nil] Compute units for the request. Currently null when available.
57
+ #
47
58
  # @param prompt_tokens_details [OpenAI::Models::CompletionUsage::PromptTokensDetails] Breakdown of tokens used in the prompt.
48
59
 
49
60
  # @see OpenAI::Models::CompletionUsage#completion_tokens_details
@@ -10,12 +10,6 @@ module OpenAI
10
10
  # @return [String]
11
11
  required :id, String
12
12
 
13
- # @!attribute call_id
14
- # The unique ID of the function tool call generated by the model.
15
- #
16
- # @return [String]
17
- required :call_id, String
18
-
19
13
  # @!attribute output
20
14
  # The output from the function call generated by your code. Can be a string or an
21
15
  # list of output content.
@@ -36,6 +30,12 @@ module OpenAI
36
30
  # @return [Symbol, :function_call_output]
37
31
  required :type, const: :function_call_output
38
32
 
33
+ # @!attribute call_id
34
+ # The unique ID of the function tool call generated by the model.
35
+ #
36
+ # @return [String, nil]
37
+ optional :call_id, String
38
+
39
39
  # @!attribute caller_
40
40
  # The execution context that produced this tool call.
41
41
  #
@@ -65,19 +65,19 @@ module OpenAI
65
65
  # @return [String, nil]
66
66
  optional :namespace, String
67
67
 
68
- # @!method initialize(id:, call_id:, output:, status:, caller_: nil, created_by: nil, name: nil, namespace: nil, type: :function_call_output)
68
+ # @!method initialize(id:, output:, status:, call_id: nil, caller_: nil, created_by: nil, name: nil, namespace: nil, type: :function_call_output)
69
69
  # Some parameter documentations has been truncated, see
70
70
  # {OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem} for more
71
71
  # details.
72
72
  #
73
73
  # @param id [String] The unique ID of the function call tool output.
74
74
  #
75
- # @param call_id [String] The unique ID of the function tool call generated by the model.
76
- #
77
75
  # @param output [String, Array<OpenAI::Models::Responses::ResponseInputText, OpenAI::Models::Responses::ResponseInputImage, OpenAI::Models::Responses::ResponseInputFile>] The output from the function call generated by your code.
78
76
  #
79
77
  # @param status [Symbol, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status] The status of the item. One of `in_progress`, `completed`, or
80
78
  #
79
+ # @param call_id [String] The unique ID of the function tool call generated by the model.
80
+ #
81
81
  # @param caller_ [OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Caller::Direct, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Caller::Program, nil] The execution context that produced this tool call.
82
82
  #
83
83
  # @param created_by [String] The identifier of the actor that created the item.
@@ -318,12 +318,6 @@ module OpenAI
318
318
  end
319
319
 
320
320
  class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
321
- # @!attribute call_id
322
- # The unique ID of the function tool call generated by the model.
323
- #
324
- # @return [String]
325
- required :call_id, String
326
-
327
321
  # @!attribute output
328
322
  # Text, image, or file output of the function tool call.
329
323
  #
@@ -343,6 +337,12 @@ module OpenAI
343
337
  # @return [String, nil]
344
338
  optional :id, String, nil?: true
345
339
 
340
+ # @!attribute call_id
341
+ # The unique ID of the function tool call generated by the model.
342
+ #
343
+ # @return [String, nil]
344
+ optional :call_id, String, nil?: true
345
+
346
346
  # @!attribute caller_
347
347
  # The execution context that produced this tool call.
348
348
  #
@@ -377,19 +377,19 @@ module OpenAI
377
377
  nil?: true
378
378
  )
379
379
 
380
- # @!method initialize(call_id:, output:, id: nil, caller_: nil, name: nil, namespace: nil, status: nil, type: :function_call_output)
380
+ # @!method initialize(output:, id: nil, call_id: nil, caller_: nil, name: nil, namespace: nil, status: nil, type: :function_call_output)
381
381
  # Some parameter documentations has been truncated, see
382
382
  # {OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput} for more
383
383
  # details.
384
384
  #
385
385
  # The output of a function tool call.
386
386
  #
387
- # @param call_id [String] The unique ID of the function tool call generated by the model.
388
- #
389
387
  # @param output [String, Array<OpenAI::Models::Responses::ResponseInputTextContent, OpenAI::Models::Responses::ResponseInputImageContent, OpenAI::Models::Responses::ResponseInputFileContent>] Text, image, or file output of the function tool call.
390
388
  #
391
389
  # @param id [String, nil] The unique ID of the function tool call output. Populated when this item is retu
392
390
  #
391
+ # @param call_id [String, nil] The unique ID of the function tool call generated by the model.
392
+ #
393
393
  # @param caller_ [OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Caller::Direct, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput::Caller::Program, nil] The execution context that produced this tool call.
394
394
  #
395
395
  # @param name [String, nil] The name of the tool that produced the output.
@@ -34,7 +34,16 @@ module OpenAI
34
34
  # @return [Integer]
35
35
  required :total_tokens, Integer
36
36
 
37
- # @!method initialize(input_tokens:, input_tokens_details:, output_tokens:, output_tokens_details:, total_tokens:)
37
+ # @!attribute compute_units
38
+ # Compute units for the request. Currently null when available.
39
+ #
40
+ # @return [Integer, nil]
41
+ optional :compute_units, Integer, nil?: true
42
+
43
+ # @!method initialize(input_tokens:, input_tokens_details:, output_tokens:, output_tokens_details:, total_tokens:, compute_units: nil)
44
+ # Some parameter documentations has been truncated, see
45
+ # {OpenAI::Models::Responses::ResponseUsage} for more details.
46
+ #
38
47
  # Represents token usage details including input tokens, output tokens, a
39
48
  # breakdown of output tokens, and the total tokens used.
40
49
  #
@@ -47,6 +56,8 @@ module OpenAI
47
56
  # @param output_tokens_details [OpenAI::Models::Responses::ResponseUsage::OutputTokensDetails] A detailed breakdown of the output tokens.
48
57
  #
49
58
  # @param total_tokens [Integer] The total number of tokens used.
59
+ #
60
+ # @param compute_units [Integer, nil] Compute units for the request. Currently null when available.
50
61
 
51
62
  # @see OpenAI::Models::Responses::ResponseUsage#input_tokens_details
52
63
  class InputTokensDetails < OpenAI::Internal::Type::BaseModel
@@ -65,6 +65,14 @@ module OpenAI
65
65
  # @return [Float, nil]
66
66
  optional :timeout, Float
67
67
 
68
+ # @!attribute include_raw_body
69
+ # Retain the exact successful HTTP response body on the returned model or
70
+ # page through `last_response.body`. Body retention is disabled by default
71
+ # and cannot be enabled for streaming responses.
72
+ #
73
+ # @return [Boolean, nil]
74
+ optional :include_raw_body, OpenAI::Internal::Type::Boolean
75
+
68
76
  # @!method initialize(values = {})
69
77
  # Returns a new instance of RequestOptions.
70
78
  #
@@ -202,7 +202,7 @@ module OpenAI
202
202
  #
203
203
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
204
204
  #
205
- # @return [OpenAI::Internal::Stream<OpenAI::Models::Beta::BetaResponseAudioDeltaEvent, OpenAI::Models::Beta::BetaResponseAudioDoneEvent, OpenAI::Models::Beta::BetaResponseAudioTranscriptDeltaEvent, OpenAI::Models::Beta::BetaResponseAudioTranscriptDoneEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Beta::BetaResponseCompletedEvent, OpenAI::Models::Beta::BetaResponseContentPartAddedEvent, OpenAI::Models::Beta::BetaResponseContentPartDoneEvent, OpenAI::Models::Beta::BetaResponseCreatedEvent, OpenAI::Models::Beta::BetaResponseErrorEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallCompletedEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallInProgressEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallSearchingEvent, OpenAI::Models::Beta::BetaResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Beta::BetaResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandAddedEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandDeltaEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandDoneEvent, OpenAI::Models::Beta::BetaResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Beta::BetaResponseShellCallOutputContentDoneEvent, OpenAI::Models::Beta::BetaResponseInProgressEvent, OpenAI::Models::Beta::BetaResponseFailedEvent, OpenAI::Models::Beta::BetaResponseIncompleteEvent, OpenAI::Models::Beta::BetaResponseOutputItemAddedEvent, OpenAI::Models::Beta::BetaResponseOutputItemDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningTextDeltaEvent, OpenAI::Models::Beta::BetaResponseReasoningTextDoneEvent, OpenAI::Models::Beta::BetaResponseRefusalDeltaEvent, OpenAI::Models::Beta::BetaResponseRefusalDoneEvent, OpenAI::Models::Beta::BetaResponseTextDeltaEvent, OpenAI::Models::Beta::BetaResponseTextDoneEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallCompletedEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallInProgressEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallSearchingEvent, OpenAI::Models::Beta::BetaResponseImageGenCallCompletedEvent, OpenAI::Models::Beta::BetaResponseImageGenCallGeneratingEvent, OpenAI::Models::Beta::BetaResponseImageGenCallInProgressEvent, OpenAI::Models::Beta::BetaResponseImageGenCallPartialImageEvent, OpenAI::Models::Beta::BetaResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Beta::BetaResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Beta::BetaResponseMcpCallCompletedEvent, OpenAI::Models::Beta::BetaResponseMcpCallFailedEvent, OpenAI::Models::Beta::BetaResponseMcpCallInProgressEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsCompletedEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsFailedEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsInProgressEvent, OpenAI::Models::Beta::BetaResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Beta::BetaResponseQueuedEvent, OpenAI::Models::Beta::BetaResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Beta::BetaResponseCustomToolCallInputDoneEvent>]
205
+ # @return [OpenAI::Internal::Stream<OpenAI::Models::Beta::BetaResponseAudioDeltaEvent, OpenAI::Models::Beta::BetaResponseAudioDoneEvent, OpenAI::Models::Beta::BetaResponseAudioTranscriptDeltaEvent, OpenAI::Models::Beta::BetaResponseAudioTranscriptDoneEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Beta::BetaResponseCompletedEvent, OpenAI::Models::Beta::BetaResponseContentPartAddedEvent, OpenAI::Models::Beta::BetaResponseContentPartDoneEvent, OpenAI::Models::Beta::BetaResponseCreatedEvent, OpenAI::Models::Beta::BetaResponseErrorEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallCompletedEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallInProgressEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallSearchingEvent, OpenAI::Models::Beta::BetaResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Beta::BetaResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandAddedEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandDeltaEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandDoneEvent, OpenAI::Models::Beta::BetaResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Beta::BetaResponseShellCallOutputContentDoneEvent, OpenAI::Models::Beta::BetaResponseInProgressEvent, OpenAI::Models::Beta::BetaResponseFailedEvent, OpenAI::Models::Beta::BetaResponseIncompleteEvent, OpenAI::Models::Beta::BetaResponseOutputItemAddedEvent, OpenAI::Models::Beta::BetaResponseOutputItemDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningTextDeltaEvent, OpenAI::Models::Beta::BetaResponseReasoningTextDoneEvent, OpenAI::Models::Beta::BetaResponseRefusalDeltaEvent, OpenAI::Models::Beta::BetaResponseRefusalDoneEvent, OpenAI::Models::Beta::BetaResponseTextDeltaEvent, OpenAI::Models::Beta::BetaResponseTextDoneEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallCompletedEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallInProgressEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallSearchingEvent, OpenAI::Models::Beta::BetaResponseImageGenCallCompletedEvent, OpenAI::Models::Beta::BetaResponseImageGenCallGeneratingEvent, OpenAI::Models::Beta::BetaResponseImageGenCallInProgressEvent, OpenAI::Models::Beta::BetaResponseImageGenCallPartialImageEvent, OpenAI::Models::Beta::BetaResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Beta::BetaResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Beta::BetaResponseMcpCallCompletedEvent, OpenAI::Models::Beta::BetaResponseMcpCallFailedEvent, OpenAI::Models::Beta::BetaResponseMcpCallInProgressEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsCompletedEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsFailedEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsInProgressEvent, OpenAI::Models::Beta::BetaResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Beta::BetaResponseQueuedEvent, OpenAI::Models::Beta::BetaResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Beta::BetaResponseCustomToolCallInputDoneEvent, OpenAI::Streaming::UnknownStreamEvent>]
206
206
  #
207
207
  # @see OpenAI::Models::Beta::ResponseCreateParams
208
208
  def stream_raw(params = {})
@@ -298,7 +298,7 @@ module OpenAI
298
298
  #
299
299
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
300
300
  #
301
- # @return [OpenAI::Internal::Stream<OpenAI::Models::Beta::BetaResponseAudioDeltaEvent, OpenAI::Models::Beta::BetaResponseAudioDoneEvent, OpenAI::Models::Beta::BetaResponseAudioTranscriptDeltaEvent, OpenAI::Models::Beta::BetaResponseAudioTranscriptDoneEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Beta::BetaResponseCompletedEvent, OpenAI::Models::Beta::BetaResponseContentPartAddedEvent, OpenAI::Models::Beta::BetaResponseContentPartDoneEvent, OpenAI::Models::Beta::BetaResponseCreatedEvent, OpenAI::Models::Beta::BetaResponseErrorEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallCompletedEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallInProgressEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallSearchingEvent, OpenAI::Models::Beta::BetaResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Beta::BetaResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandAddedEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandDeltaEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandDoneEvent, OpenAI::Models::Beta::BetaResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Beta::BetaResponseShellCallOutputContentDoneEvent, OpenAI::Models::Beta::BetaResponseInProgressEvent, OpenAI::Models::Beta::BetaResponseFailedEvent, OpenAI::Models::Beta::BetaResponseIncompleteEvent, OpenAI::Models::Beta::BetaResponseOutputItemAddedEvent, OpenAI::Models::Beta::BetaResponseOutputItemDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningTextDeltaEvent, OpenAI::Models::Beta::BetaResponseReasoningTextDoneEvent, OpenAI::Models::Beta::BetaResponseRefusalDeltaEvent, OpenAI::Models::Beta::BetaResponseRefusalDoneEvent, OpenAI::Models::Beta::BetaResponseTextDeltaEvent, OpenAI::Models::Beta::BetaResponseTextDoneEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallCompletedEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallInProgressEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallSearchingEvent, OpenAI::Models::Beta::BetaResponseImageGenCallCompletedEvent, OpenAI::Models::Beta::BetaResponseImageGenCallGeneratingEvent, OpenAI::Models::Beta::BetaResponseImageGenCallInProgressEvent, OpenAI::Models::Beta::BetaResponseImageGenCallPartialImageEvent, OpenAI::Models::Beta::BetaResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Beta::BetaResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Beta::BetaResponseMcpCallCompletedEvent, OpenAI::Models::Beta::BetaResponseMcpCallFailedEvent, OpenAI::Models::Beta::BetaResponseMcpCallInProgressEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsCompletedEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsFailedEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsInProgressEvent, OpenAI::Models::Beta::BetaResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Beta::BetaResponseQueuedEvent, OpenAI::Models::Beta::BetaResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Beta::BetaResponseCustomToolCallInputDoneEvent>]
301
+ # @return [OpenAI::Internal::Stream<OpenAI::Models::Beta::BetaResponseAudioDeltaEvent, OpenAI::Models::Beta::BetaResponseAudioDoneEvent, OpenAI::Models::Beta::BetaResponseAudioTranscriptDeltaEvent, OpenAI::Models::Beta::BetaResponseAudioTranscriptDoneEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Beta::BetaResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Beta::BetaResponseCompletedEvent, OpenAI::Models::Beta::BetaResponseContentPartAddedEvent, OpenAI::Models::Beta::BetaResponseContentPartDoneEvent, OpenAI::Models::Beta::BetaResponseCreatedEvent, OpenAI::Models::Beta::BetaResponseErrorEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallCompletedEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallInProgressEvent, OpenAI::Models::Beta::BetaResponseFileSearchCallSearchingEvent, OpenAI::Models::Beta::BetaResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Beta::BetaResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandAddedEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandDeltaEvent, OpenAI::Models::Beta::BetaResponseShellCallCommandDoneEvent, OpenAI::Models::Beta::BetaResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Beta::BetaResponseShellCallOutputContentDoneEvent, OpenAI::Models::Beta::BetaResponseInProgressEvent, OpenAI::Models::Beta::BetaResponseFailedEvent, OpenAI::Models::Beta::BetaResponseIncompleteEvent, OpenAI::Models::Beta::BetaResponseOutputItemAddedEvent, OpenAI::Models::Beta::BetaResponseOutputItemDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::BetaResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Beta::BetaResponseReasoningTextDeltaEvent, OpenAI::Models::Beta::BetaResponseReasoningTextDoneEvent, OpenAI::Models::Beta::BetaResponseRefusalDeltaEvent, OpenAI::Models::Beta::BetaResponseRefusalDoneEvent, OpenAI::Models::Beta::BetaResponseTextDeltaEvent, OpenAI::Models::Beta::BetaResponseTextDoneEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallCompletedEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallInProgressEvent, OpenAI::Models::Beta::BetaResponseWebSearchCallSearchingEvent, OpenAI::Models::Beta::BetaResponseImageGenCallCompletedEvent, OpenAI::Models::Beta::BetaResponseImageGenCallGeneratingEvent, OpenAI::Models::Beta::BetaResponseImageGenCallInProgressEvent, OpenAI::Models::Beta::BetaResponseImageGenCallPartialImageEvent, OpenAI::Models::Beta::BetaResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Beta::BetaResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Beta::BetaResponseMcpCallCompletedEvent, OpenAI::Models::Beta::BetaResponseMcpCallFailedEvent, OpenAI::Models::Beta::BetaResponseMcpCallInProgressEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsCompletedEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsFailedEvent, OpenAI::Models::Beta::BetaResponseMcpListToolsInProgressEvent, OpenAI::Models::Beta::BetaResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Beta::BetaResponseQueuedEvent, OpenAI::Models::Beta::BetaResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Beta::BetaResponseCustomToolCallInputDoneEvent, OpenAI::Streaming::UnknownStreamEvent>]
302
302
  #
303
303
  # @see OpenAI::Models::Beta::ResponseRetrieveParams
304
304
  def retrieve_streaming(response_id, params = {})