Creates a knowledge base¶
Description¶
Creates a knowledge base. A knowledge base contains your data sources so that Large Language Models (LLMs) can use your data. To create a knowledge base, you must first set up your data sources and configure a supported vector store. For more information, see Set up a knowledge base.
To create a managed knowledge base, provide a managedKnowledgeBaseConfiguration during creation. For more information, see Build a managed knowledge base.
-
Provide the
nameand an optionaldescription. -
Provide the Amazon Resource Name (ARN) with permissions to create a knowledge base in the
roleArnfield. -
For managed knowledge bases, set
embeddingModelTypetoMANAGEDto use the service-managed embedding model, orCUSTOMwith anembeddingModelArnto use your own. To use your own KMS key for encryption, provide the ARN inserverSideEncryptionConfiguration. No vector store configuration is required for managed knowledge bases. -
For self-managed knowledge bases, provide the embedding model to use in the
embeddingModelArnfield in theknowledgeBaseConfigurationobject. -
For self-managed knowledge bases, provide the configuration for your vector store in the
storageConfigurationobject.- For an Amazon OpenSearch Service database, use the
opensearchServerlessConfigurationobject. For more information, see Create a vector store in Amazon OpenSearch Service. - For an Amazon Aurora database, use the
RdsConfigurationobject. For more information, see Create a vector store in Amazon Aurora. - For a Pinecone database, use the
pineconeConfigurationobject. For more information, see Create a vector store in Pinecone. - For a Redis Enterprise Cloud database, use the
redisEnterpriseCloudConfigurationobject. For more information, see Create a vector store in Redis Enterprise Cloud.
- For an Amazon OpenSearch Service database, use the
Usage¶
bedrockagent_create_knowledge_base(clientToken, name, description,
roleArn, knowledgeBaseConfiguration, storageConfiguration, tags)
Arguments¶
-
clientTokenA unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.
-
name[required] A name for the knowledge base.
-
descriptionA description of the knowledge base.
-
roleArn[required] The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base.
-
knowledgeBaseConfiguration[required] Contains details about the embeddings model used for the knowledge base.
-
storageConfigurationContains details about the configuration of the vector database used for the knowledge base.
-
tagsSpecify the key-value pairs for the tags that you want to attach to your knowledge base in this object.
Value¶
A list with the following syntax:
list(
knowledgeBase = list(
knowledgeBaseId = "string",
name = "string",
knowledgeBaseArn = "string",
description = "string",
roleArn = "string",
knowledgeBaseConfiguration = list(
type = "VECTOR"|"KENDRA"|"SQL"|"MANAGED",
vectorKnowledgeBaseConfiguration = list(
embeddingModelArn = "string",
embeddingModelConfiguration = list(
bedrockEmbeddingModelConfiguration = list(
dimensions = 123,
embeddingDataType = "FLOAT32"|"BINARY",
audio = list(
list(
segmentationConfiguration = list(
fixedLengthDuration = 123
)
)
),
video = list(
list(
segmentationConfiguration = list(
fixedLengthDuration = 123
)
)
),
modelConfiguration = list()
)
),
supplementalDataStorageConfiguration = list(
storageLocations = list(
list(
type = "S3",
s3Location = list(
uri = "string"
)
)
)
)
),
managedKnowledgeBaseConfiguration = list(
embeddingModelType = "CUSTOM"|"MANAGED",
embeddingModelArn = "string",
embeddingModelConfiguration = list(
bedrockEmbeddingModelConfiguration = list(
dimensions = 123,
embeddingDataType = "FLOAT32"|"BINARY",
audio = list(
list(
segmentationConfiguration = list(
fixedLengthDuration = 123
)
)
),
video = list(
list(
segmentationConfiguration = list(
fixedLengthDuration = 123
)
)
),
modelConfiguration = list()
)
),
serverSideEncryptionConfiguration = list(
kmsKeyArn = "string"
),
supplementalDataStorageConfiguration = list(
storageLocations = list(
list(
type = "S3",
s3Location = list(
uri = "string"
)
)
)
)
),
kendraKnowledgeBaseConfiguration = list(
kendraIndexArn = "string"
),
sqlKnowledgeBaseConfiguration = list(
type = "REDSHIFT",
redshiftConfiguration = list(
storageConfigurations = list(
list(
type = "REDSHIFT"|"AWS_DATA_CATALOG",
awsDataCatalogConfiguration = list(
tableNames = list(
"string"
)
),
redshiftConfiguration = list(
databaseName = "string"
)
)
),
queryEngineConfiguration = list(
type = "SERVERLESS"|"PROVISIONED",
serverlessConfiguration = list(
workgroupArn = "string",
authConfiguration = list(
type = "IAM"|"USERNAME_PASSWORD",
usernamePasswordSecretArn = "string"
)
),
provisionedConfiguration = list(
clusterIdentifier = "string",
authConfiguration = list(
type = "IAM"|"USERNAME_PASSWORD"|"USERNAME",
databaseUser = "string",
usernamePasswordSecretArn = "string"
)
)
),
queryGenerationConfiguration = list(
executionTimeoutSeconds = 123,
generationContext = list(
tables = list(
list(
name = "string",
description = "string",
inclusion = "INCLUDE"|"EXCLUDE",
columns = list(
list(
name = "string",
description = "string",
inclusion = "INCLUDE"|"EXCLUDE"
)
)
)
),
curatedQueries = list(
list(
naturalLanguage = "string",
sql = "string"
)
)
)
)
)
)
),
storageConfiguration = list(
type = "OPENSEARCH_SERVERLESS"|"PINECONE"|"REDIS_ENTERPRISE_CLOUD"|"RDS"|"MONGO_DB_ATLAS"|"NEPTUNE_ANALYTICS"|"OPENSEARCH_MANAGED_CLUSTER"|"S3_VECTORS",
opensearchServerlessConfiguration = list(
collectionArn = "string",
vectorIndexName = "string",
fieldMapping = list(
vectorField = "string",
textField = "string",
metadataField = "string"
)
),
opensearchManagedClusterConfiguration = list(
domainEndpoint = "string",
domainArn = "string",
vectorIndexName = "string",
fieldMapping = list(
vectorField = "string",
textField = "string",
metadataField = "string"
)
),
pineconeConfiguration = list(
connectionString = "string",
credentialsSecretArn = "string",
namespace = "string",
fieldMapping = list(
textField = "string",
metadataField = "string"
)
),
redisEnterpriseCloudConfiguration = list(
endpoint = "string",
vectorIndexName = "string",
credentialsSecretArn = "string",
fieldMapping = list(
vectorField = "string",
textField = "string",
metadataField = "string"
)
),
rdsConfiguration = list(
resourceArn = "string",
credentialsSecretArn = "string",
databaseName = "string",
tableName = "string",
fieldMapping = list(
primaryKeyField = "string",
vectorField = "string",
textField = "string",
metadataField = "string",
customMetadataField = "string"
)
),
mongoDbAtlasConfiguration = list(
endpoint = "string",
databaseName = "string",
collectionName = "string",
vectorIndexName = "string",
credentialsSecretArn = "string",
fieldMapping = list(
vectorField = "string",
textField = "string",
metadataField = "string"
),
endpointServiceName = "string",
textIndexName = "string"
),
neptuneAnalyticsConfiguration = list(
graphArn = "string",
fieldMapping = list(
textField = "string",
metadataField = "string"
)
),
s3VectorsConfiguration = list(
vectorBucketArn = "string",
indexArn = "string",
indexName = "string"
)
),
status = "CREATING"|"ACTIVE"|"DELETING"|"UPDATING"|"FAILED"|"DELETE_UNSUCCESSFUL"|"UPDATE_UNSUCCESSFUL",
createdAt = as.POSIXct(
"2015-01-01"
),
updatedAt = as.POSIXct(
"2015-01-01"
),
failureReasons = list(
"string"
)
)
)
Request syntax¶
svc$create_knowledge_base(
clientToken = "string",
name = "string",
description = "string",
roleArn = "string",
knowledgeBaseConfiguration = list(
type = "VECTOR"|"KENDRA"|"SQL"|"MANAGED",
vectorKnowledgeBaseConfiguration = list(
embeddingModelArn = "string",
embeddingModelConfiguration = list(
bedrockEmbeddingModelConfiguration = list(
dimensions = 123,
embeddingDataType = "FLOAT32"|"BINARY",
audio = list(
list(
segmentationConfiguration = list(
fixedLengthDuration = 123
)
)
),
video = list(
list(
segmentationConfiguration = list(
fixedLengthDuration = 123
)
)
),
modelConfiguration = list()
)
),
supplementalDataStorageConfiguration = list(
storageLocations = list(
list(
type = "S3",
s3Location = list(
uri = "string"
)
)
)
)
),
managedKnowledgeBaseConfiguration = list(
embeddingModelType = "CUSTOM"|"MANAGED",
embeddingModelArn = "string",
embeddingModelConfiguration = list(
bedrockEmbeddingModelConfiguration = list(
dimensions = 123,
embeddingDataType = "FLOAT32"|"BINARY",
audio = list(
list(
segmentationConfiguration = list(
fixedLengthDuration = 123
)
)
),
video = list(
list(
segmentationConfiguration = list(
fixedLengthDuration = 123
)
)
),
modelConfiguration = list()
)
),
serverSideEncryptionConfiguration = list(
kmsKeyArn = "string"
),
supplementalDataStorageConfiguration = list(
storageLocations = list(
list(
type = "S3",
s3Location = list(
uri = "string"
)
)
)
)
),
kendraKnowledgeBaseConfiguration = list(
kendraIndexArn = "string"
),
sqlKnowledgeBaseConfiguration = list(
type = "REDSHIFT",
redshiftConfiguration = list(
storageConfigurations = list(
list(
type = "REDSHIFT"|"AWS_DATA_CATALOG",
awsDataCatalogConfiguration = list(
tableNames = list(
"string"
)
),
redshiftConfiguration = list(
databaseName = "string"
)
)
),
queryEngineConfiguration = list(
type = "SERVERLESS"|"PROVISIONED",
serverlessConfiguration = list(
workgroupArn = "string",
authConfiguration = list(
type = "IAM"|"USERNAME_PASSWORD",
usernamePasswordSecretArn = "string"
)
),
provisionedConfiguration = list(
clusterIdentifier = "string",
authConfiguration = list(
type = "IAM"|"USERNAME_PASSWORD"|"USERNAME",
databaseUser = "string",
usernamePasswordSecretArn = "string"
)
)
),
queryGenerationConfiguration = list(
executionTimeoutSeconds = 123,
generationContext = list(
tables = list(
list(
name = "string",
description = "string",
inclusion = "INCLUDE"|"EXCLUDE",
columns = list(
list(
name = "string",
description = "string",
inclusion = "INCLUDE"|"EXCLUDE"
)
)
)
),
curatedQueries = list(
list(
naturalLanguage = "string",
sql = "string"
)
)
)
)
)
)
),
storageConfiguration = list(
type = "OPENSEARCH_SERVERLESS"|"PINECONE"|"REDIS_ENTERPRISE_CLOUD"|"RDS"|"MONGO_DB_ATLAS"|"NEPTUNE_ANALYTICS"|"OPENSEARCH_MANAGED_CLUSTER"|"S3_VECTORS",
opensearchServerlessConfiguration = list(
collectionArn = "string",
vectorIndexName = "string",
fieldMapping = list(
vectorField = "string",
textField = "string",
metadataField = "string"
)
),
opensearchManagedClusterConfiguration = list(
domainEndpoint = "string",
domainArn = "string",
vectorIndexName = "string",
fieldMapping = list(
vectorField = "string",
textField = "string",
metadataField = "string"
)
),
pineconeConfiguration = list(
connectionString = "string",
credentialsSecretArn = "string",
namespace = "string",
fieldMapping = list(
textField = "string",
metadataField = "string"
)
),
redisEnterpriseCloudConfiguration = list(
endpoint = "string",
vectorIndexName = "string",
credentialsSecretArn = "string",
fieldMapping = list(
vectorField = "string",
textField = "string",
metadataField = "string"
)
),
rdsConfiguration = list(
resourceArn = "string",
credentialsSecretArn = "string",
databaseName = "string",
tableName = "string",
fieldMapping = list(
primaryKeyField = "string",
vectorField = "string",
textField = "string",
metadataField = "string",
customMetadataField = "string"
)
),
mongoDbAtlasConfiguration = list(
endpoint = "string",
databaseName = "string",
collectionName = "string",
vectorIndexName = "string",
credentialsSecretArn = "string",
fieldMapping = list(
vectorField = "string",
textField = "string",
metadataField = "string"
),
endpointServiceName = "string",
textIndexName = "string"
),
neptuneAnalyticsConfiguration = list(
graphArn = "string",
fieldMapping = list(
textField = "string",
metadataField = "string"
)
),
s3VectorsConfiguration = list(
vectorBucketArn = "string",
indexArn = "string",
indexName = "string"
)
),
tags = list(
"string"
)
)