Skip to main content
Native batch availability is separate from model, region, and account eligibility. A provider can expose an API while rejecting a particular model. The current adapters use the following control planes; deterministic fixtures cover their wire lifecycles, while authenticated qualification remains provider-specific. Fireworks uses an explicit FireworksBatchDriver with LLMConfig, FireworksBatchSettings(accountId: ...), BatchHttpTransport, and CanUploadBatchFile. Wrap it in BatchRuntime to use the common facade. The driver creates and uploads an account-scoped dataset before creating the job; the job request names a dedicated output dataset. Its saved reference can resume status reads in another process. A failed job creation reports the input dataset, proposed output dataset, and job resource names. The inspected public documentation does not define its complete output-record envelope, so results() raises UnsupportedBatchOperation before HTTP and job snapshots report BatchResultsAvailability::Unsupported. The documented DELETE operation is not treated as cancellation. The Fireworks key available for qualification created and uploaded a dataset, but job creation returned a payment-method-required error. The direct DeepSeek API has no native batch contract in the inspected public API; hosted DeepSeek models may be batched through an eligible host such as Model Studio. capabilities()->canReadResults() is false for Fireworks until its result record codec is qualified; it is true for drivers that decode typed item outcomes. Choose provider options explicitly where they affect the native job:
OpenAI uses OpenAIBatchOptions, Groq uses GroqBatchOptions, and xAI uses XAIBatchOptions. Options from a different provider are rejected before submission. capabilities()->inputModes() reports the adapter’s enforced item/byte/record limits for each supported form. These limits do not certify that a model is batch-enabled. Bedrock uses its own AWS control plane and S3 rather than an LLM API-key preset. Install aws/aws-sdk-php in the consuming application, configure AWS credentials through its normal SDK provider chain, and provision a Bedrock service role plus input and output buckets. Compose it explicitly:
The current Bedrock codec supports only the Claude 3 Haiku InvokeModel Messages body. It rejects tools, structured output and reasoning requests. The 100-record minimum and 100,000-record adapter cap are surfaced through capabilities()->inputModes(). AWS account, region and model quotas can impose additional limits. Output records preserve recordId, model output or error, and S3 provenance. Bedrock SDK requests are covered by deterministic mocks; this adapter has not been run against an authenticated AWS account. retrieve() reports result availability as pending until results() checks the job-specific S3 output prefix; completion alone does not prove retained objects exist. When Mistral returns outputs inline alongside an output_file, the adapter uses the inline rows and does not replay their file duplicates. It can still read a separate error file and skips any keyed row already delivered inline. For Qwen, the reference binds the selected Beijing or Singapore control-plane URL. The Singapore qwen preset’s current default model is not in the documented Singapore batch list; select a listed batch model or an eligible Beijing connection. Qwen also requires homogeneous models and thinking mode within an input file. The specific API reference permits a 6 MB JSONL line, while its summary page says 1 MB; live qualification is still needed for the disputed range. Source contracts: OpenAI, Anthropic, Mistral, Gemini, Qwen, xAI, Groq, Together, and Fireworks, and Bedrock.