openai 0.71.0 → 0.73.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 (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/admin/organization/organization_spend_limit.rb +151 -0
  5. data/lib/openai/models/admin/organization/organization_spend_limit_deleted.rb +33 -0
  6. data/lib/openai/models/admin/organization/projects/project_spend_limit.rb +155 -0
  7. data/lib/openai/models/admin/organization/projects/project_spend_limit_deleted.rb +35 -0
  8. data/lib/openai/models/admin/organization/projects/spend_limit_delete_params.rb +26 -0
  9. data/lib/openai/models/admin/organization/projects/spend_limit_retrieve_params.rb +26 -0
  10. data/lib/openai/models/admin/organization/projects/spend_limit_update_params.rb +77 -0
  11. data/lib/openai/models/admin/organization/spend_limit_delete_params.rb +18 -0
  12. data/lib/openai/models/admin/organization/spend_limit_retrieve_params.rb +18 -0
  13. data/lib/openai/models/admin/organization/spend_limit_update_params.rb +67 -0
  14. data/lib/openai/models/audio/transcription.rb +10 -1
  15. data/lib/openai/models/audio/transcription_create_params.rb +24 -5
  16. data/lib/openai/models/audio/transcription_language.rb +20 -0
  17. data/lib/openai/models/audio/transcription_text_done_event.rb +10 -1
  18. data/lib/openai/models/audio_model.rb +1 -0
  19. data/lib/openai/models/beta/beta_response.rb +12 -6
  20. data/lib/openai/models/beta/beta_response_error.rb +1 -0
  21. data/lib/openai/models/beta/beta_response_text_config.rb +4 -2
  22. data/lib/openai/models/beta/beta_responses_client_event.rb +12 -6
  23. data/lib/openai/models/beta/response_create_params.rb +12 -6
  24. data/lib/openai/models/beta/responses/input_token_count_params.rb +12 -4
  25. data/lib/openai/models/chat/completion_create_params.rb +8 -6
  26. data/lib/openai/models/realtime/audio_transcription.rb +35 -8
  27. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +10 -1
  28. data/lib/openai/models/reasoning.rb +8 -2
  29. data/lib/openai/models/responses/input_token_count_params.rb +4 -2
  30. data/lib/openai/models/responses/response.rb +4 -4
  31. data/lib/openai/models/responses/response_create_params.rb +4 -4
  32. data/lib/openai/models/responses/response_error.rb +1 -0
  33. data/lib/openai/models/responses/response_text_config.rb +4 -2
  34. data/lib/openai/models/responses/responses_client_event.rb +4 -4
  35. data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +121 -0
  36. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +6 -3
  37. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +9 -2
  38. data/lib/openai/resources/admin/organization/projects/spend_limit.rb +95 -0
  39. data/lib/openai/resources/admin/organization/projects.rb +4 -0
  40. data/lib/openai/resources/admin/organization/spend_limit.rb +86 -0
  41. data/lib/openai/resources/admin/organization.rb +4 -0
  42. data/lib/openai/resources/audio/transcriptions.rb +12 -4
  43. data/lib/openai/resources/beta/responses.rb +4 -4
  44. data/lib/openai/resources/chat/completions.rb +4 -4
  45. data/lib/openai/resources/responses.rb +4 -4
  46. data/lib/openai/resources/webhooks.rb +1 -1
  47. data/lib/openai/version.rb +1 -1
  48. data/lib/openai.rb +14 -0
  49. data/rbi/openai/models/admin/organization/organization_spend_limit.rbi +278 -0
  50. data/rbi/openai/models/admin/organization/organization_spend_limit_deleted.rbi +48 -0
  51. data/rbi/openai/models/admin/organization/projects/project_spend_limit.rbi +280 -0
  52. data/rbi/openai/models/admin/organization/projects/project_spend_limit_deleted.rbi +49 -0
  53. data/rbi/openai/models/admin/organization/projects/spend_limit_delete_params.rbi +44 -0
  54. data/rbi/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbi +44 -0
  55. data/rbi/openai/models/admin/organization/projects/spend_limit_update_params.rbi +149 -0
  56. data/rbi/openai/models/admin/organization/spend_limit_delete_params.rbi +34 -0
  57. data/rbi/openai/models/admin/organization/spend_limit_retrieve_params.rbi +34 -0
  58. data/rbi/openai/models/admin/organization/spend_limit_update_params.rbi +141 -0
  59. data/rbi/openai/models/audio/transcription.rbi +19 -0
  60. data/rbi/openai/models/audio/transcription_create_params.rbi +31 -3
  61. data/rbi/openai/models/audio/transcription_language.rbi +33 -0
  62. data/rbi/openai/models/audio/transcription_text_done_event.rbi +19 -0
  63. data/rbi/openai/models/audio_model.rbi +2 -0
  64. data/rbi/openai/models/beta/beta_response.rbi +18 -15
  65. data/rbi/openai/models/beta/beta_response_error.rbi +5 -0
  66. data/rbi/openai/models/beta/beta_response_text_config.rbi +6 -3
  67. data/rbi/openai/models/beta/beta_responses_client_event.rbi +18 -15
  68. data/rbi/openai/models/beta/response_create_params.rbi +18 -15
  69. data/rbi/openai/models/beta/responses/input_token_count_params.rbi +18 -6
  70. data/rbi/openai/models/chat/completion_create_params.rbi +12 -15
  71. data/rbi/openai/models/realtime/audio_transcription.rbi +50 -9
  72. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +19 -0
  73. data/rbi/openai/models/reasoning.rbi +12 -3
  74. data/rbi/openai/models/responses/input_token_count_params.rbi +6 -3
  75. data/rbi/openai/models/responses/response.rbi +6 -12
  76. data/rbi/openai/models/responses/response_create_params.rbi +6 -12
  77. data/rbi/openai/models/responses/response_error.rbi +5 -0
  78. data/rbi/openai/models/responses/response_text_config.rbi +6 -3
  79. data/rbi/openai/models/responses/responses_client_event.rbi +6 -12
  80. data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +222 -0
  81. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +7 -3
  82. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  83. data/rbi/openai/resources/admin/organization/projects/spend_limit.rbi +78 -0
  84. data/rbi/openai/resources/admin/organization/projects.rbi +7 -0
  85. data/rbi/openai/resources/admin/organization/spend_limit.rbi +57 -0
  86. data/rbi/openai/resources/admin/organization.rbi +3 -0
  87. data/rbi/openai/resources/audio/transcriptions.rbi +20 -2
  88. data/rbi/openai/resources/beta/responses.rbi +4 -4
  89. data/rbi/openai/resources/chat/completions.rbi +8 -6
  90. data/rbi/openai/resources/responses.rbi +4 -4
  91. data/rbi/openai/resources/webhooks.rbi +1 -0
  92. data/sig/openai/models/admin/organization/organization_spend_limit.rbs +94 -0
  93. data/sig/openai/models/admin/organization/organization_spend_limit_deleted.rbs +28 -0
  94. data/sig/openai/models/admin/organization/projects/project_spend_limit.rbs +96 -0
  95. data/sig/openai/models/admin/organization/projects/project_spend_limit_deleted.rbs +30 -0
  96. data/sig/openai/models/admin/organization/projects/spend_limit_delete_params.rbs +29 -0
  97. data/sig/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbs +29 -0
  98. data/sig/openai/models/admin/organization/projects/spend_limit_update_params.rbs +67 -0
  99. data/sig/openai/models/admin/organization/spend_limit_delete_params.rbs +19 -0
  100. data/sig/openai/models/admin/organization/spend_limit_retrieve_params.rbs +19 -0
  101. data/sig/openai/models/admin/organization/spend_limit_update_params.rbs +60 -0
  102. data/sig/openai/models/audio/transcription.rbs +9 -0
  103. data/sig/openai/models/audio/transcription_create_params.rbs +14 -0
  104. data/sig/openai/models/audio/transcription_language.rbs +15 -0
  105. data/sig/openai/models/audio/transcription_text_done_event.rbs +9 -0
  106. data/sig/openai/models/audio_model.rbs +2 -0
  107. data/sig/openai/models/beta/beta_response.rbs +8 -12
  108. data/sig/openai/models/beta/beta_response_error.rbs +2 -0
  109. data/sig/openai/models/beta/beta_responses_client_event.rbs +8 -12
  110. data/sig/openai/models/beta/response_create_params.rbs +8 -12
  111. data/sig/openai/models/chat/completion_create_params.rbs +8 -12
  112. data/sig/openai/models/realtime/audio_transcription.rbs +18 -0
  113. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +9 -0
  114. data/sig/openai/models/responses/response.rbs +8 -12
  115. data/sig/openai/models/responses/response_create_params.rbs +8 -12
  116. data/sig/openai/models/responses/response_error.rbs +2 -0
  117. data/sig/openai/models/responses/responses_client_event.rbs +8 -12
  118. data/sig/openai/models/webhooks/live_call_incoming_webhook_event.rbs +90 -0
  119. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  120. data/sig/openai/resources/admin/organization/projects/spend_limit.rbs +31 -0
  121. data/sig/openai/resources/admin/organization/projects.rbs +2 -0
  122. data/sig/openai/resources/admin/organization/spend_limit.rbs +26 -0
  123. data/sig/openai/resources/admin/organization.rbs +2 -0
  124. data/sig/openai/resources/audio/transcriptions.rbs +4 -0
  125. data/sig/openai/resources/beta/responses.rbs +4 -4
  126. data/sig/openai/resources/chat/completions.rbs +4 -4
  127. data/sig/openai/resources/responses.rbs +4 -4
  128. data/sig/openai/resources/webhooks.rbs +1 -0
  129. metadata +44 -2
@@ -195,10 +195,7 @@ module OpenAI
195
195
  # hit rates. Replaces the `user` field.
196
196
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
197
197
  sig { returns(T.nilable(String)) }
198
- attr_reader :prompt_cache_key
199
-
200
- sig { params(prompt_cache_key: String).void }
201
- attr_writer :prompt_cache_key
198
+ attr_accessor :prompt_cache_key
202
199
 
203
200
  # Options for prompt caching. Supported for `gpt-5.6` and later models. By
204
201
  # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
@@ -274,10 +271,7 @@ module OpenAI
274
271
  # identifying information.
275
272
  # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
276
273
  sig { returns(T.nilable(String)) }
277
- attr_reader :safety_identifier
278
-
279
- sig { params(safety_identifier: String).void }
280
- attr_writer :safety_identifier
274
+ attr_accessor :safety_identifier
281
275
 
282
276
  # Specifies the processing type used for serving the request.
283
277
  #
@@ -546,7 +540,7 @@ module OpenAI
546
540
  parallel_tool_calls: T.nilable(T::Boolean),
547
541
  previous_response_id: T.nilable(String),
548
542
  prompt: T.nilable(OpenAI::Beta::BetaResponsePrompt::OrHash),
549
- prompt_cache_key: String,
543
+ prompt_cache_key: T.nilable(String),
550
544
  prompt_cache_options:
551
545
  OpenAI::Beta::ResponseCreateParams::PromptCacheOptions::OrHash,
552
546
  prompt_cache_retention:
@@ -555,7 +549,7 @@ module OpenAI
555
549
  ),
556
550
  reasoning:
557
551
  T.nilable(OpenAI::Beta::ResponseCreateParams::Reasoning::OrHash),
558
- safety_identifier: String,
552
+ safety_identifier: T.nilable(String),
559
553
  service_tier:
560
554
  T.nilable(
561
555
  OpenAI::Beta::ResponseCreateParams::ServiceTier::OrSymbol
@@ -857,7 +851,7 @@ module OpenAI
857
851
  parallel_tool_calls: T.nilable(T::Boolean),
858
852
  previous_response_id: T.nilable(String),
859
853
  prompt: T.nilable(OpenAI::Beta::BetaResponsePrompt),
860
- prompt_cache_key: String,
854
+ prompt_cache_key: T.nilable(String),
861
855
  prompt_cache_options:
862
856
  OpenAI::Beta::ResponseCreateParams::PromptCacheOptions,
863
857
  prompt_cache_retention:
@@ -866,7 +860,7 @@ module OpenAI
866
860
  ),
867
861
  reasoning:
868
862
  T.nilable(OpenAI::Beta::ResponseCreateParams::Reasoning),
869
- safety_identifier: String,
863
+ safety_identifier: T.nilable(String),
870
864
  service_tier:
871
865
  T.nilable(
872
866
  OpenAI::Beta::ResponseCreateParams::ServiceTier::OrSymbol
@@ -2099,7 +2093,10 @@ module OpenAI
2099
2093
  )
2100
2094
  end
2101
2095
 
2102
- # Controls which reasoning items are rendered back to the model on later turns.
2096
+ # Controls which reasoning items are rendered back to the model on later turns. If
2097
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
2098
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
2099
+ #
2103
2100
  # When returned on a response, this is the effective reasoning context mode used
2104
2101
  # for the response.
2105
2102
  sig do
@@ -2211,7 +2208,10 @@ module OpenAI
2211
2208
  ).returns(T.attached_class)
2212
2209
  end
2213
2210
  def self.new(
2214
- # Controls which reasoning items are rendered back to the model on later turns.
2211
+ # Controls which reasoning items are rendered back to the model on later turns. If
2212
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
2213
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
2214
+ #
2215
2215
  # When returned on a response, this is the effective reasoning context mode used
2216
2216
  # for the response.
2217
2217
  context: nil,
@@ -2272,7 +2272,10 @@ module OpenAI
2272
2272
  def to_hash
2273
2273
  end
2274
2274
 
2275
- # Controls which reasoning items are rendered back to the model on later turns.
2275
+ # Controls which reasoning items are rendered back to the model on later turns. If
2276
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
2277
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
2278
+ #
2276
2279
  # When returned on a response, this is the effective reasoning context mode used
2277
2280
  # for the response.
2278
2281
  module Context
@@ -544,7 +544,10 @@ module OpenAI
544
544
  )
545
545
  end
546
546
 
547
- # Controls which reasoning items are rendered back to the model on later turns.
547
+ # Controls which reasoning items are rendered back to the model on later turns. If
548
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
549
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
550
+ #
548
551
  # When returned on a response, this is the effective reasoning context mode used
549
552
  # for the response.
550
553
  sig do
@@ -654,7 +657,10 @@ module OpenAI
654
657
  ).returns(T.attached_class)
655
658
  end
656
659
  def self.new(
657
- # Controls which reasoning items are rendered back to the model on later turns.
660
+ # Controls which reasoning items are rendered back to the model on later turns. If
661
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
662
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
663
+ #
658
664
  # When returned on a response, this is the effective reasoning context mode used
659
665
  # for the response.
660
666
  context: nil,
@@ -715,7 +721,10 @@ module OpenAI
715
721
  def to_hash
716
722
  end
717
723
 
718
- # Controls which reasoning items are rendered back to the model on later turns.
724
+ # Controls which reasoning items are rendered back to the model on later turns. If
725
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
726
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
727
+ #
719
728
  # When returned on a response, this is the effective reasoning context mode used
720
729
  # for the response.
721
730
  module Context
@@ -1006,7 +1015,8 @@ module OpenAI
1006
1015
 
1007
1016
  # Constrains the verbosity of the model's response. Lower values will result in
1008
1017
  # more concise responses, while higher values will result in more verbose
1009
- # responses. Currently supported values are `low`, `medium`, and `high`.
1018
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
1019
+ # default is `medium`.
1010
1020
  sig do
1011
1021
  returns(
1012
1022
  T.nilable(
@@ -1052,7 +1062,8 @@ module OpenAI
1052
1062
  format_: nil,
1053
1063
  # Constrains the verbosity of the model's response. Lower values will result in
1054
1064
  # more concise responses, while higher values will result in more verbose
1055
- # responses. Currently supported values are `low`, `medium`, and `high`.
1065
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
1066
+ # default is `medium`.
1056
1067
  verbosity: nil
1057
1068
  )
1058
1069
  end
@@ -1078,7 +1089,8 @@ module OpenAI
1078
1089
 
1079
1090
  # Constrains the verbosity of the model's response. Lower values will result in
1080
1091
  # more concise responses, while higher values will result in more verbose
1081
- # responses. Currently supported values are `low`, `medium`, and `high`.
1092
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
1093
+ # default is `medium`.
1082
1094
  module Verbosity
1083
1095
  extend OpenAI::Internal::Type::Enum
1084
1096
 
@@ -236,10 +236,7 @@ module OpenAI
236
236
  # hit rates. Replaces the `user` field.
237
237
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
238
238
  sig { returns(T.nilable(String)) }
239
- attr_reader :prompt_cache_key
240
-
241
- sig { params(prompt_cache_key: String).void }
242
- attr_writer :prompt_cache_key
239
+ attr_accessor :prompt_cache_key
243
240
 
244
241
  # Options for prompt caching. Supported for `gpt-5.6` and later models. By
245
242
  # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
@@ -344,10 +341,7 @@ module OpenAI
344
341
  # identifying information.
345
342
  # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
346
343
  sig { returns(T.nilable(String)) }
347
- attr_reader :safety_identifier
348
-
349
- sig { params(safety_identifier: String).void }
350
- attr_writer :safety_identifier
344
+ attr_accessor :safety_identifier
351
345
 
352
346
  # This feature is in Beta. If specified, our system will make a best effort to
353
347
  # sample deterministically, such that repeated requests with the same `seed` and
@@ -515,7 +509,8 @@ module OpenAI
515
509
 
516
510
  # Constrains the verbosity of the model's response. Lower values will result in
517
511
  # more concise responses, while higher values will result in more verbose
518
- # responses. Currently supported values are `low`, `medium`, and `high`.
512
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
513
+ # default is `medium`.
519
514
  sig do
520
515
  returns(
521
516
  T.nilable(OpenAI::Chat::CompletionCreateParams::Verbosity::OrSymbol)
@@ -584,7 +579,7 @@ module OpenAI
584
579
  prediction:
585
580
  T.nilable(OpenAI::Chat::ChatCompletionPredictionContent::OrHash),
586
581
  presence_penalty: T.nilable(Float),
587
- prompt_cache_key: String,
582
+ prompt_cache_key: T.nilable(String),
588
583
  prompt_cache_options:
589
584
  OpenAI::Chat::CompletionCreateParams::PromptCacheOptions::OrHash,
590
585
  prompt_cache_retention:
@@ -599,7 +594,7 @@ module OpenAI
599
594
  OpenAI::StructuredOutput::JsonSchemaConverter,
600
595
  OpenAI::ResponseFormatJSONObject::OrHash
601
596
  ),
602
- safety_identifier: String,
597
+ safety_identifier: T.nilable(String),
603
598
  seed: T.nilable(Integer),
604
599
  service_tier:
605
600
  T.nilable(
@@ -870,7 +865,8 @@ module OpenAI
870
865
  user: nil,
871
866
  # Constrains the verbosity of the model's response. Lower values will result in
872
867
  # more concise responses, while higher values will result in more verbose
873
- # responses. Currently supported values are `low`, `medium`, and `high`.
868
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
869
+ # default is `medium`.
874
870
  verbosity: nil,
875
871
  # This tool searches the web for relevant results to use in a response. Learn more
876
872
  # about the
@@ -922,7 +918,7 @@ module OpenAI
922
918
  prediction:
923
919
  T.nilable(OpenAI::Chat::ChatCompletionPredictionContent),
924
920
  presence_penalty: T.nilable(Float),
925
- prompt_cache_key: String,
921
+ prompt_cache_key: T.nilable(String),
926
922
  prompt_cache_options:
927
923
  OpenAI::Chat::CompletionCreateParams::PromptCacheOptions,
928
924
  prompt_cache_retention:
@@ -936,7 +932,7 @@ module OpenAI
936
932
  OpenAI::ResponseFormatJSONSchema,
937
933
  OpenAI::ResponseFormatJSONObject
938
934
  ),
939
- safety_identifier: String,
935
+ safety_identifier: T.nilable(String),
940
936
  seed: T.nilable(Integer),
941
937
  service_tier:
942
938
  T.nilable(
@@ -1819,7 +1815,8 @@ module OpenAI
1819
1815
 
1820
1816
  # Constrains the verbosity of the model's response. Lower values will result in
1821
1817
  # more concise responses, while higher values will result in more verbose
1822
- # responses. Currently supported values are `low`, `medium`, and `high`.
1818
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
1819
+ # default is `medium`.
1823
1820
  module Verbosity
1824
1821
  extend OpenAI::Internal::Type::Enum
1825
1822
 
@@ -29,6 +29,14 @@ module OpenAI
29
29
  end
30
30
  attr_writer :delay
31
31
 
32
+ # Words or phrases to guide transcription of the input audio. Supported by
33
+ # `gpt-transcribe` and `gpt-live-transcribe`.
34
+ sig { returns(T.nilable(T::Array[String])) }
35
+ attr_reader :keywords
36
+
37
+ sig { params(keywords: T::Array[String]).void }
38
+ attr_writer :keywords
39
+
32
40
  # The language of the input audio. Supplying the input language in
33
41
  # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
34
42
  # format will improve accuracy and latency.
@@ -38,10 +46,20 @@ module OpenAI
38
46
  sig { params(language: String).void }
39
47
  attr_writer :language
40
48
 
49
+ # Possible languages of the input audio, in
50
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.
51
+ # Supported by `gpt-transcribe` and `gpt-live-transcribe`.
52
+ sig { returns(T.nilable(T::Array[String])) }
53
+ attr_reader :languages
54
+
55
+ sig { params(languages: T::Array[String]).void }
56
+ attr_writer :languages
57
+
41
58
  # The model to use for transcription. Current options are `whisper-1`,
42
- # `gpt-4o-mini-transcribe`, `gpt-4o-mini-transcribe-2025-12-15`,
43
- # `gpt-4o-transcribe`, `gpt-4o-transcribe-diarize`, and `gpt-realtime-whisper`.
44
- # Use `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
59
+ # `gpt-transcribe`, `gpt-live-transcribe`, `gpt-4o-mini-transcribe`,
60
+ # `gpt-4o-mini-transcribe-2025-12-15`, `gpt-4o-transcribe`,
61
+ # `gpt-4o-transcribe-diarize`, and `gpt-realtime-whisper`. Use
62
+ # `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
45
63
  sig do
46
64
  returns(
47
65
  T.nilable(
@@ -80,7 +98,9 @@ module OpenAI
80
98
  sig do
81
99
  params(
82
100
  delay: OpenAI::Realtime::AudioTranscription::Delay::OrSymbol,
101
+ keywords: T::Array[String],
83
102
  language: String,
103
+ languages: T::Array[String],
84
104
  model:
85
105
  T.any(
86
106
  String,
@@ -94,14 +114,22 @@ module OpenAI
94
114
  # values can improve transcription accuracy at the cost of latency. Only supported
95
115
  # with `gpt-realtime-whisper` in GA Realtime sessions.
96
116
  delay: nil,
117
+ # Words or phrases to guide transcription of the input audio. Supported by
118
+ # `gpt-transcribe` and `gpt-live-transcribe`.
119
+ keywords: nil,
97
120
  # The language of the input audio. Supplying the input language in
98
121
  # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
99
122
  # format will improve accuracy and latency.
100
123
  language: nil,
124
+ # Possible languages of the input audio, in
125
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.
126
+ # Supported by `gpt-transcribe` and `gpt-live-transcribe`.
127
+ languages: nil,
101
128
  # The model to use for transcription. Current options are `whisper-1`,
102
- # `gpt-4o-mini-transcribe`, `gpt-4o-mini-transcribe-2025-12-15`,
103
- # `gpt-4o-transcribe`, `gpt-4o-transcribe-diarize`, and `gpt-realtime-whisper`.
104
- # Use `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
129
+ # `gpt-transcribe`, `gpt-live-transcribe`, `gpt-4o-mini-transcribe`,
130
+ # `gpt-4o-mini-transcribe-2025-12-15`, `gpt-4o-transcribe`,
131
+ # `gpt-4o-transcribe-diarize`, and `gpt-realtime-whisper`. Use
132
+ # `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
105
133
  model: nil,
106
134
  # An optional text to guide the model's style or continue a previous audio
107
135
  # segment. For `whisper-1`, the
@@ -117,7 +145,9 @@ module OpenAI
117
145
  override.returns(
118
146
  {
119
147
  delay: OpenAI::Realtime::AudioTranscription::Delay::OrSymbol,
148
+ keywords: T::Array[String],
120
149
  language: String,
150
+ languages: T::Array[String],
121
151
  model:
122
152
  T.any(
123
153
  String,
@@ -180,9 +210,10 @@ module OpenAI
180
210
  end
181
211
 
182
212
  # The model to use for transcription. Current options are `whisper-1`,
183
- # `gpt-4o-mini-transcribe`, `gpt-4o-mini-transcribe-2025-12-15`,
184
- # `gpt-4o-transcribe`, `gpt-4o-transcribe-diarize`, and `gpt-realtime-whisper`.
185
- # Use `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
213
+ # `gpt-transcribe`, `gpt-live-transcribe`, `gpt-4o-mini-transcribe`,
214
+ # `gpt-4o-mini-transcribe-2025-12-15`, `gpt-4o-transcribe`,
215
+ # `gpt-4o-transcribe-diarize`, and `gpt-realtime-whisper`. Use
216
+ # `gpt-4o-transcribe-diarize` when you need diarization with speaker labels.
186
217
  module Model
187
218
  extend OpenAI::Internal::Type::Union
188
219
 
@@ -213,6 +244,16 @@ module OpenAI
213
244
  :"whisper-1",
214
245
  OpenAI::Realtime::AudioTranscription::Model::TaggedSymbol
215
246
  )
247
+ GPT_TRANSCRIBE =
248
+ T.let(
249
+ :"gpt-transcribe",
250
+ OpenAI::Realtime::AudioTranscription::Model::TaggedSymbol
251
+ )
252
+ GPT_LIVE_TRANSCRIBE =
253
+ T.let(
254
+ :"gpt-live-transcribe",
255
+ OpenAI::Realtime::AudioTranscription::Model::TaggedSymbol
256
+ )
216
257
  GPT_4O_MINI_TRANSCRIBE =
217
258
  T.let(
218
259
  :"gpt-4o-mini-transcribe",
@@ -44,6 +44,20 @@ module OpenAI
44
44
  end
45
45
  attr_accessor :usage
46
46
 
47
+ # The languages detected in the audio. Returned by `gpt-transcribe`. An empty
48
+ # array indicates that no language could be reliably detected.
49
+ sig do
50
+ returns(T.nilable(T::Array[OpenAI::Audio::TranscriptionLanguage]))
51
+ end
52
+ attr_reader :languages
53
+
54
+ sig do
55
+ params(
56
+ languages: T::Array[OpenAI::Audio::TranscriptionLanguage::OrHash]
57
+ ).void
58
+ end
59
+ attr_writer :languages
60
+
47
61
  # The log probabilities of the transcription.
48
62
  sig do
49
63
  returns(T.nilable(T::Array[OpenAI::Realtime::LogProbProperties]))
@@ -71,6 +85,7 @@ module OpenAI
71
85
  OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens::OrHash,
72
86
  OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration::OrHash
73
87
  ),
88
+ languages: T::Array[OpenAI::Audio::TranscriptionLanguage::OrHash],
74
89
  logprobs:
75
90
  T.nilable(T::Array[OpenAI::Realtime::LogProbProperties::OrHash]),
76
91
  type: Symbol
@@ -88,6 +103,9 @@ module OpenAI
88
103
  # Usage statistics for the transcription, this is billed according to the ASR
89
104
  # model's pricing rather than the realtime model's pricing.
90
105
  usage:,
106
+ # The languages detected in the audio. Returned by `gpt-transcribe`. An empty
107
+ # array indicates that no language could be reliably detected.
108
+ languages: nil,
91
109
  # The log probabilities of the transcription.
92
110
  logprobs: nil,
93
111
  # The event type, must be `conversation.item.input_audio_transcription.completed`.
@@ -108,6 +126,7 @@ module OpenAI
108
126
  OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageTokens,
109
127
  OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent::Usage::TranscriptTextUsageDuration
110
128
  ),
129
+ languages: T::Array[OpenAI::Audio::TranscriptionLanguage],
111
130
  logprobs: T.nilable(T::Array[OpenAI::Realtime::LogProbProperties])
112
131
  }
113
132
  )
@@ -6,7 +6,10 @@ module OpenAI
6
6
  OrHash =
7
7
  T.type_alias { T.any(OpenAI::Reasoning, OpenAI::Internal::AnyHash) }
8
8
 
9
- # Controls which reasoning items are rendered back to the model on later turns.
9
+ # Controls which reasoning items are rendered back to the model on later turns. If
10
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
11
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
12
+ #
10
13
  # When returned on a response, this is the effective reasoning context mode used
11
14
  # for the response.
12
15
  sig { returns(T.nilable(OpenAI::Reasoning::Context::OrSymbol)) }
@@ -66,7 +69,10 @@ module OpenAI
66
69
  ).returns(T.attached_class)
67
70
  end
68
71
  def self.new(
69
- # Controls which reasoning items are rendered back to the model on later turns.
72
+ # Controls which reasoning items are rendered back to the model on later turns. If
73
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
74
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
75
+ #
70
76
  # When returned on a response, this is the effective reasoning context mode used
71
77
  # for the response.
72
78
  context: nil,
@@ -112,7 +118,10 @@ module OpenAI
112
118
  def to_hash
113
119
  end
114
120
 
115
- # Controls which reasoning items are rendered back to the model on later turns.
121
+ # Controls which reasoning items are rendered back to the model on later turns. If
122
+ # omitted or set to `auto`, the model determines the context mode. The `gpt-5.6`
123
+ # model family defaults to `all_turns`; earlier models default to `current_turn`.
124
+ #
116
125
  # When returned on a response, this is the effective reasoning context mode used
117
126
  # for the response.
118
127
  module Context
@@ -523,7 +523,8 @@ module OpenAI
523
523
 
524
524
  # Constrains the verbosity of the model's response. Lower values will result in
525
525
  # more concise responses, while higher values will result in more verbose
526
- # responses. Currently supported values are `low`, `medium`, and `high`.
526
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
527
+ # default is `medium`.
527
528
  sig do
528
529
  returns(
529
530
  T.nilable(
@@ -569,7 +570,8 @@ module OpenAI
569
570
  format_: nil,
570
571
  # Constrains the verbosity of the model's response. Lower values will result in
571
572
  # more concise responses, while higher values will result in more verbose
572
- # responses. Currently supported values are `low`, `medium`, and `high`.
573
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
574
+ # default is `medium`.
573
575
  verbosity: nil
574
576
  )
575
577
  end
@@ -595,7 +597,8 @@ module OpenAI
595
597
 
596
598
  # Constrains the verbosity of the model's response. Lower values will result in
597
599
  # more concise responses, while higher values will result in more verbose
598
- # responses. Currently supported values are `low`, `medium`, and `high`.
600
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
601
+ # default is `medium`.
599
602
  module Verbosity
600
603
  extend OpenAI::Internal::Type::Enum
601
604
 
@@ -206,10 +206,7 @@ module OpenAI
206
206
  # hit rates. Replaces the `user` field.
207
207
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
208
208
  sig { returns(T.nilable(String)) }
209
- attr_reader :prompt_cache_key
210
-
211
- sig { params(prompt_cache_key: String).void }
212
- attr_writer :prompt_cache_key
209
+ attr_accessor :prompt_cache_key
213
210
 
214
211
  # The prompt-caching options that were applied to the response. Supported for
215
212
  # `gpt-5.6` and later models.
@@ -269,10 +266,7 @@ module OpenAI
269
266
  # identifying information.
270
267
  # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
271
268
  sig { returns(T.nilable(String)) }
272
- attr_reader :safety_identifier
273
-
274
- sig { params(safety_identifier: String).void }
275
- attr_writer :safety_identifier
269
+ attr_accessor :safety_identifier
276
270
 
277
271
  # Specifies the processing type used for serving the request.
278
272
  #
@@ -452,7 +446,7 @@ module OpenAI
452
446
  T.nilable(OpenAI::Responses::Response::Moderation::OrHash),
453
447
  previous_response_id: T.nilable(String),
454
448
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt::OrHash),
455
- prompt_cache_key: String,
449
+ prompt_cache_key: T.nilable(String),
456
450
  prompt_cache_options:
457
451
  OpenAI::Responses::Response::PromptCacheOptions::OrHash,
458
452
  prompt_cache_retention:
@@ -460,7 +454,7 @@ module OpenAI
460
454
  OpenAI::Responses::Response::PromptCacheRetention::OrSymbol
461
455
  ),
462
456
  reasoning: T.nilable(OpenAI::Reasoning::OrHash),
463
- safety_identifier: String,
457
+ safety_identifier: T.nilable(String),
464
458
  service_tier:
465
459
  T.nilable(OpenAI::Responses::Response::ServiceTier::OrSymbol),
466
460
  status: OpenAI::Responses::ResponseStatus::OrSymbol,
@@ -692,7 +686,7 @@ module OpenAI
692
686
  moderation: T.nilable(OpenAI::Responses::Response::Moderation),
693
687
  previous_response_id: T.nilable(String),
694
688
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt),
695
- prompt_cache_key: String,
689
+ prompt_cache_key: T.nilable(String),
696
690
  prompt_cache_options:
697
691
  OpenAI::Responses::Response::PromptCacheOptions,
698
692
  prompt_cache_retention:
@@ -700,7 +694,7 @@ module OpenAI
700
694
  OpenAI::Responses::Response::PromptCacheRetention::TaggedSymbol
701
695
  ),
702
696
  reasoning: T.nilable(OpenAI::Reasoning),
703
- safety_identifier: String,
697
+ safety_identifier: T.nilable(String),
704
698
  service_tier:
705
699
  T.nilable(
706
700
  OpenAI::Responses::Response::ServiceTier::TaggedSymbol
@@ -198,10 +198,7 @@ module OpenAI
198
198
  # hit rates. Replaces the `user` field.
199
199
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching).
200
200
  sig { returns(T.nilable(String)) }
201
- attr_reader :prompt_cache_key
202
-
203
- sig { params(prompt_cache_key: String).void }
204
- attr_writer :prompt_cache_key
201
+ attr_accessor :prompt_cache_key
205
202
 
206
203
  # Options for prompt caching. Supported for `gpt-5.6` and later models. By
207
204
  # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
@@ -272,10 +269,7 @@ module OpenAI
272
269
  # identifying information.
273
270
  # [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers).
274
271
  sig { returns(T.nilable(String)) }
275
- attr_reader :safety_identifier
276
-
277
- sig { params(safety_identifier: String).void }
278
- attr_writer :safety_identifier
272
+ attr_accessor :safety_identifier
279
273
 
280
274
  # Specifies the processing type used for serving the request.
281
275
  #
@@ -543,7 +537,7 @@ module OpenAI
543
537
  parallel_tool_calls: T.nilable(T::Boolean),
544
538
  previous_response_id: T.nilable(String),
545
539
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt::OrHash),
546
- prompt_cache_key: String,
540
+ prompt_cache_key: T.nilable(String),
547
541
  prompt_cache_options:
548
542
  OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::OrHash,
549
543
  prompt_cache_retention:
@@ -551,7 +545,7 @@ module OpenAI
551
545
  OpenAI::Responses::ResponseCreateParams::PromptCacheRetention::OrSymbol
552
546
  ),
553
547
  reasoning: T.nilable(OpenAI::Reasoning::OrHash),
554
- safety_identifier: String,
548
+ safety_identifier: T.nilable(String),
555
549
  service_tier:
556
550
  T.nilable(
557
551
  OpenAI::Responses::ResponseCreateParams::ServiceTier::OrSymbol
@@ -848,7 +842,7 @@ module OpenAI
848
842
  parallel_tool_calls: T.nilable(T::Boolean),
849
843
  previous_response_id: T.nilable(String),
850
844
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt),
851
- prompt_cache_key: String,
845
+ prompt_cache_key: T.nilable(String),
852
846
  prompt_cache_options:
853
847
  OpenAI::Responses::ResponseCreateParams::PromptCacheOptions,
854
848
  prompt_cache_retention:
@@ -856,7 +850,7 @@ module OpenAI
856
850
  OpenAI::Responses::ResponseCreateParams::PromptCacheRetention::OrSymbol
857
851
  ),
858
852
  reasoning: T.nilable(OpenAI::Reasoning),
859
- safety_identifier: String,
853
+ safety_identifier: T.nilable(String),
860
854
  service_tier:
861
855
  T.nilable(
862
856
  OpenAI::Responses::ResponseCreateParams::ServiceTier::OrSymbol
@@ -68,6 +68,11 @@ module OpenAI
68
68
  :invalid_prompt,
69
69
  OpenAI::Responses::ResponseError::Code::TaggedSymbol
70
70
  )
71
+ DATA_RESIDENCY_MISMATCH =
72
+ T.let(
73
+ :data_residency_mismatch,
74
+ OpenAI::Responses::ResponseError::Code::TaggedSymbol
75
+ )
71
76
  BIO_POLICY =
72
77
  T.let(
73
78
  :bio_policy,
@@ -52,7 +52,8 @@ module OpenAI
52
52
 
53
53
  # Constrains the verbosity of the model's response. Lower values will result in
54
54
  # more concise responses, while higher values will result in more verbose
55
- # responses. Currently supported values are `low`, `medium`, and `high`.
55
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
56
+ # default is `medium`.
56
57
  sig do
57
58
  returns(
58
59
  T.nilable(
@@ -98,7 +99,8 @@ module OpenAI
98
99
  format_: nil,
99
100
  # Constrains the verbosity of the model's response. Lower values will result in
100
101
  # more concise responses, while higher values will result in more verbose
101
- # responses. Currently supported values are `low`, `medium`, and `high`.
102
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
103
+ # default is `medium`.
102
104
  verbosity: nil
103
105
  )
104
106
  end
@@ -124,7 +126,8 @@ module OpenAI
124
126
 
125
127
  # Constrains the verbosity of the model's response. Lower values will result in
126
128
  # more concise responses, while higher values will result in more verbose
127
- # responses. Currently supported values are `low`, `medium`, and `high`.
129
+ # responses. Currently supported values are `low`, `medium`, and `high`. The
130
+ # default is `medium`.
128
131
  module Verbosity
129
132
  extend OpenAI::Internal::Type::Enum
130
133