tacman/ai-batch-bundle
Symfony bundle for asynchronous AI batch processing. Queue prompts, submit batches to your AI provider, track job status, and handle results without blocking requests. Useful for bulk generation, classification, and other high-volume AI workflows.
This release exposes the package's batch-processing workflow as Artisan commands, which is the fastest way to get productive without writing any PHP. Start by installing the package and running php artisan list ai to confirm the five commands are registered (ai:batch:create, ai:batch:list, ai:batch:status, ai:batch:wait, ai:batch:download). Your first end-to-end run is: create a batch with ai:batch:create, poll it with ai:batch:status (or block on ai:batch:wait), then retrieve output with ai:batch:download. Check config/ for any published config file first — API credentials and default model/endpoint are almost certainly read from there or from .env, and the commands will fail confusingly if they are missing. Look at the command signatures (php artisan help ai:batch:create) to find the input file path, model, and completion-window options before writing any code.
create → wait → download cycle succeeds from the terminal, port the same arguments into your service/job.ai:batch:status is designed for cron/scheduler use — register it in routes/console.php or Kernel::schedule() at a short interval, and use it to transition local batch records (e.g. pending → completed) and dispatch follow-up jobs.ai:batch:create then hand the batch ID to ai:batch:wait inside a queued job (with a generous $timeout), rather than blocking a web request. For interactive use, prefer the status + download pair.ai:batch:download as the terminal step: store the batch ID on your own model, download results into storage, and guard the download step so re-running it does not double-process results.validating for a while before in_progress; ai:batch:status returning non-terminal states is expected, not a bug. Don't build retry logic that resubmits on every non-completed status.ai:batch:wait will block your terminal/worker. Always bound it with the job/command timeout and your platform's max execution time; on shared hosting or default PHP-FPM timeouts it will be killed mid-wait.create.create or download time.completed batch can still contain individual failed requests; inspect the error file/field rather than assuming success from the batch status alone.-v/-vvv and check storage/logs/laravel.log; the package almost certainly logs the raw API response at debug level, which is the quickest way to see validation errors that the console output truncates.How can I help you explore Laravel packages today?