openai 0.18.1 → 0.19.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 (169) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/helpers/structured_output/boolean.rb +1 -0
  6. data/lib/openai/internal/conversation_cursor_page.rb +92 -0
  7. data/lib/openai/internal/transport/base_client.rb +1 -4
  8. data/lib/openai/internal/transport/pooled_net_requester.rb +1 -9
  9. data/lib/openai/internal/util.rb +1 -1
  10. data/lib/openai/models/audio/transcription.rb +1 -4
  11. data/lib/openai/models/audio/transcription_create_params.rb +2 -7
  12. data/lib/openai/models/audio/transcription_text_done_event.rb +1 -4
  13. data/lib/openai/models/beta/assistant_create_params.rb +6 -19
  14. data/lib/openai/models/beta/assistant_stream_event.rb +6 -24
  15. data/lib/openai/models/beta/assistant_update_params.rb +1 -4
  16. data/lib/openai/models/beta/message_stream_event.rb +1 -4
  17. data/lib/openai/models/beta/run_step_stream_event.rb +1 -4
  18. data/lib/openai/models/beta/thread_create_and_run_params.rb +10 -32
  19. data/lib/openai/models/beta/thread_create_params.rb +7 -22
  20. data/lib/openai/models/beta/threads/message.rb +3 -10
  21. data/lib/openai/models/beta/threads/message_create_params.rb +2 -7
  22. data/lib/openai/models/beta/threads/run.rb +2 -7
  23. data/lib/openai/models/beta/threads/run_create_params.rb +3 -10
  24. data/lib/openai/models/beta/threads/run_submit_tool_outputs_params.rb +1 -3
  25. data/lib/openai/models/beta/threads/runs/code_interpreter_tool_call.rb +5 -17
  26. data/lib/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rb +1 -3
  27. data/lib/openai/models/beta/threads/runs/file_search_tool_call.rb +4 -12
  28. data/lib/openai/models/beta/threads/runs/run_step_delta_message_delta.rb +1 -4
  29. data/lib/openai/models/beta/threads/runs/tool_calls_step_details.rb +1 -4
  30. data/lib/openai/models/beta/threads/text.rb +1 -4
  31. data/lib/openai/models/chat/chat_completion_chunk.rb +1 -3
  32. data/lib/openai/models/chat/chat_completion_custom_tool.rb +2 -7
  33. data/lib/openai/models/conversations/computer_screenshot_content.rb +38 -0
  34. data/lib/openai/models/conversations/container_file_citation_body.rb +58 -0
  35. data/lib/openai/models/conversations/conversation.rb +51 -0
  36. data/lib/openai/models/conversations/conversation_create_params.rb +39 -0
  37. data/lib/openai/models/conversations/conversation_delete_params.rb +16 -0
  38. data/lib/openai/models/conversations/conversation_deleted.rb +29 -0
  39. data/lib/openai/models/conversations/conversation_deleted_resource.rb +30 -0
  40. data/lib/openai/models/conversations/conversation_item.rb +568 -0
  41. data/lib/openai/models/conversations/conversation_item_list.rb +55 -0
  42. data/lib/openai/models/conversations/conversation_retrieve_params.rb +16 -0
  43. data/lib/openai/models/conversations/conversation_update_params.rb +31 -0
  44. data/lib/openai/models/conversations/file_citation_body.rb +42 -0
  45. data/lib/openai/models/conversations/input_file_content.rb +42 -0
  46. data/lib/openai/models/conversations/input_image_content.rb +62 -0
  47. data/lib/openai/models/conversations/input_text_content.rb +26 -0
  48. data/lib/openai/models/conversations/item_create_params.rb +37 -0
  49. data/lib/openai/models/conversations/item_delete_params.rb +22 -0
  50. data/lib/openai/models/conversations/item_list_params.rb +84 -0
  51. data/lib/openai/models/conversations/item_retrieve_params.rb +36 -0
  52. data/lib/openai/models/conversations/lob_prob.rb +35 -0
  53. data/lib/openai/models/conversations/message.rb +115 -0
  54. data/lib/openai/models/conversations/output_text_content.rb +57 -0
  55. data/lib/openai/models/conversations/refusal_content.rb +26 -0
  56. data/lib/openai/models/conversations/summary_text_content.rb +23 -0
  57. data/lib/openai/models/conversations/text_content.rb +23 -0
  58. data/lib/openai/models/conversations/top_log_prob.rb +29 -0
  59. data/lib/openai/models/conversations/url_citation_body.rb +50 -0
  60. data/lib/openai/models/eval_create_params.rb +6 -20
  61. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +29 -53
  62. data/lib/openai/models/evals/create_eval_jsonl_run_data_source.rb +1 -3
  63. data/lib/openai/models/evals/run_create_params.rb +18 -54
  64. data/lib/openai/models/fine_tuning/reinforcement_hyperparameters.rb +1 -4
  65. data/lib/openai/models/moderation.rb +5 -15
  66. data/lib/openai/models/responses/input_item_list_params.rb +1 -9
  67. data/lib/openai/models/responses/response.rb +26 -1
  68. data/lib/openai/models/responses/response_computer_tool_call.rb +2 -6
  69. data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +1 -3
  70. data/lib/openai/models/responses/response_conversation_param.rb +20 -0
  71. data/lib/openai/models/responses/response_create_params.rb +34 -1
  72. data/lib/openai/models/responses/response_input_item.rb +2 -7
  73. data/lib/openai/models/responses/response_input_message_item.rb +1 -4
  74. data/lib/openai/models/responses/response_output_item.rb +1 -3
  75. data/lib/openai/models/responses/response_output_message.rb +1 -3
  76. data/lib/openai/models/responses/response_output_text.rb +3 -10
  77. data/lib/openai/models/responses/response_stream_event.rb +4 -16
  78. data/lib/openai/models/responses/response_text_delta_event.rb +1 -3
  79. data/lib/openai/models/responses/response_text_done_event.rb +1 -3
  80. data/lib/openai/models/responses/tool.rb +145 -34
  81. data/lib/openai/models.rb +2 -0
  82. data/lib/openai/resources/conversations/items.rb +141 -0
  83. data/lib/openai/resources/conversations.rb +112 -0
  84. data/lib/openai/resources/responses/input_items.rb +1 -3
  85. data/lib/openai/resources/responses.rb +6 -2
  86. data/lib/openai/version.rb +1 -1
  87. data/lib/openai.rb +31 -0
  88. data/rbi/openai/client.rbi +3 -0
  89. data/rbi/openai/errors.rbi +5 -5
  90. data/rbi/openai/internal/conversation_cursor_page.rbi +25 -0
  91. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +60 -0
  92. data/rbi/openai/models/conversations/container_file_citation_body.rbi +82 -0
  93. data/rbi/openai/models/conversations/conversation.rbi +76 -0
  94. data/rbi/openai/models/conversations/conversation_create_params.rbi +144 -0
  95. data/rbi/openai/models/conversations/conversation_delete_params.rbi +32 -0
  96. data/rbi/openai/models/conversations/conversation_deleted.rbi +40 -0
  97. data/rbi/openai/models/conversations/conversation_deleted_resource.rbi +40 -0
  98. data/rbi/openai/models/conversations/conversation_item.rbi +835 -0
  99. data/rbi/openai/models/conversations/conversation_item_list.rbi +101 -0
  100. data/rbi/openai/models/conversations/conversation_retrieve_params.rbi +32 -0
  101. data/rbi/openai/models/conversations/conversation_update_params.rbi +56 -0
  102. data/rbi/openai/models/conversations/file_citation_body.rbi +61 -0
  103. data/rbi/openai/models/conversations/input_file_content.rbi +72 -0
  104. data/rbi/openai/models/conversations/input_image_content.rbi +113 -0
  105. data/rbi/openai/models/conversations/input_text_content.rbi +38 -0
  106. data/rbi/openai/models/conversations/item_create_params.rbi +150 -0
  107. data/rbi/openai/models/conversations/item_delete_params.rbi +40 -0
  108. data/rbi/openai/models/conversations/item_list_params.rbi +174 -0
  109. data/rbi/openai/models/conversations/item_retrieve_params.rbi +70 -0
  110. data/rbi/openai/models/conversations/lob_prob.rbi +50 -0
  111. data/rbi/openai/models/conversations/message.rbi +196 -0
  112. data/rbi/openai/models/conversations/output_text_content.rbi +110 -0
  113. data/rbi/openai/models/conversations/refusal_content.rbi +38 -0
  114. data/rbi/openai/models/conversations/summary_text_content.rbi +31 -0
  115. data/rbi/openai/models/conversations/text_content.rbi +28 -0
  116. data/rbi/openai/models/conversations/top_log_prob.rbi +41 -0
  117. data/rbi/openai/models/conversations/url_citation_body.rbi +74 -0
  118. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +33 -33
  119. data/rbi/openai/models/responses/input_item_list_params.rbi +0 -11
  120. data/rbi/openai/models/responses/response.rbi +49 -0
  121. data/rbi/openai/models/responses/response_conversation_param.rbi +33 -0
  122. data/rbi/openai/models/responses/response_create_params.rbi +54 -0
  123. data/rbi/openai/models/responses/tool.rbi +243 -31
  124. data/rbi/openai/models.rbi +2 -0
  125. data/rbi/openai/resources/conversations/items.rbi +152 -0
  126. data/rbi/openai/resources/conversations.rbi +110 -0
  127. data/rbi/openai/resources/responses/input_items.rbi +0 -3
  128. data/rbi/openai/resources/responses.rbi +26 -0
  129. data/sig/openai/client.rbs +2 -0
  130. data/sig/openai/internal/conversation_cursor_page.rbs +15 -0
  131. data/sig/openai/models/conversations/computer_screenshot_content.rbs +28 -0
  132. data/sig/openai/models/conversations/container_file_citation_body.rbs +47 -0
  133. data/sig/openai/models/conversations/conversation.rbs +37 -0
  134. data/sig/openai/models/conversations/conversation_create_params.rbs +33 -0
  135. data/sig/openai/models/conversations/conversation_delete_params.rbs +17 -0
  136. data/sig/openai/models/conversations/conversation_deleted.rbs +28 -0
  137. data/sig/openai/models/conversations/conversation_deleted_resource.rbs +28 -0
  138. data/sig/openai/models/conversations/conversation_item.rbs +403 -0
  139. data/sig/openai/models/conversations/conversation_item_list.rbs +44 -0
  140. data/sig/openai/models/conversations/conversation_retrieve_params.rbs +17 -0
  141. data/sig/openai/models/conversations/conversation_update_params.rbs +26 -0
  142. data/sig/openai/models/conversations/file_citation_body.rbs +37 -0
  143. data/sig/openai/models/conversations/input_file_content.rbs +41 -0
  144. data/sig/openai/models/conversations/input_image_content.rbs +49 -0
  145. data/sig/openai/models/conversations/input_text_content.rbs +17 -0
  146. data/sig/openai/models/conversations/item_create_params.rbs +37 -0
  147. data/sig/openai/models/conversations/item_delete_params.rbs +25 -0
  148. data/sig/openai/models/conversations/item_list_params.rbs +66 -0
  149. data/sig/openai/models/conversations/item_retrieve_params.rbs +37 -0
  150. data/sig/openai/models/conversations/lob_prob.rbs +37 -0
  151. data/sig/openai/models/conversations/message.rbs +95 -0
  152. data/sig/openai/models/conversations/output_text_content.rbs +52 -0
  153. data/sig/openai/models/conversations/refusal_content.rbs +17 -0
  154. data/sig/openai/models/conversations/summary_text_content.rbs +17 -0
  155. data/sig/openai/models/conversations/text_content.rbs +17 -0
  156. data/sig/openai/models/conversations/top_log_prob.rbs +28 -0
  157. data/sig/openai/models/conversations/url_citation_body.rbs +42 -0
  158. data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +22 -22
  159. data/sig/openai/models/responses/input_item_list_params.rbs +0 -7
  160. data/sig/openai/models/responses/response.rbs +15 -0
  161. data/sig/openai/models/responses/response_conversation_param.rbs +15 -0
  162. data/sig/openai/models/responses/response_create_params.rbs +14 -0
  163. data/sig/openai/models/responses/tool.rbs +83 -18
  164. data/sig/openai/models.rbs +2 -0
  165. data/sig/openai/resources/conversations/items.rbs +38 -0
  166. data/sig/openai/resources/conversations.rbs +31 -0
  167. data/sig/openai/resources/responses/input_items.rbs +0 -1
  168. data/sig/openai/resources/responses.rbs +2 -0
  169. metadata +95 -2
@@ -0,0 +1,101 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ ConversationItemList = Conversations::ConversationItemList
6
+
7
+ module Conversations
8
+ class ConversationItemList < OpenAI::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ OpenAI::Conversations::ConversationItemList,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # A list of conversation items.
18
+ sig do
19
+ returns(T::Array[OpenAI::Conversations::ConversationItem::Variants])
20
+ end
21
+ attr_accessor :data
22
+
23
+ # The ID of the first item in the list.
24
+ sig { returns(String) }
25
+ attr_accessor :first_id
26
+
27
+ # Whether there are more items available.
28
+ sig { returns(T::Boolean) }
29
+ attr_accessor :has_more
30
+
31
+ # The ID of the last item in the list.
32
+ sig { returns(String) }
33
+ attr_accessor :last_id
34
+
35
+ # The type of object returned, must be `list`.
36
+ sig { returns(Symbol) }
37
+ attr_accessor :object
38
+
39
+ # A list of Conversation items.
40
+ sig do
41
+ params(
42
+ data:
43
+ T::Array[
44
+ T.any(
45
+ OpenAI::Conversations::Message::OrHash,
46
+ OpenAI::Responses::ResponseFunctionToolCallItem::OrHash,
47
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
48
+ OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
49
+ OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
50
+ OpenAI::Conversations::ConversationItem::ImageGenerationCall::OrHash,
51
+ OpenAI::Responses::ResponseComputerToolCall::OrHash,
52
+ OpenAI::Responses::ResponseComputerToolCallOutputItem::OrHash,
53
+ OpenAI::Responses::ResponseReasoningItem::OrHash,
54
+ OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
55
+ OpenAI::Conversations::ConversationItem::LocalShellCall::OrHash,
56
+ OpenAI::Conversations::ConversationItem::LocalShellCallOutput::OrHash,
57
+ OpenAI::Conversations::ConversationItem::McpListTools::OrHash,
58
+ OpenAI::Conversations::ConversationItem::McpApprovalRequest::OrHash,
59
+ OpenAI::Conversations::ConversationItem::McpApprovalResponse::OrHash,
60
+ OpenAI::Conversations::ConversationItem::McpCall::OrHash,
61
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
62
+ OpenAI::Responses::ResponseCustomToolCallOutput::OrHash
63
+ )
64
+ ],
65
+ first_id: String,
66
+ has_more: T::Boolean,
67
+ last_id: String,
68
+ object: Symbol
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ # A list of conversation items.
73
+ data:,
74
+ # The ID of the first item in the list.
75
+ first_id:,
76
+ # Whether there are more items available.
77
+ has_more:,
78
+ # The ID of the last item in the list.
79
+ last_id:,
80
+ # The type of object returned, must be `list`.
81
+ object: :list
82
+ )
83
+ end
84
+
85
+ sig do
86
+ override.returns(
87
+ {
88
+ data: T::Array[OpenAI::Conversations::ConversationItem::Variants],
89
+ first_id: String,
90
+ has_more: T::Boolean,
91
+ last_id: String,
92
+ object: Symbol
93
+ }
94
+ )
95
+ end
96
+ def to_hash
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Conversations
6
+ class ConversationRetrieveParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Conversations::ConversationRetrieveParams,
14
+ OpenAI::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig do
19
+ params(request_options: OpenAI::RequestOptions::OrHash).returns(
20
+ T.attached_class
21
+ )
22
+ end
23
+ def self.new(request_options: {})
24
+ end
25
+
26
+ sig { override.returns({ request_options: OpenAI::RequestOptions }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,56 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Conversations
6
+ class ConversationUpdateParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Conversations::ConversationUpdateParams,
14
+ OpenAI::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Set of 16 key-value pairs that can be attached to an object. This can be useful
19
+ # for storing additional information about the object in a structured format, and
20
+ # querying for objects via API or the dashboard. Keys are strings with a maximum
21
+ # length of 64 characters. Values are strings with a maximum length of 512
22
+ # characters.
23
+ sig { returns(T::Hash[Symbol, String]) }
24
+ attr_accessor :metadata
25
+
26
+ sig do
27
+ params(
28
+ metadata: T::Hash[Symbol, String],
29
+ request_options: OpenAI::RequestOptions::OrHash
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+ # Set of 16 key-value pairs that can be attached to an object. This can be useful
34
+ # for storing additional information about the object in a structured format, and
35
+ # querying for objects via API or the dashboard. Keys are strings with a maximum
36
+ # length of 64 characters. Values are strings with a maximum length of 512
37
+ # characters.
38
+ metadata:,
39
+ request_options: {}
40
+ )
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ {
46
+ metadata: T::Hash[Symbol, String],
47
+ request_options: OpenAI::RequestOptions
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,61 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Conversations
6
+ class FileCitationBody < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Conversations::FileCitationBody,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The ID of the file.
16
+ sig { returns(String) }
17
+ attr_accessor :file_id
18
+
19
+ # The filename of the file cited.
20
+ sig { returns(String) }
21
+ attr_accessor :filename
22
+
23
+ # The index of the file in the list of files.
24
+ sig { returns(Integer) }
25
+ attr_accessor :index
26
+
27
+ # The type of the file citation. Always `file_citation`.
28
+ sig { returns(Symbol) }
29
+ attr_accessor :type
30
+
31
+ sig do
32
+ params(
33
+ file_id: String,
34
+ filename: String,
35
+ index: Integer,
36
+ type: Symbol
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(
40
+ # The ID of the file.
41
+ file_id:,
42
+ # The filename of the file cited.
43
+ filename:,
44
+ # The index of the file in the list of files.
45
+ index:,
46
+ # The type of the file citation. Always `file_citation`.
47
+ type: :file_citation
48
+ )
49
+ end
50
+
51
+ sig do
52
+ override.returns(
53
+ { file_id: String, filename: String, index: Integer, type: Symbol }
54
+ )
55
+ end
56
+ def to_hash
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,72 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Conversations
6
+ class InputFileContent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Conversations::InputFileContent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The ID of the file to be sent to the model.
16
+ sig { returns(T.nilable(String)) }
17
+ attr_accessor :file_id
18
+
19
+ # The type of the input item. Always `input_file`.
20
+ sig { returns(Symbol) }
21
+ attr_accessor :type
22
+
23
+ # The URL of the file to be sent to the model.
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :file_url
26
+
27
+ sig { params(file_url: String).void }
28
+ attr_writer :file_url
29
+
30
+ # The name of the file to be sent to the model.
31
+ sig { returns(T.nilable(String)) }
32
+ attr_reader :filename
33
+
34
+ sig { params(filename: String).void }
35
+ attr_writer :filename
36
+
37
+ sig do
38
+ params(
39
+ file_id: T.nilable(String),
40
+ file_url: String,
41
+ filename: String,
42
+ type: Symbol
43
+ ).returns(T.attached_class)
44
+ end
45
+ def self.new(
46
+ # The ID of the file to be sent to the model.
47
+ file_id:,
48
+ # The URL of the file to be sent to the model.
49
+ file_url: nil,
50
+ # The name of the file to be sent to the model.
51
+ filename: nil,
52
+ # The type of the input item. Always `input_file`.
53
+ type: :input_file
54
+ )
55
+ end
56
+
57
+ sig do
58
+ override.returns(
59
+ {
60
+ file_id: T.nilable(String),
61
+ type: Symbol,
62
+ file_url: String,
63
+ filename: String
64
+ }
65
+ )
66
+ end
67
+ def to_hash
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,113 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Conversations
6
+ class InputImageContent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Conversations::InputImageContent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The detail level of the image to be sent to the model. One of `high`, `low`, or
16
+ # `auto`. Defaults to `auto`.
17
+ sig do
18
+ returns(
19
+ OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
20
+ )
21
+ end
22
+ attr_accessor :detail
23
+
24
+ # The ID of the file to be sent to the model.
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :file_id
27
+
28
+ # The URL of the image to be sent to the model. A fully qualified URL or base64
29
+ # encoded image in a data URL.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_accessor :image_url
32
+
33
+ # The type of the input item. Always `input_image`.
34
+ sig { returns(Symbol) }
35
+ attr_accessor :type
36
+
37
+ sig do
38
+ params(
39
+ detail: OpenAI::Conversations::InputImageContent::Detail::OrSymbol,
40
+ file_id: T.nilable(String),
41
+ image_url: T.nilable(String),
42
+ type: Symbol
43
+ ).returns(T.attached_class)
44
+ end
45
+ def self.new(
46
+ # The detail level of the image to be sent to the model. One of `high`, `low`, or
47
+ # `auto`. Defaults to `auto`.
48
+ detail:,
49
+ # The ID of the file to be sent to the model.
50
+ file_id:,
51
+ # The URL of the image to be sent to the model. A fully qualified URL or base64
52
+ # encoded image in a data URL.
53
+ image_url:,
54
+ # The type of the input item. Always `input_image`.
55
+ type: :input_image
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ detail:
63
+ OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol,
64
+ file_id: T.nilable(String),
65
+ image_url: T.nilable(String),
66
+ type: Symbol
67
+ }
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+
73
+ # The detail level of the image to be sent to the model. One of `high`, `low`, or
74
+ # `auto`. Defaults to `auto`.
75
+ module Detail
76
+ extend OpenAI::Internal::Type::Enum
77
+
78
+ TaggedSymbol =
79
+ T.type_alias do
80
+ T.all(Symbol, OpenAI::Conversations::InputImageContent::Detail)
81
+ end
82
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
83
+
84
+ LOW =
85
+ T.let(
86
+ :low,
87
+ OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
88
+ )
89
+ HIGH =
90
+ T.let(
91
+ :high,
92
+ OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
93
+ )
94
+ AUTO =
95
+ T.let(
96
+ :auto,
97
+ OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
98
+ )
99
+
100
+ sig do
101
+ override.returns(
102
+ T::Array[
103
+ OpenAI::Conversations::InputImageContent::Detail::TaggedSymbol
104
+ ]
105
+ )
106
+ end
107
+ def self.values
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Conversations
6
+ class InputTextContent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Conversations::InputTextContent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The text input to the model.
16
+ sig { returns(String) }
17
+ attr_accessor :text
18
+
19
+ # The type of the input item. Always `input_text`.
20
+ sig { returns(Symbol) }
21
+ attr_accessor :type
22
+
23
+ sig { params(text: String, type: Symbol).returns(T.attached_class) }
24
+ def self.new(
25
+ # The text input to the model.
26
+ text:,
27
+ # The type of the input item. Always `input_text`.
28
+ type: :input_text
29
+ )
30
+ end
31
+
32
+ sig { override.returns({ text: String, type: Symbol }) }
33
+ def to_hash
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,150 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Conversations
6
+ class ItemCreateParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Conversations::ItemCreateParams,
14
+ OpenAI::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # The items to add to the conversation. You may add up to 20 items at a time.
19
+ sig do
20
+ returns(
21
+ T::Array[
22
+ T.any(
23
+ OpenAI::Responses::EasyInputMessage,
24
+ OpenAI::Responses::ResponseInputItem::Message,
25
+ OpenAI::Responses::ResponseOutputMessage,
26
+ OpenAI::Responses::ResponseFileSearchToolCall,
27
+ OpenAI::Responses::ResponseComputerToolCall,
28
+ OpenAI::Responses::ResponseInputItem::ComputerCallOutput,
29
+ OpenAI::Responses::ResponseFunctionWebSearch,
30
+ OpenAI::Responses::ResponseFunctionToolCall,
31
+ OpenAI::Responses::ResponseInputItem::FunctionCallOutput,
32
+ OpenAI::Responses::ResponseReasoningItem,
33
+ OpenAI::Responses::ResponseInputItem::ImageGenerationCall,
34
+ OpenAI::Responses::ResponseCodeInterpreterToolCall,
35
+ OpenAI::Responses::ResponseInputItem::LocalShellCall,
36
+ OpenAI::Responses::ResponseInputItem::LocalShellCallOutput,
37
+ OpenAI::Responses::ResponseInputItem::McpListTools,
38
+ OpenAI::Responses::ResponseInputItem::McpApprovalRequest,
39
+ OpenAI::Responses::ResponseInputItem::McpApprovalResponse,
40
+ OpenAI::Responses::ResponseInputItem::McpCall,
41
+ OpenAI::Responses::ResponseCustomToolCallOutput,
42
+ OpenAI::Responses::ResponseCustomToolCall,
43
+ OpenAI::Responses::ResponseInputItem::ItemReference
44
+ )
45
+ ]
46
+ )
47
+ end
48
+ attr_accessor :items
49
+
50
+ # Additional fields to include in the response. See the `include` parameter for
51
+ # [listing Conversation items above](https://platform.openai.com/docs/api-reference/conversations/list-items#conversations_list_items-include)
52
+ # for more information.
53
+ sig do
54
+ returns(
55
+ T.nilable(T::Array[OpenAI::Responses::ResponseIncludable::OrSymbol])
56
+ )
57
+ end
58
+ attr_reader :include
59
+
60
+ sig do
61
+ params(
62
+ include: T::Array[OpenAI::Responses::ResponseIncludable::OrSymbol]
63
+ ).void
64
+ end
65
+ attr_writer :include
66
+
67
+ sig do
68
+ params(
69
+ items:
70
+ T::Array[
71
+ T.any(
72
+ OpenAI::Responses::EasyInputMessage::OrHash,
73
+ OpenAI::Responses::ResponseInputItem::Message::OrHash,
74
+ OpenAI::Responses::ResponseOutputMessage::OrHash,
75
+ OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
76
+ OpenAI::Responses::ResponseComputerToolCall::OrHash,
77
+ OpenAI::Responses::ResponseInputItem::ComputerCallOutput::OrHash,
78
+ OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
79
+ OpenAI::Responses::ResponseFunctionToolCall::OrHash,
80
+ OpenAI::Responses::ResponseInputItem::FunctionCallOutput::OrHash,
81
+ OpenAI::Responses::ResponseReasoningItem::OrHash,
82
+ OpenAI::Responses::ResponseInputItem::ImageGenerationCall::OrHash,
83
+ OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
84
+ OpenAI::Responses::ResponseInputItem::LocalShellCall::OrHash,
85
+ OpenAI::Responses::ResponseInputItem::LocalShellCallOutput::OrHash,
86
+ OpenAI::Responses::ResponseInputItem::McpListTools::OrHash,
87
+ OpenAI::Responses::ResponseInputItem::McpApprovalRequest::OrHash,
88
+ OpenAI::Responses::ResponseInputItem::McpApprovalResponse::OrHash,
89
+ OpenAI::Responses::ResponseInputItem::McpCall::OrHash,
90
+ OpenAI::Responses::ResponseCustomToolCallOutput::OrHash,
91
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
92
+ OpenAI::Responses::ResponseInputItem::ItemReference::OrHash
93
+ )
94
+ ],
95
+ include: T::Array[OpenAI::Responses::ResponseIncludable::OrSymbol],
96
+ request_options: OpenAI::RequestOptions::OrHash
97
+ ).returns(T.attached_class)
98
+ end
99
+ def self.new(
100
+ # The items to add to the conversation. You may add up to 20 items at a time.
101
+ items:,
102
+ # Additional fields to include in the response. See the `include` parameter for
103
+ # [listing Conversation items above](https://platform.openai.com/docs/api-reference/conversations/list-items#conversations_list_items-include)
104
+ # for more information.
105
+ include: nil,
106
+ request_options: {}
107
+ )
108
+ end
109
+
110
+ sig do
111
+ override.returns(
112
+ {
113
+ items:
114
+ T::Array[
115
+ T.any(
116
+ OpenAI::Responses::EasyInputMessage,
117
+ OpenAI::Responses::ResponseInputItem::Message,
118
+ OpenAI::Responses::ResponseOutputMessage,
119
+ OpenAI::Responses::ResponseFileSearchToolCall,
120
+ OpenAI::Responses::ResponseComputerToolCall,
121
+ OpenAI::Responses::ResponseInputItem::ComputerCallOutput,
122
+ OpenAI::Responses::ResponseFunctionWebSearch,
123
+ OpenAI::Responses::ResponseFunctionToolCall,
124
+ OpenAI::Responses::ResponseInputItem::FunctionCallOutput,
125
+ OpenAI::Responses::ResponseReasoningItem,
126
+ OpenAI::Responses::ResponseInputItem::ImageGenerationCall,
127
+ OpenAI::Responses::ResponseCodeInterpreterToolCall,
128
+ OpenAI::Responses::ResponseInputItem::LocalShellCall,
129
+ OpenAI::Responses::ResponseInputItem::LocalShellCallOutput,
130
+ OpenAI::Responses::ResponseInputItem::McpListTools,
131
+ OpenAI::Responses::ResponseInputItem::McpApprovalRequest,
132
+ OpenAI::Responses::ResponseInputItem::McpApprovalResponse,
133
+ OpenAI::Responses::ResponseInputItem::McpCall,
134
+ OpenAI::Responses::ResponseCustomToolCallOutput,
135
+ OpenAI::Responses::ResponseCustomToolCall,
136
+ OpenAI::Responses::ResponseInputItem::ItemReference
137
+ )
138
+ ],
139
+ include:
140
+ T::Array[OpenAI::Responses::ResponseIncludable::OrSymbol],
141
+ request_options: OpenAI::RequestOptions
142
+ }
143
+ )
144
+ end
145
+ def to_hash
146
+ end
147
+ end
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Conversations
6
+ class ItemDeleteParams < OpenAI::Internal::Type::BaseModel
7
+ extend OpenAI::Internal::Type::RequestParameters::Converter
8
+ include OpenAI::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Conversations::ItemDeleteParams,
14
+ OpenAI::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :conversation_id
20
+
21
+ sig do
22
+ params(
23
+ conversation_id: String,
24
+ request_options: OpenAI::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(conversation_id:, request_options: {})
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { conversation_id: String, request_options: OpenAI::RequestOptions }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end