openai 0.98.0 → 0.100.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/README.md +1 -1
- data/bedrock.md +17 -1
- data/lib/openai/client.rb +9 -0
- data/lib/openai/helpers/agents/session_stream.rb +11 -36
- data/lib/openai/helpers/agents/tools.rb +34 -4
- data/lib/openai/helpers/beta/agents/creation_stream.rb +26 -0
- data/lib/openai/helpers/beta/agents/function_tool.rb +11 -4
- data/lib/openai/helpers/beta/agents/tool_dispatcher.rb +74 -0
- data/lib/openai/helpers/beta/agents/tool_error.rb +28 -0
- data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_completions_params.rb +9 -4
- data/lib/openai/models/admin/organization/usage_completions_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_costs_params.rb +16 -4
- data/lib/openai/models/admin/organization/usage_costs_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_embeddings_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_images_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_moderations_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +140 -5
- data/lib/openai/models/admin/organization/usage_web_search_calls_params.rb +9 -4
- data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +140 -5
- data/lib/openai/models/all_models.rb +42 -0
- data/lib/openai/models/audio/speech_create_params.rb +6 -0
- data/lib/openai/models/audio/voice.rb +75 -0
- data/lib/openai/models/audio/voice_create_params.rb +217 -0
- data/lib/openai/models/beta/agent_create_params.rb +0 -3
- data/lib/openai/models/beta/agent_update_params.rb +0 -3
- data/lib/openai/models/beta/agents/environments/template_create_params.rb +6 -6
- data/lib/openai/models/beta/agents/environments/template_update_params.rb +3 -6
- data/lib/openai/models/beta/agents/session_create_params.rb +0 -3
- data/lib/openai/models/beta/agents/session_update_params.rb +0 -3
- data/lib/openai/models/beta/agents/sessions/turns/item_list_params.rb +79 -0
- data/lib/openai/models/beta/beta_response.rb +220 -0
- data/lib/openai/models/beta/beta_response_computer_tool_call_output_item.rb +2 -2
- data/lib/openai/models/beta/beta_response_error.rb +12 -1
- data/lib/openai/models/beta/beta_responses_client_event.rb +220 -0
- data/lib/openai/models/beta/beta_responses_server_event.rb +12 -1
- data/lib/openai/models/beta/beta_tool.rb +15 -18
- data/lib/openai/models/beta/environment_param.rb +6 -6
- data/lib/openai/models/beta/response_compact_params.rb +220 -0
- data/lib/openai/models/beta/response_create_params.rb +220 -0
- data/lib/openai/models/beta/session_turn_error.rb +9 -0
- data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -3
- data/lib/openai/models/chat/chat_completion_chunk.rb +85 -18
- data/lib/openai/models/chat_model.rb +178 -0
- data/lib/openai/models/error_object.rb +12 -1
- data/lib/openai/models/eval_create_params.rb +1 -1
- data/lib/openai/models/eval_create_response.rb +1 -1
- data/lib/openai/models/eval_list_response.rb +1 -1
- data/lib/openai/models/eval_retrieve_response.rb +1 -1
- data/lib/openai/models/eval_update_response.rb +1 -1
- data/lib/openai/models/fine_tuning/job_list_params.rb +14 -4
- data/lib/openai/models/graders/score_model_grader.rb +2 -2
- data/lib/openai/models/image.rb +14 -14
- data/lib/openai/models/image_create_variation_params.rb +7 -7
- data/lib/openai/models/image_edit_params.rb +88 -96
- data/lib/openai/models/image_generate_params.rb +51 -62
- data/lib/openai/models/image_model.rb +5 -3
- data/lib/openai/models/realtime/realtime_audio_config_output.rb +9 -6
- data/lib/openai/models/realtime/realtime_client_event.rb +9 -0
- data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +9 -6
- data/lib/openai/models/realtime/session_update_event.rb +16 -0
- data/lib/openai/models/responses/response_compact_params.rb +220 -0
- data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +2 -2
- data/lib/openai/models/responses/response_error.rb +12 -1
- data/lib/openai/models/responses/responses_server_event.rb +12 -1
- data/lib/openai/models/responses/tool.rb +15 -18
- data/lib/openai/models/responses_model.rb +42 -0
- data/lib/openai/models/video_create_error.rb +12 -1
- data/lib/openai/models/webhooks/agent_session_action_required_webhook_event.rb +109 -0
- data/lib/openai/models/webhooks/agent_session_created_webhook_event.rb +106 -0
- data/lib/openai/models/webhooks/agent_session_failed_webhook_event.rb +86 -0
- data/lib/openai/models/webhooks/agent_session_idle_webhook_event.rb +86 -0
- data/lib/openai/models/webhooks/agent_session_in_progress_webhook_event.rb +86 -0
- data/lib/openai/models/webhooks/unwrap_webhook_event.rb +18 -2
- data/lib/openai/models/webhooks/webhook_create_params.rb +5 -0
- data/lib/openai/models/webhooks/webhook_test_params.rb +5 -0
- data/lib/openai/models/webhooks/webhook_update_params.rb +5 -0
- data/lib/openai/providers/bedrock.rb +20 -1
- data/lib/openai/resources/admin/organization/usage.rb +15 -6
- data/lib/openai/resources/audio/speech.rb +2 -0
- data/lib/openai/resources/audio/voices.rb +53 -0
- data/lib/openai/resources/audio.rb +5 -0
- data/lib/openai/resources/beta/agents/environments/templates.rb +3 -4
- data/lib/openai/resources/beta/agents/sessions/turns/items.rb +68 -0
- data/lib/openai/resources/beta/agents/sessions/turns.rb +4 -0
- data/lib/openai/resources/beta/agents/sessions.rb +22 -2
- data/lib/openai/resources/fine_tuning/jobs.rb +7 -2
- data/lib/openai/resources/images.rb +79 -109
- data/lib/openai/resources/webhooks.rb +1 -1
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +10 -0
- data/rbi/openai/helpers/agents.rbi +2 -0
- data/rbi/openai/helpers/beta/agents/function_tool.rbi +8 -3
- data/rbi/openai/helpers/beta/agents/tool_error.rbi +19 -0
- data/rbi/openai/helpers/beta/agents.rbi +12 -0
- data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_completions_params.rbi +9 -4
- data/rbi/openai/models/admin/organization/usage_completions_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_costs_params.rbi +16 -4
- data/rbi/openai/models/admin/organization/usage_costs_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_images_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +213 -3
- data/rbi/openai/models/admin/organization/usage_web_search_calls_params.rbi +12 -4
- data/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +213 -3
- data/rbi/openai/models/audio/speech_create_params.rbi +6 -0
- data/rbi/openai/models/audio/voice.rbi +111 -0
- data/rbi/openai/models/audio/voice_create_params.rbi +321 -0
- data/rbi/openai/models/beta/agent_create_params.rbi +0 -3
- data/rbi/openai/models/beta/agent_update_params.rbi +0 -3
- data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +6 -6
- data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +3 -6
- data/rbi/openai/models/beta/agents/session_create_params.rbi +0 -3
- data/rbi/openai/models/beta/agents/session_update_params.rbi +0 -3
- data/rbi/openai/models/beta/agents/sessions/turns/item_list_params.rbi +139 -0
- data/rbi/openai/models/beta/beta_response_computer_tool_call_output_item.rbi +2 -2
- data/rbi/openai/models/beta/beta_response_error.rbi +12 -0
- data/rbi/openai/models/beta/beta_responses_server_event.rbi +12 -0
- data/rbi/openai/models/beta/beta_tool.rbi +15 -18
- data/rbi/openai/models/beta/environment_param.rbi +6 -6
- data/rbi/openai/models/beta/session_turn_error.rbi +18 -0
- data/rbi/openai/models/chat/chat_completion_audio_param.rbi +6 -3
- data/rbi/openai/models/chat/chat_completion_chunk.rbi +123 -17
- data/rbi/openai/models/error_object.rbi +12 -0
- data/rbi/openai/models/eval_create_params.rbi +1 -1
- data/rbi/openai/models/eval_create_response.rbi +1 -1
- data/rbi/openai/models/eval_list_response.rbi +1 -1
- data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
- data/rbi/openai/models/eval_update_response.rbi +1 -1
- data/rbi/openai/models/fine_tuning/job_list_params.rbi +14 -4
- data/rbi/openai/models/graders/score_model_grader.rbi +2 -2
- data/rbi/openai/models/image.rbi +14 -14
- data/rbi/openai/models/image_create_variation_params.rbi +6 -6
- data/rbi/openai/models/image_edit_params.rbi +73 -91
- data/rbi/openai/models/image_generate_params.rbi +30 -61
- data/rbi/openai/models/image_model.rbi +3 -3
- data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +9 -6
- data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +9 -6
- data/rbi/openai/models/realtime/session_update_event.rbi +16 -0
- data/rbi/openai/models/responses/response_computer_tool_call_output_item.rbi +2 -2
- data/rbi/openai/models/responses/response_error.rbi +12 -0
- data/rbi/openai/models/responses/responses_server_event.rbi +12 -0
- data/rbi/openai/models/responses/tool.rbi +15 -18
- data/rbi/openai/models/video_create_error.rbi +12 -0
- data/rbi/openai/models/webhooks/agent_session_action_required_webhook_event.rbi +222 -0
- data/rbi/openai/models/webhooks/agent_session_created_webhook_event.rbi +202 -0
- data/rbi/openai/models/webhooks/agent_session_failed_webhook_event.rbi +151 -0
- data/rbi/openai/models/webhooks/agent_session_idle_webhook_event.rbi +151 -0
- data/rbi/openai/models/webhooks/agent_session_in_progress_webhook_event.rbi +151 -0
- data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +7 -1
- data/rbi/openai/models/webhooks/webhook_create_params.rbi +20 -0
- data/rbi/openai/models/webhooks/webhook_test_params.rbi +20 -0
- data/rbi/openai/models/webhooks/webhook_update_params.rbi +20 -0
- data/rbi/openai/resources/admin/organization/usage.rbi +15 -6
- data/rbi/openai/resources/audio/speech.rbi +2 -0
- data/rbi/openai/resources/audio/voices.rbi +49 -0
- data/rbi/openai/resources/audio.rbi +4 -0
- data/rbi/openai/resources/beta/agents/environments/templates.rbi +3 -4
- data/rbi/openai/resources/beta/agents/sessions/turns/items.rbi +62 -0
- data/rbi/openai/resources/beta/agents/sessions/turns.rbi +3 -0
- data/rbi/openai/resources/beta/agents/sessions.rbi +2 -0
- data/rbi/openai/resources/fine_tuning/jobs.rbi +7 -2
- data/rbi/openai/resources/images.rbi +77 -109
- data/rbi/openai/resources/webhooks.rbi +5 -0
- data/sig/openai/helpers/agents.rbs +3 -0
- data/sig/openai/helpers/beta/agents/function_tool.rbs +5 -2
- data/sig/openai/helpers/beta/agents/tool_error.rbs +17 -0
- data/sig/openai/helpers/beta/agents.rbs +5 -0
- data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_completions_params.rbs +14 -6
- data/sig/openai/models/admin/organization/usage_completions_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_costs_params.rbs +25 -7
- data/sig/openai/models/admin/organization/usage_costs_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_images_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_moderations_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +107 -5
- data/sig/openai/models/admin/organization/usage_web_search_calls_params.rbs +19 -7
- data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +107 -5
- data/sig/openai/models/audio/speech_create_params.rbs +4 -0
- data/sig/openai/models/audio/voice.rbs +70 -0
- data/sig/openai/models/audio/voice_create_params.rbs +203 -0
- data/sig/openai/models/beta/agent_create_params.rbs +1 -5
- data/sig/openai/models/beta/agent_update_params.rbs +1 -5
- data/sig/openai/models/beta/agents/environments/template_create_params.rbs +4 -4
- data/sig/openai/models/beta/agents/environments/template_update_params.rbs +2 -4
- data/sig/openai/models/beta/agents/session_create_params.rbs +1 -5
- data/sig/openai/models/beta/agents/session_update_params.rbs +1 -5
- data/sig/openai/models/beta/agents/sessions/turns/item_list_params.rbs +91 -0
- data/sig/openai/models/beta/beta_response_computer_tool_call_output_item.rbs +2 -2
- data/sig/openai/models/beta/beta_response_error.rbs +10 -0
- data/sig/openai/models/beta/beta_responses_server_event.rbs +10 -0
- data/sig/openai/models/beta/beta_tool.rbs +11 -15
- data/sig/openai/models/beta/environment_param.rbs +4 -4
- data/sig/openai/models/beta/session_turn_error.rbs +12 -0
- data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -2
- data/sig/openai/models/chat/chat_completion_chunk.rbs +96 -12
- data/sig/openai/models/error_object.rbs +10 -0
- data/sig/openai/models/eval_create_params.rbs +1 -1
- data/sig/openai/models/eval_create_response.rbs +1 -1
- data/sig/openai/models/eval_list_response.rbs +1 -1
- data/sig/openai/models/eval_retrieve_response.rbs +1 -1
- data/sig/openai/models/eval_update_response.rbs +1 -1
- data/sig/openai/models/fine_tuning/job_list_params.rbs +14 -4
- data/sig/openai/models/graders/score_model_grader.rbs +3 -3
- data/sig/openai/models/image.rbs +21 -21
- data/sig/openai/models/image_create_variation_params.rbs +4 -4
- data/sig/openai/models/image_edit_params.rbs +54 -66
- data/sig/openai/models/image_generate_params.rbs +23 -45
- data/sig/openai/models/image_model.rbs +6 -6
- data/sig/openai/models/realtime/realtime_audio_config_output.rbs +9 -6
- data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +9 -6
- data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +2 -2
- data/sig/openai/models/responses/response_error.rbs +10 -0
- data/sig/openai/models/responses/responses_server_event.rbs +10 -0
- data/sig/openai/models/responses/tool.rbs +11 -15
- data/sig/openai/models/video_create_error.rbs +10 -0
- data/sig/openai/models/webhooks/agent_session_action_required_webhook_event.rbs +114 -0
- data/sig/openai/models/webhooks/agent_session_created_webhook_event.rbs +115 -0
- data/sig/openai/models/webhooks/agent_session_failed_webhook_event.rbs +89 -0
- data/sig/openai/models/webhooks/agent_session_idle_webhook_event.rbs +89 -0
- data/sig/openai/models/webhooks/agent_session_in_progress_webhook_event.rbs +89 -0
- data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +6 -1
- data/sig/openai/models/webhooks/webhook_create_params.rbs +10 -0
- data/sig/openai/models/webhooks/webhook_test_params.rbs +10 -0
- data/sig/openai/models/webhooks/webhook_update_params.rbs +10 -0
- data/sig/openai/resources/audio/voices.rbs +14 -0
- data/sig/openai/resources/audio.rbs +2 -0
- data/sig/openai/resources/beta/agents/sessions/turns/items.rbs +24 -0
- data/sig/openai/resources/beta/agents/sessions/turns.rbs +2 -0
- data/sig/openai/resources/beta/agents/sessions.rbs +1 -0
- data/sig/openai/resources/webhooks.rbs +6 -1
- metadata +35 -1
|
@@ -90,10 +90,29 @@ module OpenAI
|
|
|
90
90
|
OpenAI::Internal::Provider::Runtime.new(
|
|
91
91
|
name: name,
|
|
92
92
|
base_url: base_url,
|
|
93
|
-
prepare_request:
|
|
93
|
+
prepare_request: lambda do |request|
|
|
94
|
+
url = request.fetch(:url)
|
|
95
|
+
# AWS documents a separate inference path for this exact Mantle model.
|
|
96
|
+
if @base_url.nil? && @endpoint == :mantle && sol_inference_request?(request)
|
|
97
|
+
url = url.dup
|
|
98
|
+
url.path = "/openai#{url.path}"
|
|
99
|
+
request = request.merge(url: url)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
auth.prepare_request(request)
|
|
103
|
+
end,
|
|
94
104
|
authentication_headers: AUTH_HEADERS
|
|
95
105
|
)
|
|
96
106
|
end
|
|
107
|
+
|
|
108
|
+
private def sol_inference_request?(request)
|
|
109
|
+
unless request[:method] == :post &&
|
|
110
|
+
%w[/v1/responses /v1/chat/completions].include?(request.fetch(:url).path)
|
|
111
|
+
return false
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
request[:provider_request_model] == "openai.gpt-6.1-sol"
|
|
115
|
+
end
|
|
97
116
|
end
|
|
98
117
|
|
|
99
118
|
class BearerAuth
|
|
@@ -196,8 +196,10 @@ module OpenAI
|
|
|
196
196
|
#
|
|
197
197
|
# @param group_by [Array<Symbol, OpenAI::Models::Admin::Organization::UsageCompletionsParams::GroupBy>]
|
|
198
198
|
# Group the usage data by the specified fields. Support fields include
|
|
199
|
-
# `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier
|
|
200
|
-
# combination of them.
|
|
199
|
+
# `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier`,
|
|
200
|
+
# `api_source` or any combination of them. When grouped by `api_source`, results
|
|
201
|
+
# use `agents_api` for attributed Agents API activity and `unlabeled` for all
|
|
202
|
+
# other activity. Without source grouping, `api_source` is null.
|
|
201
203
|
#
|
|
202
204
|
# @param limit [Integer]
|
|
203
205
|
# Specifies the number of buckets to return.
|
|
@@ -255,8 +257,13 @@ module OpenAI
|
|
|
255
257
|
# End time (Unix seconds) of the query time range, exclusive.
|
|
256
258
|
#
|
|
257
259
|
# @param group_by [Array<Symbol, OpenAI::Models::Admin::Organization::UsageCostsParams::GroupBy>]
|
|
258
|
-
# Group the costs by the specified fields.
|
|
259
|
-
# `line_item`, `api_key_id
|
|
260
|
+
# Group the costs by the specified fields. Supported fields include `project_id`,
|
|
261
|
+
# `user_id`, `line_item`, `api_key_id`, and `api_source`. Support for combining
|
|
262
|
+
# `user_id` with `project_id` grouping or the `project_ids` filter depends on the
|
|
263
|
+
# organization and requested time range. Unsupported combinations return HTTP 400.
|
|
264
|
+
# When grouped by `api_source`, results use `agents_api` for attributed Agents API
|
|
265
|
+
# activity and `unlabeled` for all other activity. Without source grouping,
|
|
266
|
+
# `api_source` is null.
|
|
260
267
|
#
|
|
261
268
|
# @param limit [Integer]
|
|
262
269
|
# A limit on the number of buckets to be returned. Limit can range between 1 and
|
|
@@ -609,8 +616,10 @@ module OpenAI
|
|
|
609
616
|
#
|
|
610
617
|
# @param group_by [Array<Symbol, OpenAI::Models::Admin::Organization::UsageWebSearchCallsParams::GroupBy>]
|
|
611
618
|
# Group the usage data by the specified fields. Support fields include
|
|
612
|
-
# `project_id`, `user_id`, `api_key_id`, `model`, `context_level` or
|
|
613
|
-
# combination of them.
|
|
619
|
+
# `project_id`, `user_id`, `api_key_id`, `model`, `context_level`, `api_source` or
|
|
620
|
+
# any combination of them. When grouped by `api_source`, results use `agents_api`
|
|
621
|
+
# for attributed Agents API activity and `unlabeled` for all other activity.
|
|
622
|
+
# Without source grouping, `api_source` is null.
|
|
614
623
|
#
|
|
615
624
|
# @param limit [Integer]
|
|
616
625
|
# Specifies the number of buckets to return.
|
|
@@ -26,6 +26,8 @@ module OpenAI
|
|
|
26
26
|
# object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
|
|
27
27
|
# voices are available in the
|
|
28
28
|
# [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
|
|
29
|
+
# Custom voices must be created from audio samples. Voices created from text
|
|
30
|
+
# prompts are supported only in Live.
|
|
29
31
|
#
|
|
30
32
|
# @param instructions [String]
|
|
31
33
|
# Control the voice of your generated audio with additional instructions. Does not
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Resources
|
|
5
|
+
class Audio
|
|
6
|
+
# Turn audio into text or text into audio.
|
|
7
|
+
class Voices
|
|
8
|
+
# Creates a voice from a text prompt or from a consent recording and an audio
|
|
9
|
+
# sample.
|
|
10
|
+
#
|
|
11
|
+
# For prompt-based creation, send `type: "prompt"` with a `name` and `prompt` as
|
|
12
|
+
# JSON or multipart form data. For creation from an audio sample, send
|
|
13
|
+
# `type: "audio_sample"` with a `name`, `audio_sample`, and `consent` recording ID
|
|
14
|
+
# as multipart form data. The type defaults to `audio_sample` when omitted.
|
|
15
|
+
#
|
|
16
|
+
# Returns the saved voice's metadata. Voices created from text prompts are
|
|
17
|
+
# supported only in Live, not in Realtime or the speech endpoint. The response
|
|
18
|
+
# does not include preview audio.
|
|
19
|
+
#
|
|
20
|
+
# @overload create(body:, request_options: {})
|
|
21
|
+
#
|
|
22
|
+
# @param body [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt]
|
|
23
|
+
# Creates a voice from a consent recording and an audio sample. Requires
|
|
24
|
+
# multipart/form-data.
|
|
25
|
+
#
|
|
26
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
27
|
+
#
|
|
28
|
+
# @return [OpenAI::Models::Audio::Voice]
|
|
29
|
+
#
|
|
30
|
+
# @see OpenAI::Models::Audio::VoiceCreateParams
|
|
31
|
+
def create(params)
|
|
32
|
+
parsed, options = OpenAI::Audio::VoiceCreateParams.dump_request(params)
|
|
33
|
+
@client.request(
|
|
34
|
+
method: :post,
|
|
35
|
+
path: "audio/voices",
|
|
36
|
+
headers: {"content-type" => "multipart/form-data"},
|
|
37
|
+
body: parsed[:body],
|
|
38
|
+
model: OpenAI::Audio::Voice,
|
|
39
|
+
security: {bearer_auth: true},
|
|
40
|
+
options: options
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# @api private
|
|
45
|
+
#
|
|
46
|
+
# @param client [OpenAI::Client]
|
|
47
|
+
def initialize(client:)
|
|
48
|
+
@client = client
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -15,6 +15,10 @@ module OpenAI
|
|
|
15
15
|
# @return [OpenAI::Resources::Audio::Speech]
|
|
16
16
|
attr_reader :speech
|
|
17
17
|
|
|
18
|
+
# Turn audio into text or text into audio.
|
|
19
|
+
# @return [OpenAI::Resources::Audio::Voices]
|
|
20
|
+
attr_reader :voices
|
|
21
|
+
|
|
18
22
|
# @api private
|
|
19
23
|
#
|
|
20
24
|
# @param client [OpenAI::Client]
|
|
@@ -23,6 +27,7 @@ module OpenAI
|
|
|
23
27
|
@transcriptions = OpenAI::Resources::Audio::Transcriptions.new(client: client)
|
|
24
28
|
@translations = OpenAI::Resources::Audio::Translations.new(client: client)
|
|
25
29
|
@speech = OpenAI::Resources::Audio::Speech.new(client: client)
|
|
30
|
+
@voices = OpenAI::Resources::Audio::Voices.new(client: client)
|
|
26
31
|
end
|
|
27
32
|
end
|
|
28
33
|
end
|
|
@@ -30,8 +30,8 @@ module OpenAI
|
|
|
30
30
|
# An optional human-readable display name for the template.
|
|
31
31
|
#
|
|
32
32
|
# @param network [OpenAI::Models::Beta::Agents::Environments::TemplateCreateParams::Network, nil]
|
|
33
|
-
# Network access policy for the environment.
|
|
34
|
-
#
|
|
33
|
+
# Network access policy for the environment. If omitted, the API version
|
|
34
|
+
# determines whether network access is enabled or disabled.
|
|
35
35
|
#
|
|
36
36
|
# @param packages [OpenAI::Models::Beta::Agents::Environments::TemplateCreateParams::Packages, nil]
|
|
37
37
|
# Packages to install in the environment. Defaults to empty package lists.
|
|
@@ -113,8 +113,7 @@ module OpenAI
|
|
|
113
113
|
#
|
|
114
114
|
# @param network [OpenAI::Models::Beta::Agents::Environments::TemplateUpdateParams::Network, nil]
|
|
115
115
|
# Network access available after setup completes. Omit to preserve the current
|
|
116
|
-
# policy, or pass `null` to reset to
|
|
117
|
-
# requests.
|
|
116
|
+
# policy, or pass `null` to reset to the default policy.
|
|
118
117
|
#
|
|
119
118
|
# @param packages [OpenAI::Models::Beta::Agents::Environments::TemplateUpdateParams::Packages, nil]
|
|
120
119
|
# Packages installed before the runtime network policy applies.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Resources
|
|
5
|
+
class Beta
|
|
6
|
+
class Agents
|
|
7
|
+
class Sessions
|
|
8
|
+
class Turns
|
|
9
|
+
class Items
|
|
10
|
+
# Lists items belonging to one root-agent turn, including its interactions with
|
|
11
|
+
# subagents. See
|
|
12
|
+
# [inspecting agent output](https://developers.openai.com/api/docs/guides/agents-api/observability).
|
|
13
|
+
#
|
|
14
|
+
# @overload list(turn_id, session_id:, after: nil, limit: nil, order: nil, request_options: {})
|
|
15
|
+
#
|
|
16
|
+
# @param turn_id [String]
|
|
17
|
+
# Path param: The ID of the turn.
|
|
18
|
+
#
|
|
19
|
+
# @param session_id [String]
|
|
20
|
+
# Path param: The ID of the session that owns the turn.
|
|
21
|
+
#
|
|
22
|
+
# @param after [String]
|
|
23
|
+
# Query param: Return items after this cursor in the selected order. Pass the
|
|
24
|
+
# previous response's last_id, which can differ from the last item's ID.
|
|
25
|
+
#
|
|
26
|
+
# @param limit [Integer]
|
|
27
|
+
# Query param: The maximum number of resources to return, between 1 and 100.
|
|
28
|
+
# Defaults to 20.
|
|
29
|
+
#
|
|
30
|
+
# @param order [Symbol, OpenAI::Models::Beta::Agents::Sessions::Turns::ItemListParams::Order]
|
|
31
|
+
# Query param: The order in which resources are returned. Defaults to `desc`.
|
|
32
|
+
#
|
|
33
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
34
|
+
#
|
|
35
|
+
# @return [OpenAI::Internal::ConversationCursorPage<OpenAI::Models::Beta::AgentSessionMessage, OpenAI::Models::Beta::AgentReasoningItem, OpenAI::Models::Beta::AgentFunctionCallItem, OpenAI::Models::Beta::AgentSessionItem::FunctionCallOutput, OpenAI::Models::Beta::AgentSessionItem::AgentMessage, OpenAI::Models::Beta::AgentMcpCallItem, OpenAI::Models::Beta::AgentSessionItem::ComputerUseCall, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequest, OpenAI::Models::Beta::AgentSessionItem::ComputerUseApprovalRequestResult, OpenAI::Models::Beta::AgentWebSearchCallItem, OpenAI::Models::Beta::AgentCommandExecutionItem, OpenAI::Models::Beta::AgentCreateSubagentCallItem, OpenAI::Models::Beta::AgentSendSubagentInputCallItem, OpenAI::Models::Beta::AgentResumeSubagentCallItem, OpenAI::Models::Beta::AgentWaitForSubagentsCallItem, OpenAI::Models::Beta::AgentInterruptSubagentCallItem, OpenAI::Models::Beta::AgentCloseSubagentCallItem>]
|
|
36
|
+
#
|
|
37
|
+
# @see OpenAI::Models::Beta::Agents::Sessions::Turns::ItemListParams
|
|
38
|
+
def list(turn_id, params)
|
|
39
|
+
parsed, options = OpenAI::Beta::Agents::Sessions::Turns::ItemListParams.dump_request(params)
|
|
40
|
+
session_id = parsed.delete(:session_id) do
|
|
41
|
+
raise ArgumentError.new("missing required path argument #{_1}")
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
query = OpenAI::Internal::Util.encode_query_params(parsed)
|
|
45
|
+
@client.request(
|
|
46
|
+
method: :get,
|
|
47
|
+
path: ["agents/sessions/%1$s/turns/%2$s/items", session_id, turn_id],
|
|
48
|
+
query: query,
|
|
49
|
+
page: OpenAI::Internal::ConversationCursorPage,
|
|
50
|
+
model: OpenAI::Beta::AgentSessionItem,
|
|
51
|
+
security: {bearer_auth: true},
|
|
52
|
+
options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **options}
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @api private
|
|
57
|
+
#
|
|
58
|
+
# @param client [OpenAI::Client]
|
|
59
|
+
def initialize(client:)
|
|
60
|
+
@client = client
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -6,6 +6,9 @@ module OpenAI
|
|
|
6
6
|
class Agents
|
|
7
7
|
class Sessions
|
|
8
8
|
class Turns
|
|
9
|
+
# @return [OpenAI::Resources::Beta::Agents::Sessions::Turns::Items]
|
|
10
|
+
attr_reader :items
|
|
11
|
+
|
|
9
12
|
# Retrieves a turn's current status, timestamps, usage, and error. Returns 404 if
|
|
10
13
|
# the turn does not belong to the session. See
|
|
11
14
|
# [session turns](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage#inspect-session-turns).
|
|
@@ -80,6 +83,7 @@ module OpenAI
|
|
|
80
83
|
# @param client [OpenAI::Client]
|
|
81
84
|
def initialize(client:)
|
|
82
85
|
@client = client
|
|
86
|
+
@items = OpenAI::Resources::Beta::Agents::Sessions::Turns::Items.new(client: client)
|
|
83
87
|
end
|
|
84
88
|
end
|
|
85
89
|
end
|
|
@@ -85,7 +85,7 @@ module OpenAI
|
|
|
85
85
|
# the session or streams its events when stream is true. See
|
|
86
86
|
# [running sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions).
|
|
87
87
|
#
|
|
88
|
-
# @overload create_streaming(environment:, agent: nil, agent_id: nil, input: nil, output_type: nil, metadata: nil, vault_ids: nil, request_options: {})
|
|
88
|
+
# @overload create_streaming(environment:, agent: nil, agent_id: nil, input: nil, output_type: nil, tool_handlers: {}, metadata: nil, vault_ids: nil, request_options: {})
|
|
89
89
|
#
|
|
90
90
|
# @param environment [OpenAI::Models::Beta::EnvironmentParam::None, OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted, OpenAI::Models::Beta::EnvironmentParam::SelfHosted]
|
|
91
91
|
# An inline execution environment or a reference to an environment template.
|
|
@@ -112,6 +112,7 @@ module OpenAI
|
|
|
112
112
|
# The IDs of vaults made available to the session.
|
|
113
113
|
#
|
|
114
114
|
# @param output_type [Class<OpenAI::BaseModel>, nil] Beta: configure and parse a structured answer.
|
|
115
|
+
# @param tool_handlers [Hash{String=>Proc}] Local handlers for initial-turn function calls (not sent to the API).
|
|
115
116
|
#
|
|
116
117
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
117
118
|
#
|
|
@@ -121,6 +122,7 @@ module OpenAI
|
|
|
121
122
|
def create_streaming(params)
|
|
122
123
|
params = params.to_h.transform_keys { _1.is_a?(String) ? _1.to_sym : _1 }
|
|
123
124
|
output_type = params.delete(:output_type)
|
|
125
|
+
tool_handlers = params.delete(:tool_handlers)
|
|
124
126
|
parser = OpenAI::Helpers::Beta::Agents::OutputParser.new(output_type) unless output_type.nil?
|
|
125
127
|
parsed, options = OpenAI::Beta::Agents::SessionCreateParams.dump_request(params)
|
|
126
128
|
unless parsed.fetch(:stream, true)
|
|
@@ -140,6 +142,10 @@ module OpenAI
|
|
|
140
142
|
security: {bearer_auth: true},
|
|
141
143
|
options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **options}
|
|
142
144
|
)
|
|
145
|
+
if tool_handlers
|
|
146
|
+
stream.configure_tool_handlers(sessions: self, tool_handlers: tool_handlers, request_options: options)
|
|
147
|
+
end
|
|
148
|
+
|
|
143
149
|
stream.configure_output_parser(parser)
|
|
144
150
|
end
|
|
145
151
|
|
|
@@ -274,17 +280,31 @@ module OpenAI
|
|
|
274
280
|
# @param session_id [String]
|
|
275
281
|
# @param input [String, Array<OpenAI::Models::Beta::AgentSessionInputMessageParam>]
|
|
276
282
|
# @param tool_handlers [Hash{String=>Proc}]
|
|
283
|
+
# @param on_tool_error [Proc, nil]
|
|
284
|
+
# Beta: use with tool_handlers to log or monitor argument parsing, handler
|
|
285
|
+
# execution, and output conversion failures locally. Receives ToolError;
|
|
286
|
+
# API/transport errors still propagate normally. Ordinary observer errors
|
|
287
|
+
# are ignored, and the submitted tool failure stays generic.
|
|
277
288
|
# @param idempotency_key [String, nil] Applies only to the input submission.
|
|
278
289
|
# @param output_type [Class<OpenAI::BaseModel>, nil] Beta: parse output without changing session configuration.
|
|
279
290
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
280
291
|
# @yieldparam stream [OpenAI::Helpers::Agents::SessionStream]
|
|
281
292
|
# @return [OpenAI::Helpers::Agents::SessionStream]
|
|
282
|
-
def stream(
|
|
293
|
+
def stream(
|
|
294
|
+
session_id,
|
|
295
|
+
input:,
|
|
296
|
+
tool_handlers: {},
|
|
297
|
+
on_tool_error: nil,
|
|
298
|
+
idempotency_key: nil,
|
|
299
|
+
output_type: nil,
|
|
300
|
+
request_options: {}
|
|
301
|
+
)
|
|
283
302
|
stream = OpenAI::Helpers::Agents::SessionStream.new(
|
|
284
303
|
sessions: self,
|
|
285
304
|
session_id: session_id,
|
|
286
305
|
input: input,
|
|
287
306
|
tool_handlers: tool_handlers,
|
|
307
|
+
on_tool_error: on_tool_error,
|
|
288
308
|
idempotency_key: idempotency_key,
|
|
289
309
|
output_type: output_type,
|
|
290
310
|
request_options: request_options
|
|
@@ -141,8 +141,13 @@ module OpenAI
|
|
|
141
141
|
# Number of fine-tuning jobs to retrieve.
|
|
142
142
|
#
|
|
143
143
|
# @param metadata [Hash{Symbol=>String}, nil]
|
|
144
|
-
# Optional metadata filter. To filter, use the syntax `metadata[k]=v`.
|
|
145
|
-
#
|
|
144
|
+
# Optional metadata filter. To filter, use the syntax `metadata[k]=v`. Omitting
|
|
145
|
+
# the parameter or passing an empty object applies no metadata filter. An empty
|
|
146
|
+
# value, such as `metadata[k]=`, filters for that key with an empty string value.
|
|
147
|
+
# To select jobs with null metadata, send the literal query string
|
|
148
|
+
# `metadata=null`. Nullable caller types do not specify how a client serializes
|
|
149
|
+
# null for a deep-object parameter. Use a raw query parameter if the client omits
|
|
150
|
+
# null. Do not combine the two query forms.
|
|
146
151
|
#
|
|
147
152
|
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
148
153
|
#
|