BedrockAgent client
This page contains examples with the BedrockAgent client. See the client introduction for a more detailed description how to use a client. You may also want to consider the authentication documentation to understand the many ways you can authenticate with AWS.
The BedrockAgent package could be installed with Composer.
composer require async-aws/bedrock-agent
A new client object may be instantiated by:
use AsyncAws\BedrockAgent\BedrockAgentClient;
$bedrockAgent = new BedrockAgentClient();
The authentication parameters is read from the environment by default. You can also specify a AWS access id and secret:
use AsyncAws\BedrockAgent\BedrockAgentClient;
$bedrockAgent = new BedrockAgentClient([
'accessKeyId' => 'my_access_key',
'accessKeySecret' => 'my_access_secret',
'region' => 'eu-central-1',
]);
For all available options, see the configuration reference.
Usage¶
Delete knowledge base documents¶
use AsyncAws\BedrockAgent\BedrockAgentClient;
use AsyncAws\BedrockAgent\Enum\ContentDataSourceType;
use AsyncAws\BedrockAgent\Input\DeleteKnowledgeBaseDocumentsRequest;
use AsyncAws\BedrockAgent\ValueObject\DocumentIdentifier;
use AsyncAws\BedrockAgent\ValueObject\S3Location;
$bedrockAgent = new BedrockAgentClient();
$request = new DeleteKnowledgeBaseDocumentsRequest([
'knowledgeBaseId' => 'kb-1234567890abcdef',
'dataSourceId' => 'ds-abcdef1234567890',
'clientToken' => 'token-1234',
'documentIdentifiers' => [new DocumentIdentifier([
'dataSourceType' => ContentDataSourceType::S3,
's3' => new S3Location([
'uri' => 's3://my-bucket/documents/',
]),
])],
]);
$result = $bedrockAgent->deleteKnowledgeBaseDocuments($request);
foreach ($result->getDocumentDetails() as $documentDetail) {
echo $documentDetail->getStatus() . PHP_EOL;
}
See DeleteKnowledgeBaseDocuments for more information.
Get knowledge base documents¶
use AsyncAws\BedrockAgent\BedrockAgentClient;
use AsyncAws\BedrockAgent\Enum\ContentDataSourceType;
use AsyncAws\BedrockAgent\Input\GetKnowledgeBaseDocumentsRequest;
use AsyncAws\BedrockAgent\ValueObject\DocumentIdentifier;
use AsyncAws\BedrockAgent\ValueObject\S3Location;
$bedrockAgent = new BedrockAgentClient();
$request = new GetKnowledgeBaseDocumentsRequest([
'knowledgeBaseId' => 'kb-1234567890abcdef',
'dataSourceId' => 'ds-abcdef1234567890',
'documentIdentifiers' => [new DocumentIdentifier([
'dataSourceType' => ContentDataSourceType::S3,
's3' => new S3Location([
'uri' => 's3://my-bucket/documents/',
]),
])],
]);
$result = $bedrockAgent->getKnowledgeBaseDocuments($request);
foreach ($result->getDocumentDetails() as $documentDetail) {
echo $documentDetail->getIdentifier()->getS3()->getUri() . PHP_EOL;
}
See GetKnowledgeBaseDocuments for more information.
Ingest knowledge base documents¶
use AsyncAws\BedrockAgent\Enum\ContentDataSourceType;
use AsyncAws\BedrockAgent\Enum\MetadataSourceType;
use AsyncAws\BedrockAgent\Input\IngestKnowledgeBaseDocumentsRequest;
use AsyncAws\BedrockAgent\ValueObject\CustomS3Location;
use AsyncAws\BedrockAgent\ValueObject\DocumentContent;
use AsyncAws\BedrockAgent\ValueObject\DocumentMetadata;
use AsyncAws\BedrockAgent\ValueObject\KnowledgeBaseDocument;
use AsyncAws\BedrockAgent\ValueObject\S3Content;
use AsyncAws\BedrockAgent\ValueObject\S3Location;
$bedrockAgent = new BedrockAgentClient();
$request = new IngestKnowledgeBaseDocumentsRequest([
'knowledgeBaseId' => 'kb-1234567890abcdef',
'dataSourceId' => 'ds-abcdef1234567890',
'clientToken' => 'token-1234',
'documents' => [new KnowledgeBaseDocument([
'metadata' => new DocumentMetadata([
'type' => MetadataSourceType::S3_LOCATION,
's3Location' => new CustomS3Location([
'uri' => 's3://my-bucket/documents/',
'bucketOwnerAccountId' => 'account-1234',
]),
]),
'content' => new DocumentContent([
'dataSourceType' => ContentDataSourceType::S3,
's3' => new S3Content([
's3Location' => new S3Location([
'uri' => 's3://my-bucket/documents/',
]),
]),
]),
])],
]);
$result = $bedrockAgent->ingestKnowledgeBaseDocuments($request);
foreach ($result->getDocumentDetails() as $documentDetail) {
echo $documentDetail->getStatus() . PHP_EOL;
echo $documentDetail->getIdentifier()->getS3()->getUri() . PHP_EOL;
}
See IngestKnowledgeBaseDocuments for more information.
List knowledge base documents¶
use AsyncAws\BedrockAgent\BedrockAgentClient;
use AsyncAws\BedrockAgent\Input\ListKnowledgeBaseDocumentsRequest;
$bedrockAgent = new BedrockAgentClient();
$request = new ListKnowledgeBaseDocumentsRequest([
'knowledgeBaseId' => 'kb-1234567890abcdef',
'dataSourceId' => 'ds-abcdef1234567890',
'maxResults' => 50,
]);
$result = $bedrockAgent->listKnowledgeBaseDocuments($request);
foreach ($result->getDocumentDetails() as $documentDetail) {
echo $documentDetail->getIdentifier()->getS3()->getUri() . PHP_EOL;
}
See ListKnowledgeBaseDocuments for more information.
The source code to this page is found on GitHub.