Module: RubyLLM::Providers::OpenAIResponses::Background
- Defined in:
- lib/ruby_llm/providers/openai_responses/background.rb
Overview
Background mode support for the OpenAI Responses API. Handles async responses with polling for long-running tasks.
Constant Summary collapse
- QUEUED =
Status constants
'queued'- IN_PROGRESS =
'in_progress'- COMPLETED =
'completed'- FAILED =
'failed'- CANCELLED =
'cancelled'- INCOMPLETE =
'incomplete'- TERMINAL_STATUSES =
[COMPLETED, FAILED, CANCELLED, INCOMPLETE].freeze
- PENDING_STATUSES =
[QUEUED, IN_PROGRESS].freeze
Class Method Summary collapse
-
.apply_background_mode(payload, background: false) ⇒ Hash
Add background mode to payload.
-
.cancel_url(response_id) ⇒ String
URL to cancel a response.
-
.complete?(response) ⇒ Boolean
Check if response is complete (terminal state).
-
.error_info(response) ⇒ Hash?
Get error information if failed.
-
.failed?(response) ⇒ Boolean
Check if response failed.
-
.input_items_url(response_id) ⇒ String
URL to list input items for a response.
-
.pending?(response) ⇒ Boolean
Check if response is still pending.
-
.retrieve_url(response_id) ⇒ String
URL to retrieve a response by ID.
-
.status(response) ⇒ String
Get response status.
-
.successful?(response) ⇒ Boolean
Check if response was successful.
Class Method Details
.apply_background_mode(payload, background: false) ⇒ Hash
Add background mode to payload
26 27 28 29 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 26 def apply_background_mode(payload, background: false) payload[:background] = background if background payload end |
.cancel_url(response_id) ⇒ String
URL to cancel a response
85 86 87 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 85 def cancel_url(response_id) "responses/#{response_id}/cancel" end |
.complete?(response) ⇒ Boolean
Check if response is complete (terminal state)
42 43 44 45 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 42 def complete?(response) status = response['status'] TERMINAL_STATUSES.include?(status) end |
.error_info(response) ⇒ Hash?
Get error information if failed
71 72 73 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 71 def error_info(response) response['error'] end |
.failed?(response) ⇒ Boolean
Check if response failed
57 58 59 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 57 def failed?(response) response['status'] == FAILED end |
.input_items_url(response_id) ⇒ String
URL to list input items for a response
92 93 94 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 92 def input_items_url(response_id) "responses/#{response_id}/input_items" end |
.pending?(response) ⇒ Boolean
Check if response is still pending
34 35 36 37 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 34 def pending?(response) status = response['status'] PENDING_STATUSES.include?(status) end |
.retrieve_url(response_id) ⇒ String
URL to retrieve a response by ID
78 79 80 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 78 def retrieve_url(response_id) "responses/#{response_id}" end |
.status(response) ⇒ String
Get response status
64 65 66 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 64 def status(response) response['status'] end |
.successful?(response) ⇒ Boolean
Check if response was successful
50 51 52 |
# File 'lib/ruby_llm/providers/openai_responses/background.rb', line 50 def successful?(response) response['status'] == COMPLETED end |