CreateKnowledgeBase - Amazon Bedrock (original) (raw)
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.
Note
If you prefer to let Amazon Bedrock create and manage a vector store for you in Amazon OpenSearch Service, use the console. For more information, see Create a knowledge base.
- Provide the
nameand an optionaldescription. - Provide the Amazon Resource Name (ARN) with permissions to create a knowledge base in the
roleArnfield. - Provide the embedding model to use in the
embeddingModelArnfield in theknowledgeBaseConfigurationobject. - 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
Request Syntax
PUT /knowledgebases/ HTTP/1.1
Content-type: application/json
{
"clientToken": "string",
"description": "string",
"knowledgeBaseConfiguration": {
"kendraKnowledgeBaseConfiguration": {
"kendraIndexArn": "string"
},
"sqlKnowledgeBaseConfiguration": {
"redshiftConfiguration": {
"queryEngineConfiguration": {
"provisionedConfiguration": {
"authConfiguration": {
"databaseUser": "string",
"type": "string",
"usernamePasswordSecretArn": "string"
},
"clusterIdentifier": "string"
},
"serverlessConfiguration": {
"authConfiguration": {
"type": "string",
"usernamePasswordSecretArn": "string"
},
"workgroupArn": "string"
},
"type": "string"
},
"queryGenerationConfiguration": {
"executionTimeoutSeconds": number,
"generationContext": {
"curatedQueries": [
{
"naturalLanguage": "string",
"sql": "string"
}
],
"tables": [
{
"columns": [
{
"description": "string",
"inclusion": "string",
"name": "string"
}
],
"description": "string",
"inclusion": "string",
"name": "string"
}
]
}
},
"storageConfigurations": [
{
"awsDataCatalogConfiguration": {
"tableNames": [ "string" ]
},
"redshiftConfiguration": {
"databaseName": "string"
},
"type": "string"
}
]
},
"type": "string"
},
"type": "string",
"vectorKnowledgeBaseConfiguration": {
"embeddingModelArn": "string",
"embeddingModelConfiguration": {
"bedrockEmbeddingModelConfiguration": {
"audio": [
{
"segmentationConfiguration": {
"fixedLengthDuration": number
}
}
],
"dimensions": number,
"embeddingDataType": "string",
"video": [
{
"segmentationConfiguration": {
"fixedLengthDuration": number
}
}
]
}
},
"supplementalDataStorageConfiguration": {
"storageLocations": [
{
"s3Location": {
"uri": "string"
},
"type": "string"
}
]
}
}
},
"name": "string",
"roleArn": "string",
"storageConfiguration": {
"mongoDbAtlasConfiguration": {
"collectionName": "string",
"credentialsSecretArn": "string",
"databaseName": "string",
"endpoint": "string",
"endpointServiceName": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"textIndexName": "string",
"vectorIndexName": "string"
},
"neptuneAnalyticsConfiguration": {
"fieldMapping": {
"metadataField": "string",
"textField": "string"
},
"graphArn": "string"
},
"opensearchManagedClusterConfiguration": {
"domainArn": "string",
"domainEndpoint": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"vectorIndexName": "string"
},
"opensearchServerlessConfiguration": {
"collectionArn": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"vectorIndexName": "string"
},
"pineconeConfiguration": {
"connectionString": "string",
"credentialsSecretArn": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string"
},
"namespace": "string"
},
"rdsConfiguration": {
"credentialsSecretArn": "string",
"databaseName": "string",
"fieldMapping": {
"customMetadataField": "string",
"metadataField": "string",
"primaryKeyField": "string",
"textField": "string",
"vectorField": "string"
},
"resourceArn": "string",
"tableName": "string"
},
"redisEnterpriseCloudConfiguration": {
"credentialsSecretArn": "string",
"endpoint": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"vectorIndexName": "string"
},
"s3VectorsConfiguration": {
"indexArn": "string",
"indexName": "string",
"vectorBucketArn": "string"
},
"type": "string"
},
"tags": {
"string" : "string"
}
}URI Request Parameters
The request does not use any URI parameters.
Request Body
The request accepts the following data in JSON format.
A 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.
Type: String
Length Constraints: Minimum length of 33. Maximum length of 256.
Pattern: [a-zA-Z0-9](-*[a-zA-Z0-9]){0,256}
Required: No
A description of the knowledge base.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 200.
Required: No
Contains details about the embeddings model used for the knowledge base.
Type: KnowledgeBaseConfiguration object
Required: Yes
A name for the knowledge base.
Type: String
Pattern: ([0-9a-zA-Z][_-]?){1,100}
Required: Yes
The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 2048.
Pattern: arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+
Required: Yes
Contains details about the configuration of the vector database used for the knowledge base.
Type: StorageConfiguration object
Required: No
Specify the key-value pairs for the tags that you want to attach to your knowledge base in this object.
Type: String to string map
Key Length Constraints: Minimum length of 1. Maximum length of 128.
Key Pattern: [a-zA-Z0-9\s._:/=+@-]*
Value Length Constraints: Minimum length of 0. Maximum length of 256.
Value Pattern: [a-zA-Z0-9\s._:/=+@-]*
Required: No
Response Syntax
HTTP/1.1 202
Content-type: application/json
{
"knowledgeBase": {
"createdAt": "string",
"description": "string",
"failureReasons": [ "string" ],
"knowledgeBaseArn": "string",
"knowledgeBaseConfiguration": {
"kendraKnowledgeBaseConfiguration": {
"kendraIndexArn": "string"
},
"sqlKnowledgeBaseConfiguration": {
"redshiftConfiguration": {
"queryEngineConfiguration": {
"provisionedConfiguration": {
"authConfiguration": {
"databaseUser": "string",
"type": "string",
"usernamePasswordSecretArn": "string"
},
"clusterIdentifier": "string"
},
"serverlessConfiguration": {
"authConfiguration": {
"type": "string",
"usernamePasswordSecretArn": "string"
},
"workgroupArn": "string"
},
"type": "string"
},
"queryGenerationConfiguration": {
"executionTimeoutSeconds": number,
"generationContext": {
"curatedQueries": [
{
"naturalLanguage": "string",
"sql": "string"
}
],
"tables": [
{
"columns": [
{
"description": "string",
"inclusion": "string",
"name": "string"
}
],
"description": "string",
"inclusion": "string",
"name": "string"
}
]
}
},
"storageConfigurations": [
{
"awsDataCatalogConfiguration": {
"tableNames": [ "string" ]
},
"redshiftConfiguration": {
"databaseName": "string"
},
"type": "string"
}
]
},
"type": "string"
},
"type": "string",
"vectorKnowledgeBaseConfiguration": {
"embeddingModelArn": "string",
"embeddingModelConfiguration": {
"bedrockEmbeddingModelConfiguration": {
"audio": [
{
"segmentationConfiguration": {
"fixedLengthDuration": number
}
}
],
"dimensions": number,
"embeddingDataType": "string",
"video": [
{
"segmentationConfiguration": {
"fixedLengthDuration": number
}
}
]
}
},
"supplementalDataStorageConfiguration": {
"storageLocations": [
{
"s3Location": {
"uri": "string"
},
"type": "string"
}
]
}
}
},
"knowledgeBaseId": "string",
"name": "string",
"roleArn": "string",
"status": "string",
"storageConfiguration": {
"mongoDbAtlasConfiguration": {
"collectionName": "string",
"credentialsSecretArn": "string",
"databaseName": "string",
"endpoint": "string",
"endpointServiceName": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"textIndexName": "string",
"vectorIndexName": "string"
},
"neptuneAnalyticsConfiguration": {
"fieldMapping": {
"metadataField": "string",
"textField": "string"
},
"graphArn": "string"
},
"opensearchManagedClusterConfiguration": {
"domainArn": "string",
"domainEndpoint": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"vectorIndexName": "string"
},
"opensearchServerlessConfiguration": {
"collectionArn": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"vectorIndexName": "string"
},
"pineconeConfiguration": {
"connectionString": "string",
"credentialsSecretArn": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string"
},
"namespace": "string"
},
"rdsConfiguration": {
"credentialsSecretArn": "string",
"databaseName": "string",
"fieldMapping": {
"customMetadataField": "string",
"metadataField": "string",
"primaryKeyField": "string",
"textField": "string",
"vectorField": "string"
},
"resourceArn": "string",
"tableName": "string"
},
"redisEnterpriseCloudConfiguration": {
"credentialsSecretArn": "string",
"endpoint": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"vectorIndexName": "string"
},
"s3VectorsConfiguration": {
"indexArn": "string",
"indexName": "string",
"vectorBucketArn": "string"
},
"type": "string"
},
"updatedAt": "string"
}
}Response Elements
If the action is successful, the service sends back an HTTP 202 response.
The following data is returned in JSON format by the service.
Errors
For information about the errors that are common to all actions, see Common Error Types.
AccessDeniedException
The request is denied because of missing access permissions.
HTTP Status Code: 403
ConflictException
There was a conflict performing an operation.
HTTP Status Code: 409
InternalServerException
An internal server error occurred. Retry your request.
HTTP Status Code: 500
ServiceQuotaExceededException
The number of requests exceeds the service quota. Resubmit your request later.
HTTP Status Code: 402
ThrottlingException
The number of requests exceeds the limit. Resubmit your request later.
HTTP Status Code: 429
ValidationException
Input validation failed. Check your request parameters and retry the request.
fieldList
A list of objects containing fields that caused validation errors and their corresponding validation error messages.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: