Poll an Anthropic Message Batch until completion
Source:R/anthropic_batch_api.R
anthropic_poll_batch_until_complete.RdThis helper repeatedly calls anthropic_get_batch until
the batch's processing_status becomes "ended" or a time
limit is reached. It is analogous to
openai_poll_batch_until_complete() but for Anthropic's
Message Batches API.
Usage
anthropic_poll_batch_until_complete(
batch_id,
interval_seconds = 60,
timeout_seconds = 86400,
api_key = Sys.getenv("ANTHROPIC_API_KEY"),
anthropic_version = "2023-06-01",
verbose = TRUE
)Arguments
- batch_id
Character scalar giving the batch ID.
- interval_seconds
Polling interval in seconds. Defaults to 60.
- timeout_seconds
Maximum total waiting time in seconds. Defaults to 24 hours (
86400seconds).- api_key
Optional Anthropic API key. Defaults to
Sys.getenv("ANTHROPIC_API_KEY").- anthropic_version
Anthropic API version string passed as the
anthropic-versionHTTP header. Defaults to"2023-06-01".- verbose
Logical; if
TRUE, prints progress messages.
Value
The final Message Batch object as returned by
anthropic_get_batch once processing_status == "ended"
or the last object retrieved before timing out.
Polling limits
HTTP retries occur within a logical status poll. Elapsed time includes retry
waits, but timeout_seconds is checked between status requests; an in-flight
GET and its retries can finish after that limit. Existing terminal-status and
timeout return behavior is preserved.
Retrieval retries
Batch metadata and result-file GET requests retry HTTP 408, 429, all 5xx
responses, and transport failures, with at most three total HTTP attempts
per GET. Valid Retry-After seconds or HTTP dates take precedence; otherwise
retries use exponential backoff starting at 0.5 seconds plus up to 0.25
seconds of jitter, capped at 30 seconds. Other HTTP errors fail immediately.
Exhaustion raises the original error with the additional class
pairwiseLLM_batch_retry_exhausted. These retries retrieve the same batch;
they do not resubmit comparisons or create scientific failed-attempt rows.
See also
llm_submit_pairs_batch(), llm_download_batch_results()
Other batch backends:
anthropic_create_batch(),
anthropic_download_batch_results(),
anthropic_get_batch(),
build_anthropic_batch_requests(),
build_gemini_batch_requests(),
build_openai_batch_requests(),
gemini_create_batch(),
gemini_download_batch_results(),
gemini_get_batch(),
gemini_poll_batch_until_complete(),
llm_download_batch_results(),
llm_resume_multi_batches(),
llm_submit_pairs_batch(),
llm_submit_pairs_multi_batch(),
openai_create_batch(),
openai_download_batch_errors(),
openai_download_batch_output(),
openai_get_batch(),
openai_poll_batch_until_complete(),
openai_upload_batch_file(),
run_anthropic_batch_pipeline(),
run_gemini_batch_pipeline(),
run_openai_batch_pipeline(),
write_openai_batch_file()
Examples
if (FALSE) { # \dontrun{
# Requires ANTHROPIC_API_KEY and network access.
batch <- anthropic_create_batch(requests = my_requests)
final <- anthropic_poll_batch_until_complete(batch$id, interval_seconds = 30)
final$processing_status
} # }