Overzicht
revolution/laravel-amazon-bedrock is een driver om Amazon Bedrock te gebruiken met de Laravel AI SDK. Je kunt meerdere Bedrock-modellen aansturen via de uniforme API van de Laravel AI SDK.Een
⚠️ in de tabel betekent niet “de functie wordt niet ondersteund”, maar “niet bruikbaar met alleen een Bedrock API-key”.In Laravel AI SDK v0.6.3 is officiële ondersteuning toegevoegd voor Text, Image en Embeddings met een Bedrock API-key. Dit pakket ondersteunt ook functies die niet beschikbaar zijn in de officiële integratie, zoals audio (TTS) via Amazon Polly en reranking, en blijft daarom gepubliceerd.
- Authenticatie: kies uit een Bedrock API-key, AWS IAM-credentials (SigV4) of de standaard AWS-credentialketen (IAM-rollen, instance profiles, enz.).
- Failover: ondersteunt de multi-provider failover van de AI SDK. Rate limits (429), overbelasting (503, 529) en credit-gerelateerde fouten worden gemapt naar failover-geschikte excepties.
- Cache-controle: ephemeral caching is altijd ingeschakeld voor de systeemprompt van de Bedrock Converse API.
- Uniforme API: alle modellen zoals Anthropic Claude, Amazon Nova, Meta Llama en Mistral zijn via de Bedrock Converse API met één uniforme interface te gebruiken.
Vereisten
- PHP >= 8.3
- Laravel >= 12.x
Installatie
1
Installeer het pakket
2
Publiceer de AI SDK-configuratie
Configuratie
Voeg de provideramazon-bedrock toe aan config/ai.php. Zet indien nodig ook de standaardproviders om naar Bedrock.
Optie 1: Bedrock API-key
Optie 2: AWS IAM-credentials (SigV4)
Gebruik een AWS access key en secret key die worden ondertekend met Signature Version 4.Stel
AWS_SESSION_TOKEN alleen in als je tijdelijke credentials (STS) gebruikt.Optie 3: standaard AWS-credentialketen (IAM-rol)
In omgevingen met een IAM-rol, zoals EC2 / ECS / Lambda, kun jekey en secret weglaten en de standaard AWS-credentialproviderketen gebruiken.
~/.aws/credentials), ECS-taakrollen, EC2 instance profiles en meer.
Optionele configuratiesleutels
Tekstgeneratie
Agent-klasse
Maak een Agent-klasse met het Artisan-commando.Anonymous Agent
Wil je snel aan de slag zonder een klasse aan te maken, gebruik dan deagent()-helper.
Streaming
Tool-gebruik (function calling)
Definieer tools die tijdens de generatie worden aangeroepen.Bestandsbijlagen
Met de parameterattachments kun je afbeeldingen, documenten, audio- en videobestanden aan een prompt toevoegen. De Bedrock Converse API verwerkt de bijlageblokken, maar welke formaten daadwerkelijk werken hangt af van het model (Anthropic Claude ondersteunt bijvoorbeeld alleen afbeeldingen en documenten).
Image, Document en Audio uit Laravel\Ai\Files\*. Video’s kun je bijvoegen via Illuminate\Http\UploadedFile.
Server-side bestandsuploads (
Document::fromPath()->put()) en hergebruik via ID (Document::fromId()) worden niet ondersteund op Bedrock.Gespreksgeschiedenis
Om een gesprek over meerdere beurten vast te houden, implementeer je deConversational-interface in je Agent-klasse. Als je in messages() de eerdere gespreksberichten teruggeeft, worden die automatisch bij elke prompt meegestuurd.
Automatisch opslaan met RemembersConversations
Wil je messages() niet zelf implementeren, dan kun je met de trait RemembersConversations gesprekken volledig automatisch laten opslaan. Hiervoor zijn de databasetabellen van de AI SDK nodig, dus voer eerst php artisan vendor:publish --provider="Laravel\Ai\AiServiceProvider" && php artisan migrate uit.
Gestructureerde output
Implementeer deHasStructuredOutput-interface om getypeerde antwoorden te krijgen.
output_structured_data) aangemaakt die waarden volgens het schema laat teruggeven. Deze aanpak is via de Converse API compatibel met alle modellen op Bedrock.
Converse API (alle modellen)
Alle tekstgeneratie en streaming loopt via de Bedrock Converse API. Dit is uniform, inclusief Anthropic Claude, zodat je diverse modellen op Bedrock — Amazon Nova, Meta Llama, Mistral, Cohere, DeepSeek en meer — met dezelfde interface kunt gebruiken.Provider Options
ImplementeerHasProviderOptions om Bedrock-specifieke opties zoals anthropic_version door te geven.
Configuratie-attributen voor Agents
Je kunt opties voor tekstgeneratie instellen met PHP-attributen.Beeldgeneratie
Genereer afbeeldingen met Stability AI-modellen (standaard) of Amazon Nova Canvas.us-west-2):
De beeldmodellen van Stability AI zijn alleen beschikbaar in
us-west-2. Stel AWS_DEFAULT_REGION=us-west-2 in wanneer je deze modellen gebruikt.Beeldbewerking met Stability AI
De bewerkingsmodellen van Stability AI Image Services zijn ook beschikbaar via deattachments()-methode. Je geeft een invoerafbeelding door en transformeert die met een bewerkingsmodel.
us-east-1, us-east-2 en us-west-2):
Amazon Nova Canvas wordt ook ondersteund, maar wordt door AWS uitgefaseerd.
Audio (TTS)
Genereer spraak uit tekst met Amazon Polly.default-female → Ruth, default-male → Matthew (beide ondersteunen de generative engine).
Embeddings
Genereer vectorembeddings met Amazon Titan Embeddings V2.Cohere Embed-modellen
Cohere Embed-modellen worden automatisch gedetecteerd en gebruiken de batch-API. Waar Titan per invoer een HTTP-request stuurt, bundelt Cohere alle invoer in één request, wat efficiënter is bij het verwerken van meerdere teksten.Cohere Embed-modellen geven geen tokenaantal terug, dus
$response->tokens is altijd 0.Reranking
Sorteer documenten op relevantie voor een query met Cohere Rerank 3.5 of Amazon Rerank 1.0.De reranking-API gebruikt het endpoint
bedrock-agent-runtime (niet bedrock-runtime). Amazon Rerank 1.0 is niet beschikbaar in us-east-1; gebruik in die regio Cohere Rerank 3.5.Testen
Je kunt de standaard testfuncties van de AI SDK gewoon gebruiken. Het staat niet in de officiële documentatie, maar een Anonymous Agent die je met deagent()-helper maakt kun je mocken met AnonymousAgent::fake(), en de variant met gestructureerde output met StructuredAnonymousAgent::fake().
Raadpleeg de GitHub-repository voor de meest recente informatie.