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:
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:
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.