Skip to main content

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.
De belangrijkste kenmerken:
  • 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 provider amazon-bedrock toe aan config/ai.php. Zet indien nodig ook de standaardproviders om naar Bedrock.

Optie 1: Bedrock API-key

Je haalt een Bedrock API-key op via de AWS Management Console.
Een Bedrock API-key werkt uitsluitend met de Bedrock Runtime API. Je kunt hem niet gebruiken voor reranking (dat bedrock-agent-runtime gebruikt) of Amazon Polly (TTS). Gebruik daarvoor SigV4 of de standaard AWS-credentialketen.

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 je key en secret weglaten en de standaard AWS-credentialproviderketen gebruiken.
De standaard credentialketen wordt automatisch opgelost via omgevingsvariabelen, het gedeelde credentialsbestand (~/.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 de agent()-helper.

Streaming

Je kunt events ook handmatig verwerken.

Tool-gebruik (function calling)

Definieer tools die tijdens de generatie worden aangeroepen.
Gebruik de tool vanuit een Agent.
Dit werkt ook met een Anonymous Agent.
Tool-aanroepen werken ook bij streaming. De SDK voert de tools automatisch uit en zet het gesprek voort totdat er een definitief tekstantwoord is.

Bestandsbijlagen

Met de parameter attachments 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).
De ondersteunde bijlagetypen zijn 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 de Conversational-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.
Start een nieuw gesprek.
Zet een bestaand gesprek voort.
De Bedrock-driver voegt de gespreksgeschiedenis automatisch toe aan Bedrock Converse API-requests, zodat alle ondersteunde modellen context hebben in multi-turn gesprekken.

Gestructureerde output

Implementeer de HasStructuredOutput-interface om getypeerde antwoorden te krijgen.
Gestructureerde output werkt ook met een Anonymous Agent.
Intern wordt een synthetische tool (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.
Streaming, tool-gebruik, gestructureerde output en bestandsbijlagen werken op modellen die deze functies ondersteunen. Zie het overzicht van ondersteunde Bedrock-modellen voor details.

Provider Options

Implementeer HasProviderOptions om Bedrock-specifieke opties zoals anthropic_version door te geven.
Ondersteunde Provider Options:

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.
Beschikbare Stability AI-modellen (allemaal vereisen ze de regio 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 de attachments()-methode. Je geeft een invoerafbeelding door en transformeert die met een bewerkingsmodel.
Beschikbare Stability AI-bewerkingsmodellen (allemaal beschikbaar in 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.
Je kunt een mannen- of vrouwenstem kiezen.
Geef een specifieke Polly-stem op.
Sla de gegenereerde audio op.
Je kunt ook een engine (model) opgeven.
Standaardstemmen: default-female → Ruth, default-male → Matthew (beide ondersteunen de generative engine).
Amazon Polly is een aparte AWS-service, los van Bedrock. Een Bedrock API-key (bearer token) werkt niet met Polly. Gebruik AWS IAM-credentials (SigV4) of de standaard AWS-credentialketen.

Embeddings

Genereer vectorembeddings met Amazon Titan Embeddings V2.
Je kunt het aantal dimensies opgeven (Titan Embeddings V2: 256, 512 of 1024).
Een voorbeeld met een aangepast model.

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.
Een voorbeeld met een aangepast model.
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 de agent()-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.
Laatst gewijzigd op 6 september 2026