lib/anthropic/resources/beta/messages/batches.rb (79 lines of code) (raw):

# frozen_string_literal: true module Anthropic module Resources class Beta class Messages class Batches # Send a batch of Message creation requests. # # The Message Batches API can be used to process multiple Messages API requests at # once. Once a Message Batch is created, it begins processing immediately. Batches # can take up to 24 hours to complete. # # Learn more about the Message Batches API in our # [user guide](/en/docs/build-with-claude/batch-processing) # # @overload create(requests:, betas: nil, request_options: {}) # # @param requests [Array<Anthropic::Models::Beta::Messages::BatchCreateParams::Request>] # @param betas [Array<String, Symbol, Anthropic::Models::AnthropicBeta>] # @param request_options [Anthropic::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Anthropic::Models::Beta::Messages::BetaMessageBatch] # # @see Anthropic::Models::Beta::Messages::BatchCreateParams def create(params) parsed, options = Anthropic::Models::Beta::Messages::BatchCreateParams.dump_request(params) header_params = {betas: "anthropic-beta"} @client.request( method: :post, path: "v1/messages/batches?beta=true", headers: parsed.slice(*header_params.keys).transform_keys(header_params), body: parsed.except(*header_params.keys), model: Anthropic::Models::Beta::Messages::BetaMessageBatch, options: options ) end # This endpoint is idempotent and can be used to poll for Message Batch # completion. To access the results of a Message Batch, make a request to the # `results_url` field in the response. # # Learn more about the Message Batches API in our # [user guide](/en/docs/build-with-claude/batch-processing) # # @overload retrieve(message_batch_id, betas: nil, request_options: {}) # # @param message_batch_id [String] # @param betas [Array<String, Symbol, Anthropic::Models::AnthropicBeta>] # @param request_options [Anthropic::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Anthropic::Models::Beta::Messages::BetaMessageBatch] # # @see Anthropic::Models::Beta::Messages::BatchRetrieveParams def retrieve(message_batch_id, params = {}) parsed, options = Anthropic::Models::Beta::Messages::BatchRetrieveParams.dump_request(params) @client.request( method: :get, path: ["v1/messages/batches/%1$s?beta=true", message_batch_id], headers: parsed.transform_keys(betas: "anthropic-beta"), model: Anthropic::Models::Beta::Messages::BetaMessageBatch, options: options ) end # List all Message Batches within a Workspace. Most recently created batches are # returned first. # # Learn more about the Message Batches API in our # [user guide](/en/docs/build-with-claude/batch-processing) # # @overload list(after_id: nil, before_id: nil, limit: nil, betas: nil, request_options: {}) # # @param after_id [String] # @param before_id [String] # @param limit [Integer] # @param betas [Array<String, Symbol, Anthropic::Models::AnthropicBeta>] # @param request_options [Anthropic::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Anthropic::Internal::Page<Anthropic::Models::Beta::Messages::BetaMessageBatch>] # # @see Anthropic::Models::Beta::Messages::BatchListParams def list(params = {}) parsed, options = Anthropic::Models::Beta::Messages::BatchListParams.dump_request(params) query_params = [:after_id, :before_id, :limit] @client.request( method: :get, path: "v1/messages/batches?beta=true", query: parsed.slice(*query_params), headers: parsed.except(*query_params).transform_keys(betas: "anthropic-beta"), page: Anthropic::Internal::Page, model: Anthropic::Models::Beta::Messages::BetaMessageBatch, options: options ) end # Delete a Message Batch. # # Message Batches can only be deleted once they've finished processing. If you'd # like to delete an in-progress batch, you must first cancel it. # # Learn more about the Message Batches API in our # [user guide](/en/docs/build-with-claude/batch-processing) # # @overload delete(message_batch_id, betas: nil, request_options: {}) # # @param message_batch_id [String] # @param betas [Array<String, Symbol, Anthropic::Models::AnthropicBeta>] # @param request_options [Anthropic::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Anthropic::Models::Beta::Messages::BetaDeletedMessageBatch] # # @see Anthropic::Models::Beta::Messages::BatchDeleteParams def delete(message_batch_id, params = {}) parsed, options = Anthropic::Models::Beta::Messages::BatchDeleteParams.dump_request(params) @client.request( method: :delete, path: ["v1/messages/batches/%1$s?beta=true", message_batch_id], headers: parsed.transform_keys(betas: "anthropic-beta"), model: Anthropic::Models::Beta::Messages::BetaDeletedMessageBatch, options: options ) end # Batches may be canceled any time before processing ends. Once cancellation is # initiated, the batch enters a `canceling` state, at which time the system may # complete any in-progress, non-interruptible requests before finalizing # cancellation. # # The number of canceled requests is specified in `request_counts`. To determine # which requests were canceled, check the individual results within the batch. # Note that cancellation may not result in any canceled requests if they were # non-interruptible. # # Learn more about the Message Batches API in our # [user guide](/en/docs/build-with-claude/batch-processing) # # @overload cancel(message_batch_id, betas: nil, request_options: {}) # # @param message_batch_id [String] # @param betas [Array<String, Symbol, Anthropic::Models::AnthropicBeta>] # @param request_options [Anthropic::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Anthropic::Models::Beta::Messages::BetaMessageBatch] # # @see Anthropic::Models::Beta::Messages::BatchCancelParams def cancel(message_batch_id, params = {}) parsed, options = Anthropic::Models::Beta::Messages::BatchCancelParams.dump_request(params) @client.request( method: :post, path: ["v1/messages/batches/%1$s/cancel?beta=true", message_batch_id], headers: parsed.transform_keys(betas: "anthropic-beta"), model: Anthropic::Models::Beta::Messages::BetaMessageBatch, options: options ) end # Streams the results of a Message Batch as a `.jsonl` file. # # Each line in the file is a JSON object containing the result of a single request # in the Message Batch. Results are not guaranteed to be in the same order as # requests. Use the `custom_id` field to match results to requests. # # Learn more about the Message Batches API in our # [user guide](/en/docs/build-with-claude/batch-processing) # # @overload results_streaming(message_batch_id, betas: nil, request_options: {}) # # @param message_batch_id [String] # @param betas [Array<String, Symbol, Anthropic::Models::AnthropicBeta>] # @param request_options [Anthropic::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Anthropic::Internal::JsonLStream<Anthropic::Models::Beta::Messages::BetaMessageBatchIndividualResponse>] # # @see Anthropic::Models::Beta::Messages::BatchResultsParams def results_streaming(message_batch_id, params = {}) parsed, options = Anthropic::Models::Beta::Messages::BatchResultsParams.dump_request(params) @client.request( method: :get, path: ["v1/messages/batches/%1$s/results?beta=true", message_batch_id], headers: {"accept" => "application/x-jsonl", **parsed}.transform_keys(betas: "anthropic-beta"), stream: Anthropic::Internal::JsonLStream, model: Anthropic::Models::Beta::Messages::BetaMessageBatchIndividualResponse, options: options ) end # @api private # # @param client [Anthropic::Client] def initialize(client:) @client = client end end end end end end