CreateKnowledgeBase
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
name
and an optionaldescription
. -
Provide the Amazon Resource Name (ARN) with permissions to create a knowledge base in the
roleArn
field. -
Provide the embedding model to use in the
embeddingModelArn
field in theknowledgeBaseConfiguration
object. -
Provide the configuration for your vector store in the
storageConfiguration
object.-
For an Amazon OpenSearch Service database, use the
opensearchServerlessConfiguration
object. For more information, see Create a vector store in Amazon OpenSearch Service. -
For an Amazon Aurora database, use the
RdsConfiguration
object. For more information, see Create a vector store in Amazon Aurora. -
For a Pinecone database, use the
pineconeConfiguration
object. For more information, see Create a vector store in Pinecone. -
For a Redis Enterprise Cloud database, use the
redisEnterpriseCloudConfiguration
object. For more information, see Create a vector store in Redis Enterprise Cloud.
-
Request Syntax
PUT /knowledgebases/ HTTP/1.1
Content-type: application/json
{
"clientToken": "string
",
"description": "string
",
"knowledgeBaseConfiguration": {
"type": "string
",
"vectorKnowledgeBaseConfiguration": {
"embeddingModelArn": "string
",
"embeddingModelConfiguration": {
"bedrockEmbeddingModelConfiguration": {
"dimensions": number
}
}
}
},
"name": "string
",
"roleArn": "string
",
"storageConfiguration": {
"mongoDbAtlasConfiguration": {
"collectionName": "string
",
"credentialsSecretArn": "string
",
"databaseName": "string
",
"endpoint": "string
",
"endpointServiceName": "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": {
"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
"
},
"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.
- clientToken
-
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
- description
-
A description of the knowledge base.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 200.
Required: No
- knowledgeBaseConfiguration
-
Contains details about the embeddings model used for the knowledge base.
Type: KnowledgeBaseConfiguration object
Required: Yes
- name
-
A name for the knowledge base.
Type: String
Pattern:
^([0-9a-zA-Z][_-]?){1,100}$
Required: Yes
- roleArn
-
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
- storageConfiguration
-
Contains details about the configuration of the vector database used for the knowledge base.
Type: StorageConfiguration object
Required: Yes
-
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": {
"type": "string",
"vectorKnowledgeBaseConfiguration": {
"embeddingModelArn": "string",
"embeddingModelConfiguration": {
"bedrockEmbeddingModelConfiguration": {
"dimensions": number
}
}
}
},
"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"
},
"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": {
"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"
},
"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.
- knowledgeBase
-
Contains details about the knowledge base.
Type: KnowledgeBase object
Errors
For information about the errors that are common to all actions, see Common Errors.
- 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.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: