- How do I install aimeos/prisma in a Laravel application?
- Install it with Composer using composer require aimeos/prisma, then supply credentials for the providers you plan to use through your config files or environment variables. The package is a framework-agnostic PHP library, so in Laravel you typically bind a configured client instance in a service provider and resolve it from the container in controllers, jobs or services. Because credentials are per provider and there are more than a dozen integrations, keep them in a dedicated config file (for example config/prisma.php) or .env rather than scattering them through application code.
- Which providers does aimeos/prisma support for audio, image, text and video?
- Providers are grouped by media type into audio, image, text and video, all behind the same unified interface. Release 0.7.0 added nine video providers including xAI, Google Veo, Runway, MiniMax, Luma, Gemini Omni, BytePlus, AWS Bedrock and Alibaba, plus OpenRouter across video, image and audio and an Ideogram refresh to the V4 APIs. Feature parity is uneven, so a provider may handle core generation without supporting extras such as repaint, extension or upscaling.
- How do I migrate to 0.7.0 after the fromAsync() breaking change?
- In 0.7.0 the third parameter of fromAsync() changed from ?Closure $sleep to int $timeout on FileResponse and TextResponse. Passing a closure, passing explicit null, or using the named sleep: argument will fail, so replace those calls with an integer timeout. Retry intervals are now clamped to a minimum of one second, which slows sub-second polling loops and invalidates timing assumptions in tests. Tests that injected a sleep closure must instead override the protected sleepAsync() method.
- Is aimeos/prisma stable enough for production at version 0.x?
- It is a 0.x package and 0.7.0 ships a hard breaking change to fromAsync() inside a minor release, so treat minor bumps as potentially breaking. Pin the exact version in composer.json and wrap the package in a thin first-party adapter that owns fromAsync() calls, timeout configuration and capability checks. That preserves the benefit of one interface across providers while keeping migration work in a single file instead of across the whole codebase.
- How do I check whether a provider supports repaint, upscaling or extension?
- Use has() to test whether a provider implements a method without throwing, and ensure() to assert that it does and fail loudly if not. This matters because 0.7.0's video capabilities are unevenly distributed: only some providers support repaint, only some support extension, and only Runway gained upscaling. Any provider-agnostic UI should negotiate capabilities up front rather than assuming every provider exposes the same feature surface.
- How do I run long-running video generation in a Laravel queue with aimeos/prisma?
- Call the async variant of the generation method and hand the returned response object to a queued job that polls for completion, rather than blocking a web request for the long runtimes video models need. Use the new int $timeout parameter on fromAsync() to cap how long the call waits, and remember retry intervals are clamped to a minimum of one second. Dispatch follow-up work through Laravel events or jobs once the response reports a finished state.
- How do I configure retries, timeouts and Guzzle options in aimeos/prisma?
- Use withClientRetry() to configure automatic retry for failed HTTP requests, and withClientOptions() to pass Guzzle client options such as timeouts or proxy settings. withMaxResponseSize() caps how many bytes are read from a single provider response, which is useful when handling large media payloads. Provider-reported rate limit information is exposed on response objects so you can implement backoff in your own application code.
- How do I use tool calling and schemas with aimeos/prisma?
- Define tool parameters with the fluent Schema builder, then supply a system prompt via withSystemPrompt() and prior conversation turns via withMessages() for multi-turn chat. Response objects expose tool step history, citations, finish reason and rate limit details so you can inspect exactly why generation stopped. Reasoning behaviour is controlled through withReasoning(), withThinkingBudget() and withMaxTokens().
- How do I test code that uses aimeos/prisma without slow async waits?
- After 0.7.0 you can no longer inject a sleep closure into fromAsync(), so tests that want to skip waiting must override the protected sleepAsync() method in a test subclass. Pair that with a fake or an adapter-level stub so your suite never reaches the real provider APIs. It is a mechanical migration, but it touches every test that relied on the old sleep: argument.
- What PHP and Laravel versions does aimeos/prisma require?
- The 0.7.0 release notes available here do not state explicit PHP or Laravel version constraints, so check the require block in the package's composer.json on Packagist before installing. The package is a standalone PHP library with no Laravel-specific dependency, but it fits Laravel's config, container and queue systems naturally. Because minor releases can break the public API, pin the exact version and read the changelog before each upgrade.