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
@@ -198,7 +198,7 @@ module OpenAI
198
198
  #
199
199
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
200
200
  #
201
- # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent>]
201
+ # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent, OpenAI::Streaming::UnknownStreamEvent>]
202
202
  #
203
203
  # @see OpenAI::Models::Responses::ResponseCreateParams
204
204
  def stream(params)
@@ -325,7 +325,7 @@ module OpenAI
325
325
  #
326
326
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
327
327
  #
328
- # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseShellCallCommandAddedEvent, OpenAI::Models::Responses::ResponseShellCallCommandDeltaEvent, OpenAI::Models::Responses::ResponseShellCallCommandDoneEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent>]
328
+ # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseShellCallCommandAddedEvent, OpenAI::Models::Responses::ResponseShellCallCommandDeltaEvent, OpenAI::Models::Responses::ResponseShellCallCommandDoneEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent, OpenAI::Streaming::UnknownStreamEvent>]
329
329
  #
330
330
  # @see OpenAI::Models::Responses::ResponseCreateParams
331
331
  def stream_raw(params = {})
@@ -407,7 +407,7 @@ module OpenAI
407
407
  #
408
408
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
409
409
  #
410
- # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseShellCallCommandAddedEvent, OpenAI::Models::Responses::ResponseShellCallCommandDeltaEvent, OpenAI::Models::Responses::ResponseShellCallCommandDoneEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent>]
410
+ # @return [OpenAI::Internal::Stream<OpenAI::Models::Responses::ResponseAudioDeltaEvent, OpenAI::Models::Responses::ResponseAudioDoneEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Responses::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDeltaEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCodeDoneEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallCompletedEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInProgressEvent, OpenAI::Models::Responses::ResponseCodeInterpreterCallInterpretingEvent, OpenAI::Models::Responses::ResponseCompletedEvent, OpenAI::Models::Responses::ResponseContentPartAddedEvent, OpenAI::Models::Responses::ResponseContentPartDoneEvent, OpenAI::Models::Responses::ResponseCreatedEvent, OpenAI::Models::Responses::ResponseErrorEvent, OpenAI::Models::Responses::ResponseFileSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseFileSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseFileSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseShellCallCommandAddedEvent, OpenAI::Models::Responses::ResponseShellCallCommandDeltaEvent, OpenAI::Models::Responses::ResponseShellCallCommandDoneEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDeltaEvent, OpenAI::Models::Responses::ResponseShellCallOutputContentDoneEvent, OpenAI::Models::Responses::ResponseInProgressEvent, OpenAI::Models::Responses::ResponseFailedEvent, OpenAI::Models::Responses::ResponseIncompleteEvent, OpenAI::Models::Responses::ResponseOutputItemAddedEvent, OpenAI::Models::Responses::ResponseOutputItemDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartAddedEvent, OpenAI::Models::Responses::ResponseReasoningSummaryPartDoneEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningSummaryTextDoneEvent, OpenAI::Models::Responses::ResponseReasoningTextDeltaEvent, OpenAI::Models::Responses::ResponseReasoningTextDoneEvent, OpenAI::Models::Responses::ResponseRefusalDeltaEvent, OpenAI::Models::Responses::ResponseRefusalDoneEvent, OpenAI::Models::Responses::ResponseTextDeltaEvent, OpenAI::Models::Responses::ResponseTextDoneEvent, OpenAI::Models::Responses::ResponseWebSearchCallCompletedEvent, OpenAI::Models::Responses::ResponseWebSearchCallInProgressEvent, OpenAI::Models::Responses::ResponseWebSearchCallSearchingEvent, OpenAI::Models::Responses::ResponseImageGenCallCompletedEvent, OpenAI::Models::Responses::ResponseImageGenCallGeneratingEvent, OpenAI::Models::Responses::ResponseImageGenCallInProgressEvent, OpenAI::Models::Responses::ResponseImageGenCallPartialImageEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDeltaEvent, OpenAI::Models::Responses::ResponseMcpCallArgumentsDoneEvent, OpenAI::Models::Responses::ResponseMcpCallCompletedEvent, OpenAI::Models::Responses::ResponseMcpCallFailedEvent, OpenAI::Models::Responses::ResponseMcpCallInProgressEvent, OpenAI::Models::Responses::ResponseMcpListToolsCompletedEvent, OpenAI::Models::Responses::ResponseMcpListToolsFailedEvent, OpenAI::Models::Responses::ResponseMcpListToolsInProgressEvent, OpenAI::Models::Responses::ResponseOutputTextAnnotationAddedEvent, OpenAI::Models::Responses::ResponseQueuedEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDeltaEvent, OpenAI::Models::Responses::ResponseCustomToolCallInputDoneEvent, OpenAI::Streaming::UnknownStreamEvent>]
411
411
  #
412
412
  # @see OpenAI::Models::Responses::ResponseRetrieveParams
413
413
  def retrieve_streaming(response_id, params = {})
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.81.0"
4
+ VERSION = "0.83.0"
5
5
  end
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Helpers
5
+ module StructuredOutput
6
+ class SorbetAdapter
7
+ include OpenAI::Internal::Type::Converter
8
+ include OpenAI::Helpers::StructuredOutput::JsonSchemaConverter
9
+
10
+ class HydrationError < TypeError
11
+ end
12
+
13
+ sig { params(model: T.class_of(T::Struct)).void }
14
+ def initialize(model)
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_reader :name
19
+
20
+ sig { returns(OpenAI::Helpers::StructuredOutput::JsonSchema) }
21
+ def to_json_schema
22
+ end
23
+
24
+ # @api private
25
+ sig do
26
+ params(
27
+ state: OpenAI::Helpers::StructuredOutput::JsonSchemaConverter::State
28
+ )
29
+ .returns(OpenAI::Helpers::StructuredOutput::JsonSchema)
30
+ end
31
+ def to_json_schema_inner(state:)
32
+ end
33
+
34
+ # @api private
35
+ sig do
36
+ override
37
+ .params(
38
+ value: T.anything,
39
+ state: OpenAI::Internal::Type::Converter::CoerceState
40
+ )
41
+ .returns(T.anything)
42
+ end
43
+ def coerce(value, state:)
44
+ end
45
+ end
46
+
47
+ sig do
48
+ params(model: T.class_of(T::Struct))
49
+ .returns(OpenAI::Helpers::StructuredOutput::SorbetAdapter)
50
+ end
51
+ def self.from_sorbet(model)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,28 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Helpers
5
+ module Streaming
6
+ # @api private
7
+ class ResponseEventDecoder
8
+ sig { params(model: T.untyped).void }
9
+ def initialize(model:)
10
+ end
11
+
12
+ sig { params(data: T.untyped).returns(T.untyped) }
13
+ def decode(data)
14
+ end
15
+
16
+ private
17
+
18
+ sig { returns(T::Boolean) }
19
+ def response_stream_model?
20
+ end
21
+
22
+ sig { params(data: T.untyped).returns(T::Boolean) }
23
+ def unknown_response_event?(data)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -13,6 +13,7 @@ module OpenAI
13
13
  OpenAI::Streaming::ResponseTextDoneEvent,
14
14
  OpenAI::Streaming::ResponseCompletedEvent,
15
15
  OpenAI::Streaming::ResponseFunctionCallArgumentsDeltaEvent,
16
+ OpenAI::Streaming::UnknownStreamEvent,
16
17
  # Pass through other raw events
17
18
  OpenAI::Models::Responses::ResponseStreamEvent::Variants
18
19
  )
@@ -67,6 +68,10 @@ module OpenAI
67
68
  sig { returns(T.untyped) }
68
69
  def iterator
69
70
  end
71
+
72
+ sig { params(event: ResponseStreamEvent).returns(T::Boolean) }
73
+ def after_starting_event?(event)
74
+ end
70
75
  end
71
76
 
72
77
  class ResponseStreamState
@@ -0,0 +1,29 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Helpers
5
+ module Streaming
6
+ class UnknownStreamEvent
7
+ sig { returns(Symbol) }
8
+ attr_reader :type
9
+
10
+ sig { returns(T.nilable(Integer)) }
11
+ attr_reader :sequence_number
12
+
13
+ sig { returns(T::Hash[Symbol, T.untyped]) }
14
+ attr_reader :data
15
+
16
+ # @api private
17
+ sig do
18
+ params(data: T::Hash[Symbol, T.untyped]).returns(T.attached_class)
19
+ end
20
+ def self.new(data:)
21
+ end
22
+
23
+ sig { returns(T::Hash[Symbol, T.untyped]) }
24
+ def to_h
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -11,13 +11,36 @@ module OpenAI
11
11
  sig { returns(T.nilable(String)) }
12
12
  attr_reader :request_id
13
13
 
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :body
16
+
14
17
  # @api private
15
18
  sig do
16
- params(status: Integer, headers: T::Hash[String, String]).returns(
19
+ params(status: Integer, headers: T::Hash[String, String], body: T.nilable(String)).returns(
17
20
  T.attached_class
18
21
  )
19
22
  end
20
- def self.new(status:, headers:)
23
+ def self.new(status:, headers:, body: nil)
24
+ end
25
+
26
+ # @api private
27
+ sig { params(coder: T.untyped).void }
28
+ def encode_with(coder)
29
+ end
30
+
31
+ # @api private
32
+ sig { params(coder: T.untyped).void }
33
+ def init_with(coder)
34
+ end
35
+
36
+ # @api private
37
+ sig { returns(T::Array[T.any(Integer, T::Hash[String, String])]) }
38
+ def marshal_dump
39
+ end
40
+
41
+ # @api private
42
+ sig { params(values: T::Array[T.any(Integer, T::Hash[String, String])]).void }
43
+ def marshal_load(values)
21
44
  end
22
45
  end
23
46
 
@@ -19,11 +19,21 @@ module OpenAI
19
19
  log_level: Symbol,
20
20
  on_retry: T.nilable(T.proc.params(event: OpenAI::RetryEvent).void),
21
21
  method: Symbol,
22
- url: URI::Generic
22
+ url: URI::Generic,
23
+ on_response: T.nilable(
24
+ T
25
+ .proc
26
+ .params(
27
+ response: OpenAI::HTTPClient::Response,
28
+ trusted_url: URI::Generic,
29
+ response_url: URI::Generic
30
+ )
31
+ .void
32
+ )
23
33
  )
24
34
  .returns(T.attached_class)
25
35
  end
26
- def self.new(logger:, log_level:, on_retry:, method:, url:)
36
+ def self.new(logger:, log_level:, on_retry:, method:, url:, on_response: nil)
27
37
  end
28
38
 
29
39
  sig do
@@ -401,7 +401,17 @@ module OpenAI
401
401
  # @api private
402
402
  sig do
403
403
  params(
404
- req: OpenAI::Internal::Transport::BaseClient::RequestComponents
404
+ req: OpenAI::Internal::Transport::BaseClient::RequestComponents,
405
+ response_observer: T.nilable(
406
+ T
407
+ .proc
408
+ .params(
409
+ response: OpenAI::HTTPClient::Response,
410
+ url: URI::Generic,
411
+ response_url: URI::Generic
412
+ )
413
+ .void
414
+ )
405
415
  )
406
416
  .returns(
407
417
  [
@@ -411,7 +421,7 @@ module OpenAI
411
421
  ]
412
422
  )
413
423
  end
414
- private def perform_request(req)
424
+ private def perform_request(req, &response_observer)
415
425
  end
416
426
 
417
427
  # @api private
@@ -374,11 +374,12 @@ module OpenAI
374
374
  params(
375
375
  headers: T::Hash[String, String],
376
376
  stream: T::Enumerable[String],
377
- suppress_error: T::Boolean
377
+ suppress_error: T::Boolean,
378
+ body_observer: T.nilable(T.proc.params(body: String).void)
378
379
  )
379
380
  .returns(T.anything)
380
381
  end
381
- def decode_content(headers, stream:, suppress_error: false)
382
+ def decode_content(headers, stream:, suppress_error: false, &body_observer)
382
383
  end
383
384
  end
384
385
 
@@ -591,6 +591,14 @@ module OpenAI
591
591
  :"tenant.project_api_key.created",
592
592
  OpenAI::Admin::Organization::AuditLogListParams::EventType::TaggedSymbol
593
593
  )
594
+ TENANT_TRUSTED_ACCESS_BUSINESS_VERIFICATION_STARTED = T.let(
595
+ :"tenant.trusted_access.business_verification.started",
596
+ OpenAI::Admin::Organization::AuditLogListParams::EventType::TaggedSymbol
597
+ )
598
+ TENANT_TRUSTED_ACCESS_APPLICATION_SUBMITTED = T.let(
599
+ :"tenant.trusted_access.application.submitted",
600
+ OpenAI::Admin::Organization::AuditLogListParams::EventType::TaggedSymbol
601
+ )
594
602
  TENANT_CHATGPT_ACCESS_TOKEN_REVOKED = T.let(
595
603
  :"tenant.chatgpt_access_token.revoked",
596
604
  OpenAI::Admin::Organization::AuditLogListParams::EventType::TaggedSymbol
@@ -1369,6 +1369,14 @@ module OpenAI
1369
1369
  :"tenant.project_api_key.created",
1370
1370
  OpenAI::Models::Admin::Organization::AuditLogListResponse::Type::TaggedSymbol
1371
1371
  )
1372
+ TENANT_TRUSTED_ACCESS_BUSINESS_VERIFICATION_STARTED = T.let(
1373
+ :"tenant.trusted_access.business_verification.started",
1374
+ OpenAI::Models::Admin::Organization::AuditLogListResponse::Type::TaggedSymbol
1375
+ )
1376
+ TENANT_TRUSTED_ACCESS_APPLICATION_SUBMITTED = T.let(
1377
+ :"tenant.trusted_access.application.submitted",
1378
+ OpenAI::Models::Admin::Organization::AuditLogListResponse::Type::TaggedSymbol
1379
+ )
1372
1380
  TENANT_CHATGPT_ACCESS_TOKEN_REVOKED = T.let(
1373
1381
  :"tenant.chatgpt_access_token.revoked",
1374
1382
  OpenAI::Models::Admin::Organization::AuditLogListResponse::Type::TaggedSymbol
@@ -20,10 +20,6 @@ module OpenAI
20
20
  sig { returns(String) }
21
21
  attr_accessor :id
22
22
 
23
- # The unique ID of the function tool call generated by the model.
24
- sig { returns(String) }
25
- attr_accessor :call_id
26
-
27
23
  # The output from the function call generated by your code. Can be a string or an
28
24
  # list of output content.
29
25
  sig { returns(OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Output::Variants) }
@@ -45,6 +41,13 @@ module OpenAI
45
41
  sig { params(agent: T.nilable(OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Agent::OrHash)).void }
46
42
  attr_writer :agent
47
43
 
44
+ # The unique ID of the function tool call generated by the model.
45
+ sig { returns(T.nilable(String)) }
46
+ attr_reader :call_id
47
+
48
+ sig { params(call_id: String).void }
49
+ attr_writer :call_id
50
+
48
51
  # The execution context that produced this tool call.
49
52
  sig { returns(T.nilable(OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Caller::Variants)) }
50
53
  attr_accessor :caller_
@@ -75,14 +78,14 @@ module OpenAI
75
78
 
76
79
  id: String,
77
80
 
78
- call_id: String,
79
-
80
81
  output: OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Output::Variants,
81
82
 
82
83
  status: OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Status::OrSymbol,
83
84
 
84
85
  agent: T.nilable(OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Agent::OrHash),
85
86
 
87
+ call_id: String,
88
+
86
89
  caller_: T.nilable(
87
90
  T.any(
88
91
  OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Caller::Direct::OrHash,
@@ -105,9 +108,6 @@ module OpenAI
105
108
  # The unique ID of the function call tool output.
106
109
  id:,
107
110
 
108
- # The unique ID of the function tool call generated by the model.
109
- call_id:,
110
-
111
111
  # The output from the function call generated by your code. Can be a string or an
112
112
  # list of output content.
113
113
  output:,
@@ -119,6 +119,9 @@ module OpenAI
119
119
  # The agent that produced this item.
120
120
  agent: nil,
121
121
 
122
+ # The unique ID of the function tool call generated by the model.
123
+ call_id: nil,
124
+
122
125
  # The execution context that produced this tool call.
123
126
  caller_: nil,
124
127
 
@@ -141,11 +144,11 @@ module OpenAI
141
144
  override.returns(
142
145
  {
143
146
  id: String,
144
- call_id: String,
145
147
  output: OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Output::Variants,
146
148
  status: OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Status::TaggedSymbol,
147
149
  type: Symbol,
148
150
  agent: T.nilable(OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Agent),
151
+ call_id: String,
149
152
  caller_: T.nilable(OpenAI::Beta::BetaResponseFunctionToolCallOutputItem::Caller::Variants),
150
153
  created_by: String,
151
154
  name: String,
@@ -502,10 +502,6 @@ module OpenAI
502
502
  )
503
503
  end
504
504
 
505
- # The unique ID of the function tool call generated by the model.
506
- sig { returns(String) }
507
- attr_accessor :call_id
508
-
509
505
  # Text, image, or file output of the function tool call.
510
506
  sig { returns(OpenAI::Beta::BetaResponseInputItem::FunctionCallOutput::Output::Variants) }
511
507
  attr_accessor :output
@@ -526,6 +522,10 @@ module OpenAI
526
522
  sig { params(agent: T.nilable(OpenAI::Beta::BetaResponseInputItem::FunctionCallOutput::Agent::OrHash)).void }
527
523
  attr_writer :agent
528
524
 
525
+ # The unique ID of the function tool call generated by the model.
526
+ sig { returns(T.nilable(String)) }
527
+ attr_accessor :call_id
528
+
529
529
  # The execution context that produced this tool call.
530
530
  sig {
531
531
  returns(
@@ -556,14 +556,14 @@ module OpenAI
556
556
  sig do
557
557
  params(
558
558
 
559
- call_id: String,
560
-
561
559
  output: OpenAI::Beta::BetaResponseInputItem::FunctionCallOutput::Output::Variants,
562
560
 
563
561
  id: T.nilable(String),
564
562
 
565
563
  agent: T.nilable(OpenAI::Beta::BetaResponseInputItem::FunctionCallOutput::Agent::OrHash),
566
564
 
565
+ call_id: T.nilable(String),
566
+
567
567
  caller_: T.nilable(
568
568
  T.any(
569
569
  OpenAI::Beta::BetaResponseInputItem::FunctionCallOutput::Caller::Direct::OrHash,
@@ -583,9 +583,6 @@ module OpenAI
583
583
  end
584
584
  def self.new(
585
585
 
586
- # The unique ID of the function tool call generated by the model.
587
- call_id:,
588
-
589
586
  # Text, image, or file output of the function tool call.
590
587
  output:,
591
588
 
@@ -596,6 +593,9 @@ module OpenAI
596
593
  # The agent that produced this item.
597
594
  agent: nil,
598
595
 
596
+ # The unique ID of the function tool call generated by the model.
597
+ call_id: nil,
598
+
599
599
  # The execution context that produced this tool call.
600
600
  caller_: nil,
601
601
 
@@ -618,11 +618,11 @@ module OpenAI
618
618
  sig do
619
619
  override.returns(
620
620
  {
621
- call_id: String,
622
621
  output: OpenAI::Beta::BetaResponseInputItem::FunctionCallOutput::Output::Variants,
623
622
  type: Symbol,
624
623
  id: T.nilable(String),
625
624
  agent: T.nilable(OpenAI::Beta::BetaResponseInputItem::FunctionCallOutput::Agent),
625
+ call_id: T.nilable(String),
626
626
  caller_: T.nilable(
627
627
  T.any(
628
628
  OpenAI::Beta::BetaResponseInputItem::FunctionCallOutput::Caller::Direct,
@@ -42,6 +42,10 @@ module OpenAI
42
42
  sig { returns(Integer) }
43
43
  attr_accessor :total_tokens
44
44
 
45
+ # Compute units for the request. Currently null when available.
46
+ sig { returns(T.nilable(Integer)) }
47
+ attr_accessor :compute_units
48
+
45
49
  # Represents token usage details including input tokens, output tokens, a
46
50
  # breakdown of output tokens, and the total tokens used.
47
51
  sig do
@@ -55,7 +59,9 @@ module OpenAI
55
59
 
56
60
  output_tokens_details: OpenAI::Beta::BetaResponseUsage::OutputTokensDetails::OrHash,
57
61
 
58
- total_tokens: Integer
62
+ total_tokens: Integer,
63
+
64
+ compute_units: T.nilable(Integer)
59
65
  )
60
66
  .returns(T.attached_class)
61
67
  end
@@ -74,8 +80,11 @@ module OpenAI
74
80
  output_tokens_details:,
75
81
 
76
82
  # The total number of tokens used.
83
+ total_tokens:,
84
+
85
+ # Compute units for the request. Currently null when available.
77
86
 
78
- total_tokens:
87
+ compute_units: nil
79
88
  )
80
89
  end
81
90
 
@@ -86,7 +95,8 @@ module OpenAI
86
95
  input_tokens_details: OpenAI::Beta::BetaResponseUsage::InputTokensDetails,
87
96
  output_tokens: Integer,
88
97
  output_tokens_details: OpenAI::Beta::BetaResponseUsage::OutputTokensDetails,
89
- total_tokens: Integer
98
+ total_tokens: Integer,
99
+ compute_units: T.nilable(Integer)
90
100
  }
91
101
  )
92
102
  end
@@ -31,6 +31,10 @@ module OpenAI
31
31
  sig { params(completion_tokens_details: OpenAI::CompletionUsage::CompletionTokensDetails::OrHash).void }
32
32
  attr_writer :completion_tokens_details
33
33
 
34
+ # Compute units for the request. Currently null when available.
35
+ sig { returns(T.nilable(Integer)) }
36
+ attr_accessor :compute_units
37
+
34
38
  # Breakdown of tokens used in the prompt.
35
39
  sig { returns(T.nilable(OpenAI::CompletionUsage::PromptTokensDetails)) }
36
40
  attr_reader :prompt_tokens_details
@@ -50,6 +54,8 @@ module OpenAI
50
54
 
51
55
  completion_tokens_details: OpenAI::CompletionUsage::CompletionTokensDetails::OrHash,
52
56
 
57
+ compute_units: T.nilable(Integer),
58
+
53
59
  prompt_tokens_details: OpenAI::CompletionUsage::PromptTokensDetails::OrHash
54
60
  )
55
61
  .returns(T.attached_class)
@@ -68,6 +74,9 @@ module OpenAI
68
74
  # Breakdown of tokens used in a completion.
69
75
  completion_tokens_details: nil,
70
76
 
77
+ # Compute units for the request. Currently null when available.
78
+ compute_units: nil,
79
+
71
80
  # Breakdown of tokens used in the prompt.
72
81
 
73
82
  prompt_tokens_details: nil
@@ -81,6 +90,7 @@ module OpenAI
81
90
  prompt_tokens: Integer,
82
91
  total_tokens: Integer,
83
92
  completion_tokens_details: OpenAI::CompletionUsage::CompletionTokensDetails,
93
+ compute_units: T.nilable(Integer),
84
94
  prompt_tokens_details: OpenAI::CompletionUsage::PromptTokensDetails
85
95
  }
86
96
  )
@@ -18,10 +18,6 @@ module OpenAI
18
18
  sig { returns(String) }
19
19
  attr_accessor :id
20
20
 
21
- # The unique ID of the function tool call generated by the model.
22
- sig { returns(String) }
23
- attr_accessor :call_id
24
-
25
21
  # The output from the function call generated by your code. Can be a string or an
26
22
  # list of output content.
27
23
  sig { returns(OpenAI::Responses::ResponseFunctionToolCallOutputItem::Output::Variants) }
@@ -36,6 +32,13 @@ module OpenAI
36
32
  sig { returns(Symbol) }
37
33
  attr_accessor :type
38
34
 
35
+ # The unique ID of the function tool call generated by the model.
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :call_id
38
+
39
+ sig { params(call_id: String).void }
40
+ attr_writer :call_id
41
+
39
42
  # The execution context that produced this tool call.
40
43
  sig { returns(T.nilable(OpenAI::Responses::ResponseFunctionToolCallOutputItem::Caller::Variants)) }
41
44
  attr_accessor :caller_
@@ -66,12 +69,12 @@ module OpenAI
66
69
 
67
70
  id: String,
68
71
 
69
- call_id: String,
70
-
71
72
  output: OpenAI::Responses::ResponseFunctionToolCallOutputItem::Output::Variants,
72
73
 
73
74
  status: OpenAI::Responses::ResponseFunctionToolCallOutputItem::Status::OrSymbol,
74
75
 
76
+ call_id: String,
77
+
75
78
  caller_: T.nilable(
76
79
  T.any(
77
80
  OpenAI::Responses::ResponseFunctionToolCallOutputItem::Caller::Direct::OrHash,
@@ -94,9 +97,6 @@ module OpenAI
94
97
  # The unique ID of the function call tool output.
95
98
  id:,
96
99
 
97
- # The unique ID of the function tool call generated by the model.
98
- call_id:,
99
-
100
100
  # The output from the function call generated by your code. Can be a string or an
101
101
  # list of output content.
102
102
  output:,
@@ -105,6 +105,9 @@ module OpenAI
105
105
  # Populated when items are returned via API.
106
106
  status:,
107
107
 
108
+ # The unique ID of the function tool call generated by the model.
109
+ call_id: nil,
110
+
108
111
  # The execution context that produced this tool call.
109
112
  caller_: nil,
110
113
 
@@ -127,10 +130,10 @@ module OpenAI
127
130
  override.returns(
128
131
  {
129
132
  id: String,
130
- call_id: String,
131
133
  output: OpenAI::Responses::ResponseFunctionToolCallOutputItem::Output::Variants,
132
134
  status: OpenAI::Responses::ResponseFunctionToolCallOutputItem::Status::TaggedSymbol,
133
135
  type: Symbol,
136
+ call_id: String,
134
137
  caller_: T.nilable(OpenAI::Responses::ResponseFunctionToolCallOutputItem::Caller::Variants),
135
138
  created_by: String,
136
139
  name: String,