Core internal functions for interacting with OpenAI's Responses API. These are typically not called directly by users; instead use the higher-level functions like [openai_with_tools()] or the artwork analysis functions.
Usage
openai_responses(
msgs,
ml = NULL,
temp = 1,
json_schema = NULL,
resp_fmt = NULL,
timeout = 60,
tools = NULL,
store = FALSE,
prev_resp_id = NULL,
max_tokens = NULL
)
..api_openai_key()
.get_openai_cfg()
.normalize_responses_messages(msgs)
.extract_responses_content(parsed)
.make_request_with_retry(make_request, max_retries = 2)
.validate_response(resp)Arguments
- msgs
List. Messages in OpenAI format with `role` ("user", "system", "assistant") and `content` (text or multipart for images). Built automatically by higher-level functions.
- ml
Character. Model ID to use (e.g., "gpt-5.1", "gpt-4o"). If NULL (default), uses `ART_OPENAI_MODEL` env var. See README for available models.
- temp
Numeric. Temperature setting (0-2). Lower values produce deterministic output; higher values produce varied responses. Default 1.
- json_schema
List. JSON schema for structured output. When provided, response is validated against this schema. Use for reliable structured data extraction.
- resp_fmt
List. Response format specification for JSON mode. Use `list(type = "json_object")` for unstructured JSON output.
- timeout
Numeric. Request timeout in seconds. Default 60. Increase for complex queries or slow networks.
- tools
List. Tools to enable (e.g., web_search). Created with tool helper functions.
- store
Logical. Whether to store conversation for continuation. When TRUE, the response can be continued with `prev_resp_id`. Default FALSE.
- prev_resp_id
Character. ID of previous response to continue. Enables multi-turn conversations without resending history. Obtain from previous response.
- max_tokens
Numeric. Maximum output token cap for the Responses API. If NULL, uses `ART_OPENAI_MAX_OUTPUT_TOKENS` (default 4096). Increase for longer outputs, decrease for cost control.
Functions
openai_responses(): Low-level OpenAI Responses API call..api_openai_key(): get openai api key.get_openai_cfg(): get openai configuration.normalize_responses_messages(): [TODO].extract_responses_content(): Helper to extract content from Responses API response.make_request_with_retry(): Helper for request retry logic.validate_response(): Helper to validate HTTP response
